プログラミング学習のために触りはじめたArduinoですが、気づけば10回分の記事になりました。
この記事は「初心者のArduinoプログラミング入門」シリーズ全10回の目次です。
上から順番に進めていけば、LEDをチカチカ光らせるところから、超音波センサで距離を測るところまでひと通り体験できます。
私自身、電子工作はまったくの未経験から始めました。同じように「プログラミングは少しわかるけど、電子工作は初めて」という方の役に立てばうれしいです。
このシリーズで学べること
| 回 | テーマ | 使う部品 | 覚える関数・機能 |
|---|---|---|---|
| ① | Lチカ | Arduino本体だけ | pinMode / digitalWrite / delay |
| ② | ボタンスイッチ | 押しボタン・LED・抵抗 | digitalRead |
| ③ | LEDの明るさ制御 | LED・抵抗(1kΩ) | analogWrite(PWM) |
| ④ | シリアルモニタ | 可変抵抗 | analogRead / Serial.begin / Serial.print |
| ⑤ | サーボモータ | サーボモータ・可変抵抗 | Servoライブラリ |
| ⑥ | RGB LED | RGB LED・抵抗 | analogWrite を3本同時に |
| ⑦ | アクティブブザー | アクティブブザー・押しボタン | INPUT_PULLUP |
| ⑧ | パッシブブザー | パッシブブザー・押しボタン | tone / pitches.h / attachInterrupt |
| ⑨ | ボールスイッチ | ボールスイッチ | 傾きセンサの読み取り |
| ⑩ | 超音波センサ | 超音波センサ HC-SR04 | pulseIn / SR04ライブラリ |
①から⑩まで、前の回で覚えたことを次の回で使う形になっています。とくに⑦⑧⑩あたりは、②③④で覚えたことがそのまま土台になるので、できれば順番に読んでいただくのがおすすめです。
必要なもの
私が使っているのは ELEGOO というメーカーのArduino互換スターターキットです。
Arduino本体だけを買うと、ブレッドボードも抵抗もLEDもセンサも別々に買い足すことになります。その点スターターキットなら、このシリーズで使う部品がひと通り入っています。
このシリーズで実際に使った部品はこちらです。
- Arduino UNO 互換ボード(①〜⑩すべて)
- ブレッドボードとジャンプワイヤー(②以降)
- LED・抵抗・押しボタン(②③⑦⑧)
- RGB LED(⑥)
- 可変抵抗(④⑤)
- サーボモータ(⑤)
- アクティブブザー/パッシブブザー(⑦⑧)
- ボールスイッチ(⑨)
- 超音波センサ HC-SR04(⑩)
純正のArduinoに比べるとかなり安いので、学習用と割り切って買うにはちょうどいいと思います。
なお、キットの構成は型番やロットによって変わることがあります。購入前に、上の部品が入っているか確認してみてください。
全10回の目次
① Lチカ編 ─ まずはLEDを光らせる
Arduinoの「Hello, World!」です。もともと本体に書き込まれているスケッチを書き換えて、内蔵LEDの点滅周期を変えます。
必要な部品はArduino本体だけなので、届いたその日に試せます。
② ボタンスイッチ編 ─ 入力を受け取る
ここからブレッドボードを使います。押しボタンを押している間だけLEDが光る、という回路を作ります。
「出力する」だけだったArduinoが、「入力を読んで反応する」ようになる回です。
③ LEDの明るさ制御編 ─ アナログ出力(PWM)
digitalWrite はONかOFFの2択でしたが、analogWrite を使うと0〜255の段階で明るさを変えられます。
for文と組み合わせて、LEDをじわっと明るくしたり暗くしたりします。
④ シリアルモニタ編 ─ Arduinoの中を覗く
可変抵抗(つまみ)を回して、アナログ入力端子にかかる電圧の変化をパソコンの画面で確認します。
シリアルモニタは、思ったとおりに動かないときの原因調べにも欠かせません。ここを覚えておくと後がラクになります。
⑤ サーボモータ編 ─ ものを動かす
いよいよ「動くもの」が登場します。可変抵抗を回すと、その角度どおりにサーボモータが動きます。
普通のDCモータと違って、サーボモータは角度を指定して止められるのが特徴です。
⑥ RGB LED編 ─ 光の三原色を作る
赤・緑・青の3色をひとつの素子で出せるRGB LEDを使います。3本のピンにそれぞれ analogWrite して、赤→黄→緑→水色→青→紫→赤 と色を循環させます。
光の三原色は理科で習いますが、実際に自分の手で作ってみると納得感がまるで違いました。
⑦ アクティブブザー編 ─ 音を出す
直流電流を加えるだけで鳴るアクティブブザーで音を出します。押しボタンでON/OFFの周期を変えて、音の印象を変えてみます。
夜中に鳴らすと思いのほか大きな音が出るので、時間帯にはご注意を。
⑧ パッシブブザー編 ─ 曲を演奏する
周波数に応じて音の高さが変わるパッシブブザーで、聞き覚えのあるメロディーを演奏します。
さらに割り込み処理(attachInterrupt)を使って、ボタンを押すと演奏のテンポが変わるようにしました。このシリーズで一番プログラムらしいことをした回かもしれません。
⑨ ボールスイッチ編 ─ 傾きを検出する
中のボールが転がることでON/OFFが切り替わるボールスイッチを使います。傾けるとLEDが点いたり消えたりします。
装置が倒れたことを検知する安全装置などに使えそうです。
⑩ 超音波センサ編 ─ 距離を測る
超音波センサ HC-SR04 で、対象物までの距離を測ります。
専用ライブラリを使う方法と、跳ね返ってくるまでの時間から自分で距離を計算する方法の2つを試しました。どちらもほぼ同じ値になって、ちょっと安心しました。
これから始める方へ、3つのコツ
私がつまずいたところから、先に共有しておきます。
'''1. 配線を変えるときは、必ずUSBを抜いてから'''
通電したまま配線を差し替えると、部品を壊すことがあります。面倒でも一度抜くクセをつけたほうが結果的に早いです。
'''2. まずはスケッチをそのまま動かす。変えるのは数字ひとつだけ'''
いきなり自分で書こうとすると、どこが原因で動かないのかわからなくなります。まず記事のスケッチをコピーしてそのまま動かし、動いたのを確認してから delay の数字をひとつだけ変えてみる。この進め方がいちばん確実でした。
'''3. 動かないときは、まず配線を疑う'''
プログラムを何度も見直したあげく、原因はジャンプワイヤーが半分抜けていただけ、というのを何度もやりました。回路図と実物を見比べるところから始めるのがおすすめです。
今後の予定
キットにはまだ触っていない部品が残っているので、⑪以降も少しずつ書いていく予定です。
また、これまで使った部品を組み合わせた「総集編」も作ってみたいと思っています。たとえば超音波センサ(⑩)とブザー(⑦⑧)とRGB LED(⑥)を組み合わせれば、近づくほど音が速くなって色が変わる距離センサが作れそうです。
まとめ
全10回を振り返ると、①のLチカでは「LEDが点いた!」と喜んでいたのが、⑩では距離を計算して表示するところまで来ていました。
ひとつひとつは小さな一歩ですが、順番に積み上げていくとちゃんと形になるものだなと思います。
電子工作は、プログラムの結果が画面の中ではなく目の前で光ったり音が鳴ったりするのが本当に楽しいです。気になった回があれば、ぜひのぞいてみてください。













