こんにちは,おかしょです.
このブログでは電子工作や制御工学,大学生にとって知っていると便利な知識などを公開しています.
電子工作をやってみたい方にもわかりやすいように説明していきますので,よろしくお願いします.
なお,電子工作初心者の方はArduinoというマイコンが使いやすいと思うので,このブログではArduinoを使用して解説していきます.
さて,今回は電子工作の超入門 であるLEDを光らせるということをやってみようと思います.
この記事を読むと以下のことがわかる・できるようになります.
- Arduinoのプログラムの書き方
- Arduinoにプログラムを書きこむ方法
- Arduino基板上のLEDを点滅させる方法
記事を読む前に知っておくべきこと
この記事ではArduinoを使ってLEDを点滅させる方法やそのプログラムを公開しています.
この記事に書いてあることを理解したりするためには,Arduino IDEというArduinoの開発環境が整っている必要があります.
Arduino IDEのインストールなどはArduinoの公式サイトから行ってください.
用意するもの
電子工作を始めるにあたってまずやることはこのLEDを光らせる,もしくは「Hello World!」と表示させるということだと思います.
「Hello World!」と表示させる方法については以下で解説しているので,ぜひこちらも読んでみてください.
この記事ではLEDをただ光らせる,それに加えて点滅させるところまでやりたいと思います.
「じゃあ,LEDを買わなきゃ」と思ったかもしれませんが,今回は必要ありません.
便利なことにArduino Unoには基板上にLEDが装備されており,それをプログラムによって制御することができるようになっています.
なので,用意するのはパソコンとArduino,パソコンとArduinoを接続するUSBケーブルさえあれば大丈夫です.
- パソコン
- Arduino
- USBケーブル
プログラムを書いてみよう
それでは早速プログラムを書いていきましょう.
まず,Arduino IDEを起動して以下のようにプログラムを書いてください.
void setup() {
pinMode(13, OUTPUT);
}
void loop(){
digitalWrite(13, HIGH);
}
このプログラムを書きこむことで基板上のLEDを点灯させることができます.
プログラムの一行目にあるvoid setup(){}内では設定として利用する関数などを実行します.ここでは繰り返し実行する必要がなく,最初に一度だけ実行すればよい関数を書きます.
次にプログラム4行目にあるvoid loop() {}内では繰り返し実行する必要がある関数を書きます.
pinMode(13, OUTPUT);
setup関数内のpinMode関数では続く()内にピンの番号と入出力の設定を書きます.
このように()内に入れるもののことをその関数の引数と言います.
pinMode関数では引数で与えられたピン番号のピンを出力として使用するか,入力として使用するのかを設定します.
今回,ピン番号には13を設定しています.これは基板の13番のデジタル入出力ソケットが基板上のLEDと接続されているためです.
この 13番に電圧をかけたり,かけなかったりすることでLEDを点滅させることができます.
pinMode関数の2つ目の引数には,今回のような「LEDを光らせる」や「モータを回転させる」ときは出力(OUTPUT)に設定しましょう.
反対に,センサを接続して値を読み取りたいときなどは入力(INPUT)に設定します.
また,’ ; ’を文章の最後につけるのを忘れないようにしてください.これをつけないと文章が完結したことにならず,コンパイルするときにエラーが生じてしまいます.
digitalWrite(13, HIGH);
loop内のdigitalWrite関数では引数にピン番号と,そのピンに出力するか否かを書きます.
今回の場合は引数に13とHIGHが与えられているので,13番のピンに出力する(HIGH)という処理が実行されます.
プログラムをArduinoに書きこもう
先程のプログラムが 書けましたら,このプログラムをコンパイルします.
コンパイルとは人間のわかるプログラミング言語からコンピュータのわかる言語に変換することを言います.
このコンパイルを行うには画像にある赤枠で示されているチェックマークをクリックするとできます.
もし,プログラムに間違いがあるとコンパイルが行えずエラーが出てしまうのでご注意ください.
エラーが生じずにうまくコンパイルができたら成功です.
コンパイルができたら,ArduinoをUSBケーブルでパソコンと接続し,図中に赤枠で示されている「矢印マーク」をクリックします.このとき,「矢印マーク」を押すとコンパイルをもう一度行うので,先程の「チェックマーク」は押さないで最初から「矢印マーク」を押しても問題なくできます.
Arduinoを接続すると右側の緑色のLEDが点灯します.
今回光らせたいLEDは赤枠で示してあるLEDになります.
書き込みが完了すると左のように「ボードへの書き込みが完了しました.」と表示されます.
このように表示されれば,Arduinoはもうプログラム通りに動作しているはずです.
このように光っていれば成功です.
LEDを点滅させてみよう
次にLEDを点滅させてみます.
プログラムは先ほどとほとんど変わりません.
void setup() {
pinMode(13, OUTPUT);
}
void loop(){
digitalWrite(13, HIGH);
delay(100);
digitalWrite(13, LOW);
delay(100);
}
先程と同様にプログラムの解説をします.
delay(100);
今回,LEDを点滅させるために新たにdelay関数を加えました.
このdelay関数は引数にミリ秒を必要とします.
今回は引数に100を与えているので,100ミリ秒,つまり0.1秒間遅らせるという働きをします.
この関数を加えたことで,通常はloop関数内のプログラムを上から順に高速で実行するのですが,次のプログラムを実行するのをdelay関数で0.1秒遅らせる遅らせることができます.
今回の場合は最初にLEDを点灯させ(digitalWrite(13, HIGH)),0.1秒間待ってからLEDを消灯させる(digitalWrite(13, LOW))というような感じになっています.
その後,再度delay関数を使って0.1秒遅らせることでloop関数の先頭のプログラムの実行を遅らせています.
このようにすることで,点灯0.1秒,消灯0.1秒を繰り返します.
この時のdelay関数の引数に与える値を変更することでLEDの点灯の周期を調整することができます.
ぜひ,delay関数の引数を変更して試してみてください.
まとめ
この記事ではプログラムを書いて,LEDを光らせてみるということをやりました.
長いプログラムではなかったので,難しくはなかったかと思います.
もし,エラーが出て基板に書き込めないという方は,あきらめずにプログラムを見直してエラーをなくしてください.
このエラーをなくす作業を「バグ取り」というのですが,今後必ずバグ取りの技術は必要になります.今後のためにもあきらめずにバグを取って,LEDを好きなだけ点滅させてみてください.
続けて読む
この記事の続きは以下から読めます.ぜひ,電子工作をはじめたばかりの方は読んでみてください.
それでは最後まで読んでいただきありがとうございました.今回の情報が少しでもお役に立てれば幸いです.
Twitterもやっているので,良ければフォローお願いします.
コメント
[…] そして,12月になってようやく1つ目の記事を更新しました.[電子工作] Arduino基板上のLEDを光らせる […]