これは、まずArduinoとブレッドボードで何か初めてみたい場合の入門書です。必要なものとブレッドボードでLEDをチカチカするところまで説明します。
ほとんどのものは秋月電子でそろいます。ここにあげたもののほかにも、ニッパー、ラジオペンチ、テスターなどがあるといいです。
品名 | 店舗 | 単価 | 個数 | 小計 | 複数人で分ける | 備考 |
---|---|---|---|---|---|---|
Arduino Nano Every | 秋月電子 | 1500 | 1 | ブレッドボードと相性のよいArduino。 | ||
USBケーブル | 秋月電子 | 120 | 1 | すでにあるなら不要 | ||
ブレッドボード EIC-102J | 秋月電子 | 650 | 1 | 一番汎用性が高いタイプ | ||
ジャンパーワイヤセット | 秋月電子 | 220 | 1 | フレキシブルタイプ | ||
ブレッドボード・ジャンパーワイヤ | 秋月電子 | 300 | 1 | 単線タイプ、フレキシブルタイプだけでもいい | ||
テスター DT830T | 秋月電子 | 700 | 1 | あるなら不要。安いので一人一つあってもよい。 | ||
ジャンプワイヤ SUP-200 | 千石電商 | 580 | 1 | ブレッドボードにテスター棒をつなげるジャンプワイヤ、なくてもいいけどあると便利 | ||
タクトスイッチセット 100個セット | 秋月電子 | 700 | 1 | 〇 | ||
炭素皮膜抵抗 1/2W 1KΩ 100本 | 秋月電子 | 100 | 1 | 〇 | ||
炭素皮膜抵抗 1/2W 10KΩ 100本 | 秋月電子 | 100 | 1 | 〇 | 今回は使わないけどあるといい | |
3mm赤色LED OSDR3133A 100個 | 秋月電子 | 350 | 1 | 〇 | ||
3mm黄緑色LED OSNG3133A 100個 | 秋月電子 | 450 | 1 | 〇 |
- イタリア生まれ
- AVRを主としたマイコンにC++のライブラリやオープンソースのビルド環境をパッケージにした非常に簡単な開発環境
- Arduino言語は初心者には難しいAVR-C(AVRマイコン用のCコンパイラ)にC++にライブラリを追加して使いやすい言語にしていますが、決して子供だましのものではありません。言語自体は直接AVR-CでビルドできるC++なのです。そのためやる気になればネイティブなコードも書くことが出来ます。
-
Arduinoの基本はATmega328を使ったArduino Unoだが、価格が安い純正の次世代Arduinoであるこれを使う。最新世代のATmegaであるATmega4809が使用されている。
このピン配列の図はあとから何度も参照します。
まずは、Arduino実行環境の準備と接続を行う。
- ここからArduino IDEをダウンロードしインストールする
- インストールしたArduino(Arduino IDE) を起動する
- ツール > ボード > ボードマネージャを選択する
- 検索フィルタに megaavrと入力する
- 候補に「Arduino megaAVR Boards」がでてくるのでインストールして閉じる
- Arduino Nano EveryをMicroUSBケーブルでPCに接続し、グリーンのランプがつくことを確認。
- ツール > ボード > Arduino megaAVR Boards > Arduino Nano Everyを選ぶ
- Arduino Nano Everyを選ぶ
- ツール > シリアルポート > COMX(Arduino Nano Every)を選ぶ (COMXのXはパソコンによって異なる)
- ファイル > 新規ファイル を開く
- (➡) ボタンをクリックして書き込む
- 特にエラーなく書き込めば成功。デフォルトで橙LEDが点滅していたら、それが止まる。
Lチカ(LEDチカチカ) はLEDを点滅するだけのプログラム。これでマイコンに正しくプログラムが書き込めるかを確認することができます。デジタル回路は0か1かで通信するので、このLEDチカチカというのは多くの回路の基本になります。
Arduinoには豊富なサンプルコードがあります。このLチカプログラムもサンプルにあります。
- ファイル > スケッチ例 > 01.Blinks > Blink を開く
- (➡) ボタンをクリックして書き込む
- 本体内蔵のLEDが1秒ごとに点滅すればOK
サンプルプログラムには英語で説明が書かれています。コメントを抜くとこんな感じです。
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
delay(1000);
}
pinModeでピンの入出力の指定、digitalWriteでピンのオンオフ、delayでミリ秒単位で処理を停止させています。
では、この点滅の速度を早くするにはどうすればいいでしょう?それはdelay(1000)の数字を減らせばいいだけです。2つのdelayをdelay(100)にして書き込んで見ましょう。LEDの点滅がめっちゃ早くなったら成功です。
ブレッドボードは半田付けなしで電子部品の動作が確認できる板で、それぞれが端子になっています。その端子は基本縦に通電するようになっています。くわしくはこのへん のサイトをご覧下さい。
写真のようにArduinoをブレッドボードに刺します。 ちなみにこの写真のピンヘッダについているシールは私が自作したものなので付属していません。
テスターのレンジを5V以上にし、Arduinoの+5V端子にテスターの+、GND端子にテスターの-を刺して、きちんと+5Vがきているか確認します。Arduinoのピンのどれがどれかは上の方にある図を参照して下さい。写真では4.748Vでています。だいたい5VあるのでOKです。
ちなみにArduinoには3.3Vのものと5Vのものがあり、このArduino Nano Everyは5Vを使用します。ここにきている5VはUSB電源の5Vに由来しています。
電圧が5Vより低い原因はほとんどケーブルや電源の品質や接触などによるものです。ちなみにラズベリーパイなどの消費電流の多いデバイスだとこのちょっとした電圧降下で上手く動かない場合がでてきます。
GNDは「0V」を表します。いわゆる「マイナス側の基準の一つ」です。電気は電圧が高いほうから低いほうに流れます。この場合「+5V」というのは、「GNDより5V高いよ」ってことになります。GNDはこの0Vの基準となるものなのでとても大事になります。
たとえば、テスターの-端子をArduinoの+3.3V、+端子を+5Vに刺すと、5Vは3.3Vより1.7V高いということになるので、理論上はテスターには1.7Vが表示されます。ただ5Vのところが4.7Vだったりすると、実測値は1.4Vくらいになります。
抵抗は折り曲げて足の長さを切りそろえておくと、ブレッドボードに刺しやすいです。ひとまず抵抗は1KΩのものを使います。こちらを何本かこのように下処理しておくと便利です。
LEDも足を切りそろえておくと便利なのですが、LEDの足の長さには極性を示す意味もあるので注意です。しかし発光部分をよく見ると極性を見分けることができます。中の金属部分が大きいのがカソード(-側)です。こちらも赤緑それぞれ何本かを、その点を意識して足を切りそろえておきます。
タクトスイッチはそのままではブレッドボードに刺さりにくいかも知れません。その場合はラジオペンチなどで調整してください。
タクトスイッチの4本の足は写真の方向でスイッチがはいっていて、反対側は常に通電しています。つまり、「金属の足がでている側がスイッチにになっている」ということになります。ほとんど同じだとおもいますが、スイッチによって違う可能性があるので注意したほうがいいかもしれません。
どちら方向が正しいかは、実際にテスターの通電確認モードか抵抗モードで調べて下さい。ボタンを押したときだけピーピーなるか、抵抗値が0に近づけばそちらがスイッチの方向です。
まずはLEDに5V電源をつなげて点灯させてみます。電源はArduinoから取ります。ブレッドボードに写真のように配置します。配線する際はArduinoのUSBケーブルを外すようにしてください。