Wi-FiとBLEを搭載! ディスプレイと、拡張が容易なオプションパーツが新感覚の「M5Stack」を使ってみよう!
IoT Starter Studio 第24回
手順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」を選択します。

次に、「ツール」→「シリアルポート」から表示されたシリアルポートを選択します。

そして、プログラムを書き込むには図のように「?」を選択します。エラーがなければ、画像のように表示されます。

実行結果
実行し、以下のように動作すれば成功です。

この記事は参考になりましたか?
- IoT Starter Studio連載記事一覧
-
- Wi-Fi経由のみで制御できる開発ボードが日本から発売! 「obniz」で気軽にIoTハッ...
- Wi-FiとBLEを搭載! ディスプレイと、拡張が容易なオプションパーツが新感覚の「M5S...
- 半田付け不要?!縫い付けて使うArduinoで激iLLな音で光るニット帽作ってみた!
- この記事の著者
-
たくろーどん(dotstudio株式会社)(タクロードン)
高専を卒業したのち、大学に編入し航空宇宙工学を学んでいる。研究テーマは人工衛星の推進機について。受け身に学ぶだけでなく何かアウトプットしてみたいと思い、dotstudioに参加し、ものづくりをしている。 Twitter: @takudooon / dotstudio株式会社
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
