第2回 某社arduino勉強会 ハンズオン
DESCRIPTION
大崎らへんの某社で行われているArduino勉強会のハンズオン用資料です。 今回は、LEDをチカチカさせます。TRANSCRIPT
某社 arduino勉強会 ハンズオン
- LEDをチカチカさせてみよう - @hidesuke
参考書 Arduinoをはじめよう 第2版 Massimo Banzi 著 船田巧 訳 アマゾン:http://amzn.to/YoA9UW
Arduinoをはじめようキット スイッチサイエンス アマゾン:http://amzn.to/10AuhWC 上記の本の内容に準拠した、Arduinoと各種センサ、ブレッドボードワイヤーのセット
今日の目標 • Arduinoを使ってLEDをチカチカさせる • Arduinoを触って、なんとなく雰囲気をつかむ。
• 慣れてきたら勝手に拡張してみましょう。
Arduino IDEのセットアップ • Arduinoを動作させるためのスケッチ(小さなプログラム)を書くためのソフトウェアです
• 公式サイトからダウンロードしましょう – http://arduino.cc/en/Main/Software
ごたくはいいからさっさとLED光らせようぜΨ(`∀´)Ψ
• 用意するもの – Arduino UNO – LED – USBケーブル
ハードウェア実装
男らしくぶち刺す
LEDを刺す場所 • LEDの脚の短い方をGNDに刺す – GNDとはグラウンドのこと。接地とかアースとか言われるあれ。
• LEDの脚の長い方を13に刺す
補足:LEDについて • 順方向に電圧を加えると光る半導体素子
• カソード – 外部回路へ電流が流れだす電極のこと
• アノード – 外部回路から電流が流れこむ電極のこと
ソフトウェア実装 • Arduino IDEで以下のコードを入力しましょう
//Example 01 : Blinking LED const int LED = 13; void setup() { pinMode(LED, OUTPUT); } void loop() { digitalWrite(LED, HIGH); // LEDを点ける delay(1000); // 1秒待つ digitalWrite(LED, LOW); // LEDを消す delay(1000); // 1秒待つ }
コンパイル / 書き込み
(1) 検証を押す
(2) エラーが無いことを確認
(3) USBで ArduinoとPCをつなぐ (4) つないであるシリアルポートを指定 図はMacの場合
(5) Arduinoに転送
これでLEDちかちかできた (∩´∀`)∩ワーイ
しかし…… • 長時間チカチカさせたい場合は抵抗を噛ませなくてはいけません。
• 抵抗挟むようなスペースはArduinoに無い……
• LEDチカチカしつづけていて単調
スイッチを使ってLEDをつけたり消したりしましょう
V(電圧) = R(抵抗) * I(電流)
何故、抵抗をかますか • 大きな電流がながれるとLED熱くなっちゃう(;́∀`)
• LEDには流す電流の推奨値があるらしい – 5mAくらいながせば充分あかるいらしいですが……
• V = R*Iを思い出すのじゃ…… – USBは電圧 5V – 5mA = 0.0005A流せば充分ということは。 – R = 5 / 0.0005 = 10000 = 10kΩ
• 10kΩの抵抗をかましたら幸せになれる
抵抗器の読み方 • 抵抗器には4本の色の線が書いてある • この組み合わせで抵抗の数値を読み取る
• 金色 or 銀色の線を右側にする。 – これはその部品の精度を表している
• 左から3桁目は末尾につく0の数を表している
• 左から1桁目、2桁目は普通に数字
色と数値の早見表
wikipediaより転載 http://ja.wikipedia.org/wiki/抵抗器
15000±5%Ω
10kΩは 茶黒橙金
ブレッドボードって? • ハンダ付けしたり、基盤プリントしたりたいへんじゃないですか
• 抜いたり差したりするだけで簡単に回路がつくれる手抜きプロトタイピングのための道具
ブレッドボードの仕組み • 右図の緑の線のように導電体がつながっている
• これを意識してブスブス刺していくといろいろ捗る
ハードウェア実装
5V
GND
LED カソードをGND アノードを13版
タクトスイッチ
10kΩ抵抗器
7番
ソフトウェア実装 //Example 03C const int LED = 13; const int BUTTON = 7; int val = 0; int old_val = 0; int state = 0; void setup() { pinMode(LED, OUTPUT); pinMode(BUTTON, INPUT); }
void loop() { val = digitalRead(BUTTON); //変化があるかチェック if((val == HIGH) && (old_val == LOW)) { state = 1 -‐ state; delay(10); } old_val = val; if (state == 1) { digitalWrite(LED, HIGH); } else { digitalWrite(LED, LOW); } }
スイッチで LEDちかちかできた (∩´∀`)∩ワーイ
まとめ • Arduino IDEでのスケッチ • ブレッドボードを使ったハードウェアの実装
• 抵抗の読み方 • V = R*I