はじめに
前回はWi-Fiでネットワークに接続して、時刻情報を取得してみました。
過去には温湿度計を作ったり、最近はモータを制御したりもしています。M5Stackはいろいろできて面白いですね。
今回はM5Stackを使ってLチカしてみました。
Lチカとは「LEDをチカチカさせる」の略で、色々なところで紹介されていますね。
正直今さら感はありますが、やっていきましょう。
※以降はM5Stack Basic V2.6を使うことを前提に話を進めていくのでご注意を!
今回はLEDを使いますが、決してLEDに直接電池を接続したり、抵抗器を接続せずにM 5Stackから直接電圧を印加しないでください!
最悪の場合、LEDが破裂する可能性があり大変危険です!
Lチカに必要なもの
それではLチカに必要なものを紹介します。
- M5Stack Basic V2.6
今回はM5Stackで利用できるインターフェース「汎用入出力:GPIO(General-purpose input/output)」を使ってLチカをします。GPIOでLEDをオン/オフする仕組みは後ほど紹介したいと思います。 - 単色LED
単色のLEDであれば何でもいいのですが、今回は赤色LEDを使用します。色によって必要な電圧(順方向電圧)が異なるので、この後に紹介する抵抗器の値が異なるので注意してください。 - 抵抗器
手もとに65Ωに近い値の抵抗器があれば、それを使用してください。
筆者はなかったので、20Ωと47Ωの抵抗を直列に接続して使用しました。この場合は合成抵抗が67 Ωになります。
ちなみに筆者は下のような抵抗器セットを買っています。大体の抵抗は揃っているのと、ケース付きで種類ごとに包装されているので使いやすいです。
LEDに抵抗をつなぐ理由はLEDを保護するためです。詳しい話は割愛しますが、抵抗を接続せずにそのまま3.3Vの電圧をLED(赤)に印加すると電流が流れすぎてしまって、LEDが壊れる可能性があります。この点に関しては、もう少し詳しい話を近々しようかなと思っています。
- ブレッドボード
これも何でもいいと思います。お好きなものをお使いください。ただし、あまり小さすぎると抵抗器やLEDを接続する場所に不自由したりします。反対に大きすぎると無駄なスペースが多くなるので、適度な大きさのものを選ぶといいかもしれません。まあ、大は小を兼ねるということで大きいものを買って、今後他の開発で使用するというのもいいかもしれません。 - ジャンパーワイヤ
ジャンパーワイヤは、オス-オス、オス-メス、メス-メスがありますが、どれを使っても大丈夫です。今回はオス-メスのジャンパーワイヤを使っています。ジャンパーワイヤは複数本持っておくと色々と使えて便利です。
ブレッドボードとジャンパーワイヤは下のようにセットになっているものがいいかもしれません。
以上が今回必要なものとなります。
使用するGPIOピン
今回使用するM5Stack Basic V2.6の裏面や側面を見てみましょう。下の画像のようになっていると思います。
初見では何が何だかわからないですね。側面を見るといくつもピンを挿す穴がありますが、今回は”G2″と”G(GND)”のピンだけ使います。M5StackではGNDピンが複数ありますが、内部では電気的に接続されているため、どのGNDピンを使っても問題ないようです。またM5Stackは上下のGPIOピンと左右のGPIOピンは電気的に接続されているようです。実際に”G2″ピンの代わりに”2″ピンを使用しても同じように動作しました。
Lチカ回路と抵抗器の選び方
それではLチカの回路を見てみます。まずは、下の画像のように回路を作ります。筆者は電子回路方面には明るくないので、ものすごく簡易的な回路図です。なお、抵抗器の記号は賛否両論ありますが、新JIS規格に準拠しました。今回はM5Stackを3.3 Vの電源として表現しています。
それでは67 Ωの抵抗が必要な理由を説明します。
正確な値はデータシートを見る必要がありますが、LED(赤)は一般的に定格電流が20 mAで、順方向電圧は2.0 V程度です。つまり、LEDに20 mAの電流が流れるようにLEDに2.0 Vの電圧をかけるためには、R=(3.3-2.0)/0.02=65 Ωの抵抗を接続すれば良いということになります。正確に65 Ωの抵抗を接続しないといけないわけではありません。筆者の手元には20 Ωと47 Ωの抵抗があったので、合成抵抗67 Ωの抵抗として使用しました。
実際に接続したものが下の画像のものになります。
Lチカのスケッチ
それでは最後にスケッチを紹介します。下のようなスケッチになりますが、だいぶ簡単ですね。
なお、実使用上必要ありませんが、LEDがオン/オフするのに合わせてシリアルモニター上にもON/OFFが表示される仕様にしています。また、今回は2秒ごとにLEDがオン/オフする仕様にしています。
int num = 2; //ここで使用するM5StackのGPIOピン番号を指定
void setup() {
Serial.begin(9600); //実使用上、必要なし
//変数numで指定したGPIOピンを出力モードに設定
pinMode(num, OUTPUT);
}
void loop() {
digitalWrite(num, HIGH); //変数numで指定したGPIOピンの出力をHIGH=オンにする
Serial.print("ON\n"); //実使用上、必要なし
delay(2000);
digitalWrite(num, LOW); //変数numで指定したGPIOピンの出力をLOW=オフにする
Serial.print("OFF\n"); //実使用上、必要なし
delay(2000);
}
M5StackにUploadしてみると、LEDが2秒間隔で点滅すると思います。
LEDがうまく光らない場合は以下のようなことをチェックしてみてください。
- 回路が正しいか確認する
- ジャンパーピン、抵抗器、LEDが正しく確実に挿さっているか確認する
- スケッチが正しいか確認する
上記項目が正しくてもどこかの接触が悪いだけで点滅しないこともあるので、諦めずに確認してみてください。筆者は実際に接触が悪くて光らないことがありました。
最後に
いかがでしたか?本当はもっと初期の段階でやるのが普通なLチカですが、今更やってみました。
意外にわかってなかったことや発見があって、やっていて面白かったです。今後のIoT開発でLチカで学んだことを活かしていきたいと思います。
今回はこの辺で終わりたいと思います。次回もお楽しみに!
おすすめの書籍
もっと詳しくM5Stackについて知りたい!という方はこちらの書籍がおすすめです。とても詳しく載っていてわかりやすいです。
とりあえず何か作ってみたい!という方にはこちらの書籍がおすすめです。書いてある通りにやるだけでお手軽にIoTデバイスを作ることができます。
※Amazonのアソシエイトとして、当メディア(Nラボ備忘録)は適格販売により収入を得ています。
他記事のご紹介
当ブログではさまざまな記事を投稿しています。最近人気な記事は資格系の記事です!
最近はリモートワークに便利なガジェット紹介もしています。ぜひご覧ください。
コメント