\ AmazonにてArduino UNO R4 発売中!! /

Arduino 入門 Lesson 02 【ダイオード点滅編】

arduino Arduino入門編
記事に広告(アフィリエイト広告)が含まれています。
スポンサーリンク
子供と一緒に始める マイコンプログラム
Arduino 入門
Lesson 02
【ダイオード点滅編】

「Arduino」を使ったマイコンのプログラミングを子供と一緒に学習するブログ。

少しずつ、子供と一緒に楽しみながら気長にアップしてく予定です。

本日はLesson 02  【ダイオード点滅編】です。

 

Arduino入門編の解説にて使用しているArduinoは互換品です。

互換品とは言え、Arduinoはオープンソースであり複製して販売するのもライセンス的に問題なし。

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

正規品の本体単品がほしい方はこちらとなります。

 

スポンサーリンク

はじめに

Lesson 02では、Arduinoの内蔵LEDを点滅させるためのUNOのコントロール方法と、プログラムについて説明していきます。

 

必要なもの

 

Lesson02目標

UNO R3には、スケッチから制御できるダイオード(LED)があります。

このLEDはUNO R3に実装(基板上にあるということ)されています。

基板上で下図赤枠と黄色←で示したところです。

arduino

 

このLEDはPCとUNOを接続すると、初めから点滅しています。

これはすでに「Blink」と呼ばれるスケッチ(プログラム)がインストールされているためです。

※スケッチ(sketch)とはプログラムのことです。

 

本Lessonでは、この「Blink」のプログラムを変更することで、点滅するスピードを変更し自分の好きなように点滅させることが目標です。

 

準備

IDEには、サンプルのスケッチが初めからインストールされています。

本日はそれを利用します。

サンプルスケッチの中に、ボード上のLEDを点滅させるためのスケッチが入っています。

ロードして使用していきたいと思います。

 

スケッチのロード

IDEの画面にて「ファイル」⇒「スケッチ例」⇒「01.Basics」⇒「Blink」を選択しスケッチをロードします。

arduino

 

新しい、IDEのウインドウが開きます。

arduino

 

ウインドウにはBlinkのスケッチが記載されています。

読み込んだスケッチは読み取り専用となっていますので、このままでは編集し保存ができません。

まずは、新しく開いたIDEの画面にて「ファイル」⇒「名前を付けて保存」を選択し、自分の好きな名前で保存してください。

 

今回は「02Blink」で保存します。

保存すると、IDEの画面が02Blinkに代わっているのがわかるかと思います。

次回IDEを立ち上げたときに、保存した「02blink」を読み出したい場合は、「ファイル」⇒「スケッチブック」⇒「02blink」を選択すれば良いです。

arduino

 

スケッチの内容

スケッチの内容を説明していきます。

ブログ内で「スケッチ」、「コード」などがでてきます。

どちらも、プログラムのことで同じです。

そのときの気分で、私の言い方がかわります。。。

すみません。

 

おすすめの入門書

このブログに記載の内容で進めていけるはずですが、下記に紹介するArduinoの入門書をいずれか1冊手元に置いておくことをお勧めします。

なくても、進められますがより理解度が深まると思います。

1.Arduinoをはじめよう 第3版 ※入門者には必須本です!
2.みんなのArduino入門
3.これ1冊でできる!Arduinoではじめる電子工作 超入門

 

これからArduinoを学習していこうと考えている方は「Arduinoをはじめよう 第3版」は必須かと考えます。

 

blinkスケッチのコマンド説明

スケッチの内容について説明していきたいと思います。

このスケッチの大部分はコメントで構成されています。

/*
~
*/

の間はコメントとなります。

また、//の後もコメントとなります。

それ以外のところを説明していきます。

arduino

