記事担当:共立エレショップ
[ハンダ付け不要-マイコン系]
まずは、Arduino IDE(PC上)とArduino UNOの設定をします。

Arduino UNOでLEDを点滅(制御)させることができました!^o^v

(記事:ぐっちさん)
更新予定:毎週木曜日(次回は3月30日です!)
※個数を記入していますが、リンク先ページ内で変更可能です。
[ハンダ付け不要-マイコン系]
先週に引き続き、Arduino超初心者編です。
今回はArduinoIDE内にある「スケッチ例」を利用して、次の手順でLEDを点滅させてみたいと思います。
[ステップ1]
Arduino UNOのデジタル13番ピンに挿したLEDを1秒間隔で点滅させる
[ステップ2]
Arduino UNOのデジタル13番ピンに挿したLEDを3秒間隔で点滅させる
先に動画をご覧ください。
まずは、Arduino IDE(PC上)とArduino UNOの設定をします。
(3)Arduino IDEのメニューバー「ツール」>>>「ボード」から使用しているArduinoの種類を確認。
(4)Arduino IDEのメニューバー「ツール」>>>「シリアルポート」を確認。
これで、Arduino IDEとArduino UNOの設定は完了しました。
次に「Blink」のスケッチをArduino UNOに書き込んでいきます。
(3)「マイコンボードに書き込む (「→」マーク)」をクリック。

(5)書き込みが無事終わり、「TX」「RX」のLEDが消灯。
※電流制限のための抵抗(220Ω)を使用してください。
※LEDには極性がありますから注意してください。
「GND」にマイナス端子(LEDの端子の短いほう)、「13」にプラス端子(LEDの端子の長いほう)を挿します。
※LEDには極性がありますから注意してください。
「GND」にマイナス端子(LEDの端子の短いほう)、「13」にプラス端子(LEDの端子の長いほう)を挿します。
(8)GNDとデジタル13番ピンに挿したLEDが1秒間隔で点滅します。→正常動作しています。[ステップ1]成功!
(9)Arduino IDEの「Blink」のスケッチに書かれている「delay(1000)」の数値を変更します。
「delay(1000)」を「delay(3000)」と書き換えます。(2箇所あります)
(10)GNDとデジタル13番ピンに挿したLEDが3秒間隔で点滅します。→正常動作しています。[ステップ2]成功!
Arduino UNOでLEDを点滅(制御)させることができました!^o^v
が、謎だらけ。。。
疑問1.なぜデジタル13番ピンにLEDを挿したのか。他のピンじゃだめなの?
疑問2.「delay(1000)」って点滅速度を変えるコードなの?そもそもスケッチの内容を理解できていない。
「Blink」のスケッチを見ながら、ひとつずつ疑問を解消していきましょう。

まずは「疑問1.なぜ13番ピンにLEDを挿したのか。他のピンじゃだめなの?」
「Blink」のスケッチの中に「LED_BUILTIN」というコードがありました。
例えば、「delay」。
「Blink」のスケッチ例の中に出てきましたね。
「delay(1000)」って書いてました。

リファレンスを見ると、「()内で指定された時間、プログラムを一時停止する」指令だということがわかります。
「()」内に表示する数字はms単位。1000ms=1秒。
「delay(1000)」はつまり、『1秒間プログラムを一時停止するコード』ということになります。
そして、「digitalWrite(LED_BUILTIN, HIGH)」。
「digitalWrite(LED_BUILTIN, LOW)」は出力に関する指定をするコードみたいです。

Arduino IDEの「スケッチ例」>>> 「01.Basics」>>>「Blink」の内容はつまり、
『Arduino UNOのデジタル13ピンに挿したLEDが、1秒間点滅(状態で一時停止する)→1秒間消灯(状態で一時停止する)を繰り返す』という内容だったんですね!
おー!!理解できたときの快感!たまらないです!!^^
そして、念には念を。
先輩スタッフさんの言うとおり「コメントは変更しても、削除しても、Arduinoの指令内容(スケッチ)に直接影響を及ぼすものではない」というのは真実なのか・・・?
(べつに先輩スタッフさんを疑ってるわけじゃないですよー(^_^;))
「Blink」のスケッチからコメント部分を削除した内容(コードのみ)で正常動作するのかを試してみました。

無事正常動作しました。

