CodeZine(コードジン)

特集ページ一覧

Wi-FiとBLEを搭載! ディスプレイと、拡張が容易なオプションパーツが新感覚の「M5Stack」を使ってみよう!

IoT Starter Studio 第24回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

目次

手順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」を選択します。

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

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

実行結果

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


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:IoT Starter Studio

もっと読む

著者プロフィール

  • たくろーどん(dotstudio株式会社)(タクロードン)

     高専を卒業したのち、大学に編入し航空宇宙工学を学んでいる。研究テーマは人工衛星の推進機について。受け身に学ぶだけでなく何かアウトプットしてみたいと思い、dotstudioに参加し、ものづくりをしている。  Twitter: @takudooon / dotstudio株式会社

あなたにオススメ

All contents copyright © 2005-2021 Shoeisha Co., Ltd. All rights reserved. ver.1.5