Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
LEDやモーターを
Arduinoで制御しよう
工学院大学 機械理工学科
⾦丸隆志
1
本資料の内容に必要なもの(1)
2
本講義のために、Arduino Uno以外に
筆者があらかじめ用意したパーツを紹介します
ブレッドボード
http://akizukidenshi.com/catalog/g/gP-05294/
ジャンパワイ...
本資料の内容に必要なもの(2)
3
電池ボックス
http://akizukidenshi.com/catalog/g/gP-02666/
モータードライバTA7291P
http://akizukidenshi.com/catalog/g/g...
電⼦部品・回路を取り扱う上での注意
4
教員の指示に従うこと
使わない部品はケースにしまっておくこと
濡れた⼿で部品や回路を触らないこと
机の上に飲み物を置かないこと
回路の基板の上にパーツや配線などを落とさないこと(ショートする)
LEDとは何か︖
発光する電⼦パーツ。
電化製品のインジケータや、照明、信号機などにも使われる
本実験では、⾚、⻩、緑の3種を用いる
LEDを発光させる際に用いる。
オレンジ、オレンジ、茶、⾦
のカラーコードは330Ω(オーム)の
大きさの抵抗...
LEDを点灯させるための回路
電池
など
LED
抵抗
比較
電池
など
豆電球
LEDを点灯させるには、抵抗が必要
(電流を流し過ぎないため)
LEDの接続の際には向きに注意
アノード
(+)側
カソード
(ー)側
豆電球を点灯させる回路はど...
回路を組むために必要なもの(1)
ブレッドボード
穴にLEDや抵抗などの電⼦パーツや
ジャンパワイヤ(後述)をさして
回路を作成
ブレッドボードの内部配線
灰色の部分が内部で電気的に
つながっていることを覚えておく
7
回路を組むために必要なもの(2)
ジャンパワイヤ
ブレッドボードにさして
回路の配線とする
電池ボックス
表 裏
乾電池3本分
=1.5V×3=4.5V
ここにスイッチ
通常オフに
使うときのみオンに配線⾚︓+側
配線⿊︓-側 8
LED点灯回路をブレッドボードに構成
電池
LED
抵抗
(330Ω)
アノード
(+)側
カソード
(ー)側
+
ー
注意
LEDには向きがあるのだった
カソード(ー)
足の短い側
アノード(+)
足の⻑い側
抵抗には向きはない
この回路では...
次の目標︓LEDの点灯・消灯をマイコンで制御
マイクロ・コントローラーの略。
LEDやモーターなど制御が得意な「小さなコンピュータ」
マイコン
先ほどは「⼿で」⾏なったLEDのオン・オフを
「コンピュータ(マイコン)」にやらせる、ということ
A...
準備︓先ほどの回路を再解釈
電池
4.5V
LED
抵抗
等価
電位
4.5V
電位
4.5V
あるいは
スイッチ
を考慮
して
GND
(グラウンド)
電位0の点
GND
スイッチ
右側の回路の記法に慣れる
電流の向き
電流の向き
11
これから実現するもの
マイコンの
出⼒
LED
抵抗
GND
⼀般に「マイコンの出⼒」とは下記の
二状態のどちらかをとることができる
HIGH / LOW
H / L
1 / 0 (呼び方は何通りかある)
Arduino Unoでは、この二状態...
あらかじめ回路を組んでおこう
Arduinoの
GNDピン
Arduinoの
13ピン
注意︕︕
今回、電池ボックスは
使わないのでOFFにして
取り外し、ケースに
しまっておくこと︕︕
Arduino Unoへの接続が
電池の代わりとなる
G...
Arduino Unoで動作するプログラムを
どのように作成するか︖(1)
Step 1
USBケーブル
Arduino Uno
ノートPC
Step1-1 PC上でプログラムを記述
Step1-2 書いたプログラムを
Arduino Unoに...
Arduino Unoで動作するプログラムを
どのように作成するか︖(2)
Step 2
書いたプログラムが
Arduino Uno上で動作
USBケーブル
プログラムに応じて
回路の動作が変化
ジャンパワイヤで
回路に接続
このステップでは、...
それではプログラムを書いてみよう
まずはデスクトップのアイコンからArduino IDEを起動
IDE︓Integrated Development Environment(統合開発環境)
プログラムを記述する
エディタが起動
ここにプログラム...
記述すべきプログラム
追記(1⾏)
追記(4⾏)
大文字・小文字も区別すること
注意点
もともとあった文字、記号は削除しないこと
⾏末には全て「;」(セミコロン)が必要
全て英語モード(半角文字)で記すこと
17
記述したプログラムの意味(1)
setup関数内に記した
内容は、Arduino Unoの
電源投⼊時に⼀度だけ
実⾏される
loop関数内に記した
内容は、Arduino Unoが
動作している間、
何度も繰り返される
「//」で書き始められ...
記述したプログラムの意味(2)
⼀度だけ実⾏されるsetup関数内に記した1⾏の意味︓
「13ピンを出⼒(OUTPUT)ピンに設定する」
「13ピン」とは︖
ここのピンのこと
「出⼒(OUTPUT)ピン」とは︖
HIGH(5V)やLOW(0V)...
記述したプログラムの意味(3)
繰り返し動作するloop関数内に記した4⾏︓
上から順に実⾏して…
また上に戻る
13ピンからHIGH(5V)を出⼒する、の意味
1000ミリ秒(=1秒)待つ、の意味
その結果、下記の動作が実現する
13ピンHI...
記述したプログラムを
Arduino Unoに書き込もう(1)
Step 1 まずは書いたプログラムに名前をつけて保存する
ここではLEDが点滅(blink)するので
「LEDblink」という名前にした
(英数字で名前をつけること)
デフォル...
記述したプログラムを
Arduino Unoに書き込もう(2)
Step 2 書いたプログラムが文法的に正しいか検証する
成功
失敗
次に進める
プログラムを修正→保存→検証
を繰り返す
なお「プログラムが文法的に正しい」ことと
「プログラムが...
記述したプログラムを
Arduino Unoに書き込もう(3)
Step 3 Arduino UnoをPCに接続する(あらかじめ接続してあってもよい)
USBケーブルで
PCへ接続
接続後、下記のように「ツール」→「シリアルポート」
で「COM...
記述したプログラムを
Arduino Unoに書き込もう(4)
Step 4 Arduino IDEからArduino Unoへプログラムの書き込み
成功
ここまでの⼿順が全て問題なく成功していたら、
ブレッドボート上のLEDが1秒ごとに点滅し...
課題1
⾚色LEDと⻩色LEDを用いた回路を作成し、下記のように交互に点滅するよう
プログラムを記述せよ
⾚色点灯・⻩色消灯 1秒待ち ⾚色消灯・⻩色点灯 1秒待ち
25
課題1続き(1)
13ピン
⾚色LED
抵抗
330Ω
GND
作成すべき回路
12ピン
⻩色LED
抵抗
330Ω
GND
Arduinoの
GNDピン
Arduinoの
13ピン
Arduinoの
12ピン
この1列を
共通のGNDとして
...
課題1続き(2)
書くべきプログラム
27
課題2
⾚色LEDと⻩色LEDと緑色LEDを用いた回路を作成し、
下記のように順番に点灯するようプログラムを記述せよ。
⾒ての通りこれは信号機をイメージしている
⾚色のみ点灯 5秒待ち ⻩色のみ点灯 1秒待ち 緑色のみ点灯 5秒待ち
28
課題2続き(1)
作成すべき回路
Arduinoの
GNDピン
Arduinoの
13ピン
Arduinoの
12ピン
Arduinoの
11ピン
13ピン
⾚色LED
抵抗
330Ω
GND
12ピン
⻩色LED
抵抗
330Ω
GND
すな...
課題2続き(2)
書くべきプログラム
30
課題3
モーター1つを搭載したキャタピラ式の模型を、
⼀秒おきに前進・後退が切り替わるようにArduinoで制御せよ
前進1秒 後退1秒
交互に切り替わる
31
課題3続き(1)
これまでLEDを用いてきたが、ここではモーターを用いる。
(特にDCモーターと呼ばれる、模型やおもちゃでよく用いられるもの)
モーター特有の注意点があるのでここで解説する
マイコン
LED
抵抗
GND
LEDは下のような回路...
課題3続き(2)
モーターをマイコンなどから制御する場合、
通常「モータードライバ」と呼ばれるICを用いる
電池
ボックス
DCモーター
マイコン
13ピン
マイコン
12ピン
DCモーターを動かす電流は
電池ボックスから流れる
(=マイコンが...
課題3続き(3)
作成すべき回路
Arduinoの
GNDピン
Arduinoの
13ピン
Arduinoの
12ピン 電池
ボックスDCモーター
電池ボックスのスイッチは
回路とプログラムが
完成し、プログラムを
書き込んでからONすること
...
課題3続き(4)
書くべきプログラム
35
Upcoming SlideShare
Loading in …5
×

LEDやモーターをArduinoで制御しよう

5,143 views

Published on

Arduino Unoを用いてLEDの点滅やモーターの正転・逆転を制御するチュートリアルです

Published in: Education
  • Be the first to comment

LEDやモーターをArduinoで制御しよう

  1. 1. LEDやモーターを Arduinoで制御しよう 工学院大学 機械理工学科 ⾦丸隆志 1
  2. 2. 本資料の内容に必要なもの(1) 2 本講義のために、Arduino Uno以外に 筆者があらかじめ用意したパーツを紹介します ブレッドボード http://akizukidenshi.com/catalog/g/gP-05294/ ジャンパワイヤ(ピン-ピンタイプ) http://akizukidenshi.com/catalog/g/gC-05371/ LED(⾚、⻩、緑を用意しました) http://akizukidenshi.com/catalog/g/gI-00562/ 330Ωの抵抗 http://akizukidenshi.com/catalog/g/gR-25331/ ピンヘッダ http://akizukidenshi.com/catalog/g/gC-00167/ キャタピラ式模型のモーターの配線にはんだづけし、 ブレッドボードに差し込みやすくしています
  3. 3. 本資料の内容に必要なもの(2) 3 電池ボックス http://akizukidenshi.com/catalog/g/gP-02666/ モータードライバTA7291P http://akizukidenshi.com/catalog/g/gI-02001/ 10kΩの抵抗 http://akizukidenshi.com/catalog/g/gR-25103/ タミヤのタンク工作基本セット http://akizukidenshi.com/catalog/g/gK-09102/ 付属の電池ボックスは使わずに組み⽴てます。 モーター用配線 http://akizukidenshi.com/catalog/g/gP-06756/ モーターに⻑めの配線をはんだづけし、ピンヘッダをはんだづけして ブレッドボードに差し込みやすくしています
  4. 4. 電⼦部品・回路を取り扱う上での注意 4 教員の指示に従うこと 使わない部品はケースにしまっておくこと 濡れた⼿で部品や回路を触らないこと 机の上に飲み物を置かないこと 回路の基板の上にパーツや配線などを落とさないこと(ショートする)
  5. 5. LEDとは何か︖ 発光する電⼦パーツ。 電化製品のインジケータや、照明、信号機などにも使われる 本実験では、⾚、⻩、緑の3種を用いる LEDを発光させる際に用いる。 オレンジ、オレンジ、茶、⾦ のカラーコードは330Ω(オーム)の 大きさの抵抗を示す LED(Light Emitting Diode) 抵抗 5 アノード(+) 足の⻑い側 カソード(ー) 足の短い側
  6. 6. LEDを点灯させるための回路 電池 など LED 抵抗 比較 電池 など 豆電球 LEDを点灯させるには、抵抗が必要 (電流を流し過ぎないため) LEDの接続の際には向きに注意 アノード (+)側 カソード (ー)側 豆電球を点灯させる回路はどうだったか +極 ー極 +極 ー極 6 豆電球を点灯 させる際、 向きもなく 抵抗も不要 だった
  7. 7. 回路を組むために必要なもの(1) ブレッドボード 穴にLEDや抵抗などの電⼦パーツや ジャンパワイヤ(後述)をさして 回路を作成 ブレッドボードの内部配線 灰色の部分が内部で電気的に つながっていることを覚えておく 7
  8. 8. 回路を組むために必要なもの(2) ジャンパワイヤ ブレッドボードにさして 回路の配線とする 電池ボックス 表 裏 乾電池3本分 =1.5V×3=4.5V ここにスイッチ 通常オフに 使うときのみオンに配線⾚︓+側 配線⿊︓-側 8
  9. 9. LED点灯回路をブレッドボードに構成 電池 LED 抵抗 (330Ω) アノード (+)側 カソード (ー)側 + ー 注意 LEDには向きがあるのだった カソード(ー) 足の短い側 アノード(+) 足の⻑い側 抵抗には向きはない この回路ではジャンパワイヤは不要 最初はスイッチを オフにしておき、 回路が完成してから オンにすること 確認 電池ボックスのスイッチのオン・オフでLEDの点灯状態が変化することを確認 確認できたら、電池ボックスのスイッチをオフにしておく 9
  10. 10. 次の目標︓LEDの点灯・消灯をマイコンで制御 マイクロ・コントローラーの略。 LEDやモーターなど制御が得意な「小さなコンピュータ」 マイコン 先ほどは「⼿で」⾏なったLEDのオン・オフを 「コンピュータ(マイコン)」にやらせる、ということ Arduino Uno(アルドゥイーノ ウノ) 本実験ではマイコンとして 取り扱いが容易な Arduino Unoを用いる 本実験ではArduino Unoの上図の部分 (GND/13ピン/12ピン/11ピン) を用いるの注目しておくこと 10
  11. 11. 準備︓先ほどの回路を再解釈 電池 4.5V LED 抵抗 等価 電位 4.5V 電位 4.5V あるいは スイッチ を考慮 して GND (グラウンド) 電位0の点 GND スイッチ 右側の回路の記法に慣れる 電流の向き 電流の向き 11
  12. 12. これから実現するもの マイコンの 出⼒ LED 抵抗 GND ⼀般に「マイコンの出⼒」とは下記の 二状態のどちらかをとることができる HIGH / LOW H / L 1 / 0 (呼び方は何通りかある) Arduino Unoでは、この二状態は以下の電圧を示す 5V / 0V すなわち Arduino UnoがHIGH(5V)を出⼒するとき →LED点灯 Arduino UnoがLOW(0V)を出⼒するとき →LED消灯 どのようにHIGH/LOWを切り替えるか︖ Arduino Unoで動作するプログラムを書くことによって 12
  13. 13. あらかじめ回路を組んでおこう Arduinoの GNDピン Arduinoの 13ピン 注意︕︕ 今回、電池ボックスは 使わないのでOFFにして 取り外し、ケースに しまっておくこと︕︕ Arduino Unoへの接続が 電池の代わりとなる GNDピン、 13ピンとは︖ ここにジャンパワイヤで接続 (ジャンパワイヤの色は自由) 13
  14. 14. Arduino Unoで動作するプログラムを どのように作成するか︖(1) Step 1 USBケーブル Arduino Uno ノートPC Step1-1 PC上でプログラムを記述 Step1-2 書いたプログラムを Arduino Unoに書き込む 14
  15. 15. Arduino Unoで動作するプログラムを どのように作成するか︖(2) Step 2 書いたプログラムが Arduino Uno上で動作 USBケーブル プログラムに応じて 回路の動作が変化 ジャンパワイヤで 回路に接続 このステップでは、このPCは Arduino Unoへの電源として しか機能していない。 この場合、PCではなく USBバッテリーでも可。 ノートPC Arduino Uno ブレッドボード 上の回路 15
  16. 16. それではプログラムを書いてみよう まずはデスクトップのアイコンからArduino IDEを起動 IDE︓Integrated Development Environment(統合開発環境) プログラムを記述する エディタが起動 ここにプログラムを 追記 (既存の記述を 削除しないこと) 16
  17. 17. 記述すべきプログラム 追記(1⾏) 追記(4⾏) 大文字・小文字も区別すること 注意点 もともとあった文字、記号は削除しないこと ⾏末には全て「;」(セミコロン)が必要 全て英語モード(半角文字)で記すこと 17
  18. 18. 記述したプログラムの意味(1) setup関数内に記した 内容は、Arduino Unoの 電源投⼊時に⼀度だけ 実⾏される loop関数内に記した 内容は、Arduino Unoが 動作している間、 何度も繰り返される 「//」で書き始められた⼀⾏は「コメント」と呼ばれ プログラムの動作には影響しない 18
  19. 19. 記述したプログラムの意味(2) ⼀度だけ実⾏されるsetup関数内に記した1⾏の意味︓ 「13ピンを出⼒(OUTPUT)ピンに設定する」 「13ピン」とは︖ ここのピンのこと 「出⼒(OUTPUT)ピン」とは︖ HIGH(5V)やLOW(0V)を出⼒できる ピンのこと 19
  20. 20. 記述したプログラムの意味(3) 繰り返し動作するloop関数内に記した4⾏︓ 上から順に実⾏して… また上に戻る 13ピンからHIGH(5V)を出⼒する、の意味 1000ミリ秒(=1秒)待つ、の意味 その結果、下記の動作が実現する 13ピンHIGH(LED点灯) 1秒待ち 13ピンLOW(LED消灯) 1秒待ち LEDがチカチカ点滅するので、「Lチカ」と言う 20
  21. 21. 記述したプログラムを Arduino Unoに書き込もう(1) Step 1 まずは書いたプログラムに名前をつけて保存する ここではLEDが点滅(blink)するので 「LEDblink」という名前にした (英数字で名前をつけること) デフォルトで「ライブラリ」→「ドキュメント」→「Arduino」以下に保存される 21
  22. 22. 記述したプログラムを Arduino Unoに書き込もう(2) Step 2 書いたプログラムが文法的に正しいか検証する 成功 失敗 次に進める プログラムを修正→保存→検証 を繰り返す なお「プログラムが文法的に正しい」ことと 「プログラムが正常に動作する」ことはイコールではないことに注意 「英語が文法的に正しい」ことは 「英語の意味が正しく伝わる」ことを意味しないのと同じ(I am a pen.とか) 22
  23. 23. 記述したプログラムを Arduino Unoに書き込もう(3) Step 3 Arduino UnoをPCに接続する(あらかじめ接続してあってもよい) USBケーブルで PCへ接続 接続後、下記のように「ツール」→「シリアルポート」 で「COM4(Arduino/Genuino Uno)」を選択し、 チェックを⼊れる(数字「4」の部分は⼈により異なる) 23
  24. 24. 記述したプログラムを Arduino Unoに書き込もう(4) Step 4 Arduino IDEからArduino Unoへプログラムの書き込み 成功 ここまでの⼿順が全て問題なく成功していたら、 ブレッドボート上のLEDが1秒ごとに点滅しているはず 点滅していなければ、下記のどちらかに問題がある ブレッドボード上の回路 → 接続をもう⼀度⾒直す プログラム → 記述を⾒直し修正して再書込み 24
  25. 25. 課題1 ⾚色LEDと⻩色LEDを用いた回路を作成し、下記のように交互に点滅するよう プログラムを記述せよ ⾚色点灯・⻩色消灯 1秒待ち ⾚色消灯・⻩色点灯 1秒待ち 25
  26. 26. 課題1続き(1) 13ピン ⾚色LED 抵抗 330Ω GND 作成すべき回路 12ピン ⻩色LED 抵抗 330Ω GND Arduinoの GNDピン Arduinoの 13ピン Arduinoの 12ピン この1列を 共通のGNDとして 用いていることに 注意 すなわちこういう回路 26
  27. 27. 課題1続き(2) 書くべきプログラム 27
  28. 28. 課題2 ⾚色LEDと⻩色LEDと緑色LEDを用いた回路を作成し、 下記のように順番に点灯するようプログラムを記述せよ。 ⾒ての通りこれは信号機をイメージしている ⾚色のみ点灯 5秒待ち ⻩色のみ点灯 1秒待ち 緑色のみ点灯 5秒待ち 28
  29. 29. 課題2続き(1) 作成すべき回路 Arduinoの GNDピン Arduinoの 13ピン Arduinoの 12ピン Arduinoの 11ピン 13ピン ⾚色LED 抵抗 330Ω GND 12ピン ⻩色LED 抵抗 330Ω GND すなわちこういう回路 11ピン 緑色LED 抵抗 330Ω GND 29
  30. 30. 課題2続き(2) 書くべきプログラム 30
  31. 31. 課題3 モーター1つを搭載したキャタピラ式の模型を、 ⼀秒おきに前進・後退が切り替わるようにArduinoで制御せよ 前進1秒 後退1秒 交互に切り替わる 31
  32. 32. 課題3続き(1) これまでLEDを用いてきたが、ここではモーターを用いる。 (特にDCモーターと呼ばれる、模型やおもちゃでよく用いられるもの) モーター特有の注意点があるのでここで解説する マイコン LED 抵抗 GND LEDは下のような回路を用いて マイコンによる制御を⾏った モーターでは下のような回路を 作ってはいけない 電流 10mA 程度 マイコン M モーター GND 電流 数百mA (マイコンが 壊れる) 32
  33. 33. 課題3続き(2) モーターをマイコンなどから制御する場合、 通常「モータードライバ」と呼ばれるICを用いる 電池 ボックス DCモーター マイコン 13ピン マイコン 12ピン DCモーターを動かす電流は 電池ボックスから流れる (=マイコンが壊れない) マイコンはモーターに対する スイッチとして機能する モータードライバ TA7291P 13ピンと12ピンの出⼒の組み合わせでDCモーターの動きが決まる 13ピン HIGH 12ピン LOW モーター正転 13ピン LOW 12ピン HIGH モーター反転 33
  34. 34. 課題3続き(3) 作成すべき回路 Arduinoの GNDピン Arduinoの 13ピン Arduinoの 12ピン 電池 ボックスDCモーター 電池ボックスのスイッチは 回路とプログラムが 完成し、プログラムを 書き込んでからONすること 電池ボックスの-極と ArduinoのGNDピンを 接続して共通化している モーターの配線はどちらをつないでも良い(「正転の向き」の定義が変わるだけ) 10kΩの抵抗はここで 初めて用いる。 これまで用いた330Ω とは色が異なる︕︕ 34
  35. 35. 課題3続き(4) 書くべきプログラム 35

×