スイッチで点灯する3組のLED(ESP32-DevKitC)
#Arduinoとは #ESP32-DevKitC #Lチカ
2018/5/13 ootaki
hr.icon
https://gyazo.com/f53eede00317d03d7a01c8ce18f05efa
スイッチで点灯する、3組のLEDです。複数が同時に点灯できる。
赤スイッチを押すと、「LED・青」が点灯します。その状態を保持する。
黒スイッチを押すと、「LED・黄」が点灯します。その状態を保持する。
灰スイッチを押すと、「LED・緑」が点灯します。その状態を保持する。
https://gyazo.com/f798bba3604051ff60680a48cd911afb
// スイッチ赤:(リード線の紫 → 7A『io13』ピン)
// スイッチ黒:(リード線の灰 → 10L『io16』ピン)
// スイッチ灰:(リード線の白 → 11L『io17』ピン)
// スイッチGND:共通のGND(リード線の黒 →「 -(青)レーン」)
// 7L『io2』→「2kΩ」→「LED・赤」→「 -(青)レーン」
// 9B『io12』→「1kΩ」→「LED・青」→「 -(青)レーン」
// 10B『io14』→「1kΩ」→「LED・黄」→「 -(青)レーン」
// 11B『io27』→「1kΩ」→「LED・緑」→「 -(青)レーン」
// 3D『5V』→「 +(赤)レーン」
// 8D 15L 21L『GND』→「 -(青)レーン」
// ピン設定の参考 ESP32-DevKitC・ピン設定(bfaaap)
hr.icon
Arduino IDEに、「スケッチ」をコピーする
code:.ino
// 『ESP32-DevKitC』用に、ピンを設定しています。
#define SW_NUM 3
#define PUSH_SHORT 700
#define PUSH_LIMIT PUSH_SHORT + 10
const byte s_pin3 = {13, 16, 17};
const byte leds 3 = {12, 14, 27};
void setup() {
for (byte i = 0 ; i < SW_NUM ; i++)
{
pinMode(s_pini, INPUT_PULLUP);
pinMode(ledsi, OUTPUT);
}
}
void loop() {
static bool led_statSW_NUM = {0, 0, 0};
for (byte i = 0 ; i < SW_NUM ; i++)
{
byte sw = BUTTON(i);
if (sw == 255) led_stat i = !led_stat i;
digitalWrite(ledsi, led_stati);
}
}
byte BUTTON(byte pin_num) {
static unsigned short gaugeSW_NUM;
byte sw_status = 0;
//check switch status on or off
if (!digitalRead(s_pinpin_num))
{
gaugepin_num++;
gaugepin_num = min(gaugepin_num, PUSH_LIMIT);
} else {
if (gaugepin_num >= PUSH_SHORT) sw_status = 255;
gaugepin_num = 0;
}
//return value of switch status
if (gaugepin_num >= PUSH_SHORT) sw_status = 1;
return sw_status;
}
hr.icon
Arduino IDEの「ツール」 を、下記のように設定する
• ツール > ボード    :ESP32 Dev Module
• ツール > シリアルポート:/dev/cu.SLAB_USBtoUART
コンパイル(検証)して、マイコンボードに書き込む