今から始める電子工作 ③ まずはLチカ その2 D13でない別のピンでLEDを点滅させたい
前回D13ピンにつながっている黄色のLED(マイコン・ボード上にある)を点滅させるスケッチを動かしました。再渇します。
D13ピンの表記はどこにも出てきません。
●スケッチの構造
ArduinoはArduino言語で記述します。学校などではC言語を最初に学習しますが、Arduino言語は、C言語やC++言語のうえに、プログラミングしやすくなる取り決めをかぶせた構造になっています。とはいえ、C++のcoutとかは使えません。
その取り決めの一つがmain()関数がないという点だったりします。そして、初期設定をsetup()関数の中で記述し、そこは一度だけ実行されます。
もう一つのloop()関数の中に本来C言語でいうところにmain()のプログラムを記述します。そして、loop()の最後の行が実行されると、loop()関数の最初に戻ります。この動作は、電源が切られるまで、永久に繰り返されます。
WindowsなどでC言語のプログラムを記述するとき、
int main(){ return 0; }
のように書きます。main()関数が実行されると、終了し、OSに管理が戻されます。
ArduinoにはOSがないので、loop()関数が無限に実行されるように作られています。
●日本語の表示環境に変更
現時点で、Arduino IDEは英語のメニューです。表示する言語を変更できます。
メニューのEditからPreferenseを選択します。Languageから「日本語」を選択してOKを押します。
今までAdruino IDEを一度閉じて再度開く必要があったのですが、その必要はなく、メニューが日本語に変更されていますね。
●D13ピンの表記
最初の話に戻します。setup()関数内で、
pinMode(LED_BUILTIN, OUTPUT);
これは、LED_BUILTINピンを出力に設定するという命令です。I/O端子は入力でも出力にでも利用できます。
D13ピンをLED_BUILTINという変数名で利用しているということは、C言語で、
#define D13 LED_BUILTIN
と最初に書けば実現できますが、きっとどこかに書いてあるのでしょう。Arduinoにはたくさんのマイコン・ボードがあって、D13ではないピンがLED_BUILTINになっている場合もあります。
●隣のD12でLチカをやりたい
D12ピンには何も接続されていませんので、ここにLEDをつなぎます。
I/Oピンはメスのソケットなので、LEDを直接挿しこめます。
けれど、普通のLEDをD12ピンとGNDにつなげてはいけません。回路図です。
D12ピンがHighになったときは+5Vです。赤色LEDだと順方向電圧Vf = 2Vです。したがって、5 - 2 = 3 で抵抗の両端は3Vがかかります。LEDに1mAを流すとするとオームの法則から、
R = E / I = 3[V] / 1[mA] = 3[kΩ]
この抵抗は、電流制限抵抗と呼ばれます。青色LEDのVfは3Vですが、3kΩでも問題ないでしょう。流れる電流が変わるだけです。明るさは製品によっていろいろあるので、1mAにしたらどのくらい明るいかは不明です。
LEDは小信号用のLEDを使います。懐中電灯のような明るいLEDは電流を100mAとかたくさん流すので放熱が必要で、Arduinoのディジタル・ポートから直接駆動はできません。扱える電流は8mAまでです。
LEDには極性があります。A(アノード)に高い側の電圧をつなぎます。今回はD12ピンです。K(カソード)は抵抗器をつなぎ、電圧の低いほうのGND(グラウンド)につながります。
●配線にはブレッドボードを使う
LEDと抵抗ははんだ付けをしてもよいですが、作ったり分解することの多い場合、ブレッドボードを利用すると便利です。ソルダーレス・ブレッドボードと呼ばないと、「ブレッドボード」ではパンをこねる板になってしまいますが、電子工作では、簡易配線用の用語として定着しています。
大きさはいろいろあります。アマゾンでも購入できます。
実際に配線するとき、ジャンパ線が必要です。今回利用するのは、両端がオスです。長さは10~15cmが使いやすいです。アマゾンでも購入できます。
小信号用LEDは、色がいろいろあるので、3色を購入しておくとよいです。砲弾型と呼ばれます。
配線に必要な部品です。
ブレッドボードの内部接続の例です。黄緑色が内部でつながっています。上下に電源ライン用があります。
中央の配線部分は、大きく2組に分かれていて、abcdeとfghijがそれぞれつながっています。それらが1~30ラインあります。
配線していきます。
GNDラインは黒色のジャンパ線で配線します。D12の配線は何色でもかまいません。電源+5Vを利用するときは赤色を使いましょう。
そいう習慣をつけておくと、配線量が多くなったときも確認作業が確実に行え、ミスが減ります。
●スケッチを作る
前回のBlinksを読み込んで修正し、新しい名前(BlinkD12)で保存します。
#define redLED D12 // the setup function runs once when you press reset or power the board void setup() { // initialize digital pin LED as an output. pinMode(redLED, OUTPUT); } // the loop function runs over and over again forever void loop() { digitalWrite(redLED, HIGH); // turn the LED on (HIGH is the voltage level) delay(1000); // wait for a second digitalWrite(redLED, LOW); // turn the LED off by making the voltage LOW delay(1000); // wait for a second }
コンパイル&アップロードのアイコンをクリックします。
1秒ごとに赤色LEDが点滅します。
●ちょっと便利なエディタの機能
プログラムで、{ } や ( ) は、対になっている必要がありますが、修正を繰り返していると、対応がおかしくなることがあります。ここでは、void setup() { の{ をマウスでクリックすると、とじかっこ側をグレイの下地にして明示してくれます。
●再度スケッチを開くとき
一度ArduinoIDEを終了して、後日そのファイルを開くときは、
ファイル->スケッチブック
で、前回保存したスケッチを選択します。
「最近使った項目を開く」でも、同じように開けます。