Arduino UNO チュートリアル: 書籍 Arduino をはじめよう

書籍 Arduino をはじめようのチュートリアルです。



Arduino をはじめよう

最初の一冊としてはこれが適当かと思います。後半は Arduino 言語の日本語リファレンスとなっています。マストバイ。

以下の記事は、書籍 Arduino をはじめよう をなぞったものですが、私か購入した時点の第2版準拠なので、新しい版とは異なる箇所がある事をお断りしておきます。第3版では LEONARDO の記事が追加されていたりしますので、できるだけ新しい版を購入した方がいいと思います。

また、Amazon 等で売ってあるスターターキットには以下のパーツは含まれていないかもしれません。

でも、無理して購入しなくてもいいと思います。



Example 01: LED を点滅させる

最初からLチカスケッチが入っているので LED を刺すだけで終わりです。あとはスケッチの delay() を変更して点滅間隔を変えて遊ぶくらいですかね (^^;A

UNO にはビルトイン LED があるので、実は外部 LED を繋がなくてもLチカできます。

Arduino IDE 付属のスケッチ Blink ([ファイル | スケッチ例 | 01.Basics] にある) のコードでは、13 ではなく LED_BUILTIN が指定されています。この LED_BUILTIN は Arduino UNO では 13 ですが、他の Arduino ではそれ以外の値で定義されている事があります。

LED を抵抗なしでLチカさせる事の是非

さて、「LED を抵抗なしで D13 に挿すのはよくないよね?」 という話が多いようなので補足しておきますね。もちろん LED を接続するのに抵抗が必要だという事を否定しているのではありません。

恐らく Arduino をはじめよう の趣旨は最初に Arduino を触らせようという事なのだと思います。抵抗を使うのであれば、ブレッドボード (とジャンパーワイヤ) が必要であり、Arduino に触る前にブレッドボードの使い方を知る必要がありますので。

D13 には抵抗が初めから入っているのか?

「D13 には抵抗が入っているから直接 LED を挿してもいいよね!」 という話があるようですが、半分正しくて半分間違っています。

Duemilanove も UNO も D13 には抵抗が入っていません。つまりこの話はかなり古い Arduino にしか当てはまらない事になります。

では、Arduino をはじめよう も古い Arduino を元に書かれているから直接 LED を挿しているのでしょうか?いえ、時期的にそれはありえません。イラストの四角いチップは ATMega16U2 / 8U2 ですので、明らかに UNO を参考に書かれています。

初版のイラストは Duemilanove だったようです。

結論

個人的には、

...と思っています。

話の順番が逆ですが、LED を使う時に抵抗をつなげる必要があるのは LED に過大な電流が流れるからです。

この抵抗を電流制限抵抗と呼び、名前の通り LED に流れる電流を制限する働きがあります。抵抗を使った接続例は Example 04: LED のフェードインとフェードアウト で出てきます。

See Also:



Example 02: プッシュボタンを使って LED をコントロール

プッシュボタンは割と強引に挿します (足は手前の2本が刺さっていればいいです) 。4本足のタクトスイッチは向きに注意してください。向きを間違えると常に導通してしまいます。

プルダウン抵抗が入っていますが、これについての詳しい説明はありません。「プルアップ / プルダウン抵抗が何のためにあるのか?」 ですが、簡単に言えば 「プルアップ / プルダウン抵抗がないと信号が HIGH なのか LOW なのかハッキリしないから」 です。ボタンにプルダウン抵抗が付いていると、ボタンが押されない場合には LOW になります (押されたら HIGH)。ボタンにプルアップ抵抗が付いていると、ボタンが押されない場合には HIGH になります (押されたら LOW)。

プルアップ / プルダウン抵抗がない場合、意図しない動作になる事があります。

等々。ソフトウェア的に言えば "初期値" を設定するようなものでしょうか。

See Also:



Example 03: ボタンを押すと LED が点灯し、ボタンから指を離した後も点いたままにする

回路は Example 02 と全く同じです。ここで紹介されている バウンシングチャタリング とも呼ばれます。

See Also:



Example 04: LED のフェードインとフェードアウト

書籍には 270Ωと書いてありますが、キットの都合上 220Ωを使います。1KΩでもいいかと思いますが、明るくないかもしれません。

PWM (Pulse Width Modulation: パルス幅変調) に使えるピンは以下の通りです。

PWM というと大層な感じがしますが、昔ポケコンで擬似中間色を出すのに ON/OFF を高速で繰り返したりしたアレです (w

analogWrite() の分解能は 256 (8bit: 0~255) です。

See Also:



Example 05: ボタンを押すと LED が点灯し、ボタンから指を離した後も点いたままにする。ボタンを押したままにすると明るさが変化する

Example 03Example 04合体させろという無茶振りをしてきます。そしてここには二通りの接続方法が示唆されています。

前者は素直に合体させる方法です。"GND 端子が 2 つある" と書かれていますが、僕の目には 3 つあるように見えます (^^;A 後者はブレッドボードの GND レーンを使って配線する方法ですが、イラストが描かれていないのでブレッドボードに不慣れな方は意味が解からないかもしれません。画像はこちらの方法の配線例です。別途ブレッドボード用のジャンパーワイヤがあると配線しやすいと思います。



Example 06: アナログ入力の値に応じて LED の点滅レートが変化 / 明るさを変える

光センサーは上の画像のものです。

よく読めば解りますが、(書籍の) イラストの配線だけではなく Example 04 の配線も必要となります。スターターキットには CdS セルが 3 つ入っている気がするのですが、どれも特性は変わらないのでしょうか?

analogRead() の分解能は 1024 (10bit: 0~1023) です。

See Also:



Example 07: アナログ入力ピン 0 の値をコンピュータへ送る

回路は Example 06 と全く同じです。

Leonardo の場合、ハードウェアシリアル (Digital #0, #1) を使うには Serial ではなく Serial1 を使います。



Example 7.5: モーターの駆動

Example 07Example 08 の間にあるモーターを回すサンプルはスケッチ (プログラム) が掲載されていません。スターターキットには MOSFET / ダイオード / モーターが付属しないのでこれを試す事はできません。別途パーツを購入する必要があります。

念のために配線図を書いておきます。MOSFET とダイオードには向き (極性) がありますので注意が必要です。また、電池ボックスを接続して 9V を供給する必要があります。モーターに関しては、PC のジャンクパーツをお持ちならファン (12V) を探してみましょう…この際には 12V の AC アダプタを接続する必要があります。

DC ジャックに接続した電源は Vin から取り出せます。また、名前の通りここに電源を繋ぐ事もできますが、DC ジャックと Vin の両方に電源を繋いではいけません

See Also:



Example 08: Arduino ネットワークランプ


ここにある情報が役に立って、「調べる手間が省けたからオマイに飯でもおごってやるよ」 というハートウォーミングな方がいらっしゃいましたら、下のボタンからどうぞ。

メニュー: