手順2 Lチカにチャレンジ
次に、M5Stackを使ってLチカしてみます。LチカとはLEDをチカチカ点灯させることで、最初のプログラムとしてサッと試すためによく使われます。
M5Stackにはボタンが最初からついているので、今回は2つのLEDをボタンでON/OFFできるプログラムを書いてみます。
M5StackとLEDの配線図
M5StackとLEDの配線は以下の図のようにします。
M5Stackの「G」はGNDを表しています。
また、LEDの極性(+と-)に注意して配線しましょう。足の長い方が+で短い方が-です。
配線するとこのようになります。
プログラム
プログラムには下記のコードをコピーして貼り付けます。
#include <M5Stack.h> int ledPin1 = 21; int ledPin2 = 22; int ledState1 = LOW; int ledState2 = LOW; void setup() { M5.begin(); M5.Lcd.printf("LED PIKA PIKA"); pinMode(ledPin1,OUTPUT); pinMode(ledPin2,OUTPUT); } void loop() { if(M5.BtnA.wasPressed()){ ledState1 = HIGH; digitalWrite(ledPin1,ledState1); } if(M5.BtnB.wasPressed()){ ledState2 = HIGH; digitalWrite(ledPin2,ledState2); } if(M5.BtnC.wasPressed()){ ledState1 = LOW; ledState2 = LOW; digitalWrite(ledPin1,ledState1); digitalWrite(ledPin2,ledState2); } m5.update(); }
プログラムの解説
順を追って説明していきます。まず、M5Stackのライブラリを設定します。
#include <M5Stack.h>
次に、M5StackにLEDを接続したピン番号を指定します。そして、そのピンの最初の状態を「LOW」としておきます。これはつまり、そのピンに電圧が入力されていないということです。
int ledPin1 = 21; int ledPin2 = 22; int ledState1 = LOW; int ledState2 = LOW;
そして、void setup()
の中に「M5Stackを動かす」という合図を示す「M5.begin()
」を書きます。また、それぞれのピンの状態をpinMode(ピン番号, 状態)
という関数で表します。この関数に格納されている値は先ほど指定したものとなります。
void setup() { M5.begin(); M5.Lcd.printf("LED PIKA PIKA"); pinMode(ledPin1,OUTPUT); pinMode(ledPin2,OUTPUT); }
そして、void loop()の中には実際の動作をプログラムします。
M5.BtnA.wasPressed()
、M5.BtnB.wasPressed()
、M5.BtnC.wasPressed()
は、「それぞれボタンA/B/Cが押された」ということ認識します。if文と組み合わせて使うことで「ボタンA/B/Cが押されたら、ある動作をする」というように使うことができます。
void loop() { if(M5.BtnA.wasPressed()){ ledState1 = HIGH; digitalWrite(ledPin1,ledState1); } if(M5.BtnB.wasPressed()){ ledState2 = HIGH; digitalWrite(ledPin2,ledState2); } if(M5.BtnC.wasPressed()){ ledState1 = LOW; ledState2 = LOW; digitalWrite(ledPin1,ledState1); digitalWrite(ledPin2,ledState2); } m5.update(); }
プログラムは上から、
- 「ボタンAが押されたら、ピン番号21がHIGHになる(ピン番号21につないだLEDが点灯する)」
- 「ボタンBが押されたら、ピン番号22がHIGHになる(ピン番号22につないだLEDが点灯する)」
- 「ボタンCが押されたら、ピン番号21と22がLOWになる(ピン番号21と22につないだLEDが消灯する)」
というプログラムになっています。
また、最後のm5.update()
はM5Stackでプログラムを動かすためのおまじないのようなものなので記述しておきましょう。
プログラムを書き込む
では、このプログラムをArduino IDEからM5Stackに書き込んでみましょう。
まず、「ツール」→「ボード」→「M5Stack-Core-ESP32」を選択します。
次に、「ツール」→「シリアルポート」から表示されたシリアルポートを選択します。
そして、プログラムを書き込むには図のように「?」を選択します。エラーがなければ、画像のように表示されます。
実行結果
実行し、以下のように動作すれば成功です。