ふっふっふっふ。無事成功。
少し理解もできました。満足、満足。^^
ところで、再度IDEを見ると「検証(コンパイル)」ボタンと「マイコンに書き込む」ボタンがあることがわかります。
「検証(コンパイル)」してから、「マイコンに書き込む」べき?
でも、いきなり「マイコンに書き込む」をクリックしても問題なく動作したし、どうなんだろう?
再び先輩スタッフさんに聞いてみたところ、
『「マイコンに書き込む」をクリックすると、検証(コンパイル)してくれる。
エラーが出たら、どうせ書き込みできないんだから、「検証(コンパイル)」→「マイコンに書き込む」の順でクリックしても、
「マイコンに書き込む」だけクリックしてもどっちでもいいよ。試しながらスケッチしている時は「検証(コンパイル)」をしながら作業したりするよ』
とのことでした。
「Blink」のスケッチの中に「LED_BUILTIN」というコードがありました。
https://www.arduino.cc/en/Reference/Constants
つまり、「LED_BUILTIN」とはArduino UNOのデジタル13番ピンのことを指すみたいです。(゚A゚;)ゴクリ.
つまり、「LED_BUILTIN」とはArduino UNOのデジタル13番ピンのことを指すみたいです。(゚A゚;)ゴクリ.
IDEのサンプル例に書かれている「Blink」のスケッチは、デジタル13番ピンに挿したLEDの制御例、ということですね。
次なる疑問。
「「delay(1000)」って点滅速度を変えるコードなの?そもそもスケッチの内容を理解できていない」
そうなんです。
Arduino IDEからArduinoボードにスケッチを書き込む手順はわかったのですが、肝心なのは、そのスケッチ(Arduino IDEに書いた)の内容。
まず、「/*」「*/」「//」に注目!
・Arduinoのスケッチにおいて、「/*」「*/」「//」内の文章は「コメント」である
・「コメント」とはArduinoの指令内容(スケッチ)に関する説明文やメモのようなもの。
・変更しても、削除しても、Arduinoの指令内容(スケッチ)に直接影響を及ぼすものではない
とあらかじめ先輩スタッフさんに教えてもらっていました。
・変更しても、削除しても、Arduinoの指令内容(スケッチ)に直接影響を及ぼすものではない
とあらかじめ先輩スタッフさんに教えてもらっていました。
なので、コメント(Arduinoの指令内容(スケッチ)に関する説明文)の部分をざっくり和訳してみました。
うんうん。なんとなく意味がわかってきました。
いえ、まだまださっぱりなんですが、丁寧にコメントを入れてくれているおかげで、Blinkのコードの意味が理解できてきました。
いえ、まだまださっぱりなんですが、丁寧にコメントを入れてくれているおかげで、Blinkのコードの意味が理解できてきました。
次にコード(Arduino言語)を見ていきましょう。
コメントは「変更しても、削除しても、Arduinoの指令内容(スケッチ)に直接影響を及ぼすものではない」とのことだったので、「Blink」のスケッチからコメント部分を省いてみました。
結果、こんな感じ↓
-----------------------------------------
コメントは「変更しても、削除しても、Arduinoの指令内容(スケッチ)に直接影響を及ぼすものではない」とのことだったので、「Blink」のスケッチからコメント部分を省いてみました。
結果、こんな感じ↓
-----------------------------------------
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
-----------------------------------------
わ!めっちゃ短かくなった!!^o^
と喜んではみたものの、このコードの意味はやっぱりわからず…(´-ω-`)ションボリです。
「digitalWrite」やら「delay」やら、、、Arduino言語、むずかしい・・・。
と、思ったところで、再度、Arduino IDEのメニューバー「ヘルプ」へ。
「ヘルプ」>「リファレンス」をクリックすると、、、

ブラウザにジャンプして、ページが表示されました。
これ、Arduino言語の辞書的なページなんです。
わ!めっちゃ短かくなった!!^o^
と喜んではみたものの、このコードの意味はやっぱりわからず…(´-ω-`)ションボリです。
「digitalWrite」やら「delay」やら、、、Arduino言語、むずかしい・・・。
と、思ったところで、再度、Arduino IDEのメニューバー「ヘルプ」へ。
「ヘルプ」>「リファレンス」をクリックすると、、、

ブラウザにジャンプして、ページが表示されました。
これ、Arduino言語の辞書的なページなんです。
例えば、「delay」。
「Blink」のスケッチ例の中に出てきましたね。
「delay(1000)」って書いてました。

リファレンスを見ると、「()内で指定された時間、プログラムを一時停止する」指令だということがわかります。
「()」内に表示する数字はms単位。1000ms=1秒。
「delay(1000)」はつまり、『1秒間プログラムを一時停止するコード』ということになります。
そして、「digitalWrite(LED_BUILTIN, HIGH)」。
「digitalWrite(LED_BUILTIN, LOW)」は出力に関する指定をするコードみたいです。

Arduino IDEの「スケッチ例」>>> 「01.Basics」>>>「Blink」の内容はつまり、
『Arduino UNOのデジタル13ピンに挿したLEDが、1秒間点滅(状態で一時停止する)→1秒間消灯(状態で一時停止する)を繰り返す』という内容だったんですね!
おー!!理解できたときの快感!たまらないです!!^^
そして、念には念を。
先輩スタッフさんの言うとおり「コメントは変更しても、削除しても、Arduinoの指令内容(スケッチ)に直接影響を及ぼすものではない」というのは真実なのか・・・?
(べつに先輩スタッフさんを疑ってるわけじゃないですよー(^_^;))
「Blink」のスケッチからコメント部分を削除した内容(コードのみ)で正常動作するのかを試してみました。

無事正常動作しました。

ふっふっふっふ。無事成功。
少し理解もできました。満足、満足。^^
ところで、再度IDEを見ると「検証(コンパイル)」ボタンと「マイコンに書き込む」ボタンがあることがわかります。
「検証(コンパイル)」してから、「マイコンに書き込む」べき?
でも、いきなり「マイコンに書き込む」をクリックしても問題なく動作したし、どうなんだろう?
再び先輩スタッフさんに聞いてみたところ、
『「マイコンに書き込む」をクリックすると、検証(コンパイル)してくれる。
エラーが出たら、どうせ書き込みできないんだから、「検証(コンパイル)」→「マイコンに書き込む」の順でクリックしても、
「マイコンに書き込む」だけクリックしてもどっちでもいいよ。試しながらスケッチしている時は「検証(コンパイル)」をしながら作業したりするよ』
とのことでした。
(記事:ぐっちさん)
更新予定:毎週木曜日(次回は3月30日です!)
★記事内で紹介した商品は、こちらから購入できます!★
商品 |
型番 |
個数 |
一括注文 リンク先 |
| Arduino UNO Rev3 | A000066 | 1個 | こちらから→ |
| USB2.0 ケ-ブルA-B 1m | 2AB-10 | 1個 | |
| Arduinoをはじめよう 第3版 | ISBN9784873117331 | 1個 | |
| LED 5φ 赤 ★受注単位有★ | L-513ET | 5個 | |
| カーボン抵抗 1/4W 5% ★受注単位有★ | 220Ω | 10個 |


