コマンド 説明
void setup() 電源投入時やリセットボタンが押された時など、
なんらかの理由でボードがリセットされたときに
1回だけ実行されるコマンドです。最初の1回だけ実行したいことを記載する場所となります。
初期設定を記載する箇所と考えていただければ良いです。
voidは何も返さないという時に使用します。
voidの後にあるsetup()を実行しても値を何か返すものではないからです。あまり深く考えず、void setup()は初期設定するところと捉えておいてもらえれば良いかと思います。
書き方のルールは{ }の間に指示を書くということです。
void loop() スケッチにループ機能を持たせます。
繰り返し指示を出したいことを書きます。セットアップとはことなり、コマンドの実行が終了したのち、すぐに再実行されます。
書き方のルールは{ }の間に指示を書くということです。
pinMode(LED_BUILTIN,
OUTPUT);
Arduinoのピン設定のコマンドです。
インプットかアウトプットのいずれかに設定します。
ここではOUTPUTに設定していることになります。
Arduinoに何かをさせたい時はアウトプットに、Arduinoに何かを調べさせたいときはインプットにします。
変数「LED_BUILIN」がOUTPUTに設定されます。
またスケッチ内に記載はありませんが、Arduinoの13番ピンに割り当てられることになります。コメント部分に、「it is attached to digital pin 13」とあることに注目ください。コマンドの最後は「;」で終わるという決まりとなっています。

digitalWrite(LED_BUILTIN,
HIGH);

digitalWrite(LED_BUILTIN,
LOW);

「LED_BUILTIN」で設定してあるピン(※ここでは13番ピン)を、「HIGH」、「LOW」にするコマンドです。ON/OFFしていると思っていただければ良いです。

実際には
HIGH:5V
LOW:0V
となり、5Vを「1」、0Vを「0」と考えると「1,0のデジタル制御」となります。「digitalWrite」というコマンド名にも納得いただけるかと・・・。

こちらも、コマンド最後の「;」をお忘れなく!!

delay(1000); こちらは、遅延コマンドです。
()内で設定した数値の分だけ、待てと指示を出すということです。
単位は1/1000秒であり、
1000を設定した場合、1秒間待てと指示することになります。しつこいですが、コマンドの最後は「;」

 

blinkスケッチ

下記にスケッチ(コード)を示します。

void setup() {
// initialize digital pin LED_BUILTIN as an output.
pinMode(LED_BUILTIN, OUTPUT); //13番ピンをOUTPUTと認識しなさい。
}

void loop() {
digitalWrite(LED_BUILTIN, HIGH);  // LEDをONしなさい。 (5V出力)
delay(1000);            // 1秒待ちなさい!
digitalWrite(LED_BUILTIN, LOW);   // LEDをOFFしなさい。(0V出力)
delay(1000);             // 1秒待ちなさい!
}

 

delay(1000)の数値を変えることでLEDの点滅間隔がかわります。

上記スケッチは1秒間隔でLEDを点滅させることになります。

 

 

実践

Lesson01で実践したように、PCとUNOを接続し、IDEを立ち上げてください。

すでに一度ポート設定をしているので認識しているはずです。

もしくはIDEのツール⇒シリアルポートで表示されているCOMポートを選択してください。

また、「ツール」⇒「ボード」の所で、ボードタイプが正しく選択されているかの確認も念のためしてください。

※ボード情報がわからない場合は、「ツール」⇒「ボード情報を取得」を選択すれば自分が使用しているボード情報がでてきますので確認してみてください。

arduino

 

準備ができたところで、さっそくスケッチをアップロードしてみましょう。

マイコンボードに書き込むボタンを押す。(下図黄色枠)

arduino

 

「スケッチをコンパイルしています…」となります。

また、ボード上のLEDがチラつくのがわかると思います。

 

書き込みが終わると
「ボードへの書き込みが完了しました。」となります。

arduino

 

いかがでしょうか?LEDが1秒間隔で点滅しているのがわかりますでしょうか?

わかりやすくするために、delay(1000)の部分をdelay(100)に変更してボードへ書き込んで見てください。

0.1秒間隔で点滅するので、コマンドを書き換えたことが実感できるかと思います。

他にも、最初のdelay(1000)、次のdelay(100)、または、delay(100)、次のdelay(1000)など好きなように変えてみてください。

たったこれだけですが「自分自身で点滅の間隔を制御できる!」ということに子供はとても喜びます。

考えてみてください。

普段は制御されているものに従って動いている自分が、制御する側に回る感覚。

私も子供も大喜びです。

 

まとめ

Lesson 02ダイオード点滅編はここまで。

次回は、Lesson 03 【ダイオードの輝度変更編】です。

Arduino 入門 Lesson 03 【ダイオードの輝度変更編】
本Lessonでは、抵抗とLEDを使いLEDの輝度を変更する。作業を通してUNOの5V電源ポートの存在と、ブレッドボードの使い方を覚える。子供には、抵抗の大きさが変わることにより回路に流れる電流の大きさが変わるということを、LEDの輝度の変…

 

