前回はサンプルコードを書きこんでピカピカさせて終わりました。
サンプルコードを読んでみましょう。
// library #include <M5StickCPlus.h> void setup() { M5.begin(); // シリアル通信を開始、通信速度を設定 Serial.begin(115200); // 500 ms 待機 delay(500); // シリアルモニタに表示 Serial.print("M5StickC-plus Start\n"); // M5StickC Plus のLCD画面に表示 M5.Lcd.print("Hello World"); // GPIO 10ピンを出力モードに設定 pinMode(10, OUTPUT); } void loop() { // GPIO 10ピンにHIGH信号を出力 -> LED点灯 digitalWrite(10, HIGH); Serial.print("LED TURN ON\n"); delay(1000); // GPIO 10ピンにLOW信号を出力 -> LED消灯 digitalWrite(10, LOW); Serial.print("LED TURN OFF\n"); delay(1000); }
注釈を入れてみました。
setup
で初期化を行い、以降はloop
の処理が行われます。
シリアルモニタへの出力はSerial Monitor
というvscode の拡張機能を入れることで見ることができます。
また、LEDを操作するためのピンは本体裏面に記載がありました。
ボタンに対応するピンの記載もあり、AボタンはG37、BボタンはG39を使えばよさそうな雰囲気があります。
ボタンを押し続けている間だけLEDを光らせる
ボタンPUSHとLED点灯を対応させてみます。
ボタンの信号を入力として受け取り、IF文でGPIO 10ピンに書き込みを行います。
#include <M5StickCPlus.h> void setup() { M5.begin(); Serial.begin(115200); delay(500); Serial.print("M5StickC-plus Start\n"); M5.Lcd.print("Hello World"); pinMode(10, OUTPUT); // Aボタン pinMode(37, INPUT); } void loop() { if (digitalRead(37) == HIGH) { digitalWrite(10, HIGH); } else { digitalWrite(10, LOW); } }
できました!
ちなみにボタン管理用のクラスを使うとM5.BtnA.wasPressed()
とかでボタンの状態を判定できます。
なんとなく書き込み方法が分かってきました。
そろそろ本題の二酸化炭素測定器を作っていこうかと思います。