UNO R3に抵抗、ダイオードを接続し簡単な回路を組んで制御をします。

購入した製品の良いところは、ブレッドボードがついていること。

半田を使用せずに回路を組んで動作を確認できます。

子供と一緒に楽しむのには、本当にありがたいです。

 

補足

今回ArduinoのIO制御が少しだけでできましたが、できればボード内部の接続などがどうなっているかどこかの機会に説明したいです。

ACアダプタに接続した場合、供給される電源は「5V」ではないはず。

どこかで変換しているはずでは?

などなど、やっぱりそういうところも知っておいたほうが楽しめます。

 

最後に

疑問点、質問などありましたら気軽にコメントください。

この電子部品の解説をしてほしい!などなどなんでもOKです。

リンク切れ、間違いなどあればコメントいただけると助かります。

 

Arduino入門編、番外編、お役立ち情報などなどサイトマップで記事一覧をぜひご確認ください。

 

Arduino入門編で使用しているUNOはAmazonにて購入可能です。

互換品とは言え、Arduinoはオープンソース。

複製して販売するのもライセンス的に問題なし。

 

そのため互換品の品質も悪くなく、それでいて値段は安いです。

正規品本体の値段程度で豊富な部品が多数ついています。

 

学習用、遊び用、お試し用には安価な互換品がおすすめです。

 

 

上記のものでも十分に多数の部品が入っていますが、最初からもっと多数の部品が入っているこちらもお勧めです。

 

Amazonでお得に買う方法

Amazonでお得に購入するなら、Amazonギフト券がおすすめです。

現金でチャージするたびに、チャージ額に応じたポイントが付与されます。

最大2.5%!!!(Amazonプライム会員ならさらにお得)

チャージ額(一回分) 一般 プライム会員
5,000円~19,999円 0.5% 1.0%
2,0000円~39,999円 1.0% 1.5%
40,000円~89,999円 1.5% 2.0%
90,000円~ 2.0% 2.5%

さらに、初回チャージで1000ポイントもらえるキャンペーンも実施中!

\Amazonギフト券 1000ポイントキャンペーン/
Amazonチャージ 初回購入で1000ポイントキャンペーン

 

補足情報
コンビニ・ATM・ネットバンクが対象
購入は1円単位で可能

 

コメント

  1. omoroya omoroya より:

    いわひろさま、
    コメントありがとうございます。
    サーバー切り替えタイミングでコメントがあったため記載いただいた
    コメントを移行できませんでした・・・。m(__)m
    ✔の検証ボタンではエラーはでないということでしょうか?
    →の書き込み時のみにエラーですか?
    また、1000の場合は書き込みできたということでしょうか?
    IDEにて
    ツール→ボード→Arduino AVR Boards
    にて所望のボードを選択していますでしょうか?

    いわひろ、さまからいただいたコメント
    ——————————————————–
    お世話になります。
    こちらのレッスンを拝見させて頂きながら初めてプログラミングに挑戦してる者です。
    いつもありがとうございます。

    同じELEGOO mega2560
    でやってみてるんですが、Blinkを1000から2000にスケッチしてボードに書き込もうとしてもエラーを起こしてしまって、実行できません。
    リセットボタンを押したりUSBから抜き
    差ししてみましたが、何度やっても同じです。
    そもそもパソコンもあまり詳しくないのですが、原因が分かられますか?

  2. PUFF より:

    アップロードが終わると、何もしなくても実行されるのですね。
    やはり、初めてのプログラムは感動しますね。
    ところで、止める(やめる)時は、いきなりUSBを抜いても、良いものでしょうか?
    ピカピカ光ってる時に・・・電源ボタンとか無さそうですし。
    あと
    >たったこれだけですが「自分自身で点滅の感覚を制御できる!」
    >ということに子供はとても喜びます。
    ここの漢字は(感覚)->(間隔)ですね。
    重箱のスミで、ごめんなさい。

    • omoroya omoroya より:

      コメントありがとうございます。
      また、ブログ読んでいただきありがとうございます。
      >止める(やめる)時は、いきなりUSBを抜いても、良いものでしょうか?
      はい、問題ありません。
      arduinoには電源ボタンがありませんので、やめるときは電源を引っこ抜いてください。
      また、誤字脱字のご指摘ありがとうございます。
      助かります!

タイトルとURLをコピーしました