可変抵抗のツマミを回してLEDの明るさを可変します
〔Arduinoの動かせ方入門に戻る〕
半固定抵抗とLEDを配線して、半固定抵抗のツマミを回しその抵抗値でLEDの明るさを変えます。
@まずは、下記図画面の様に配線しましょう。
半固定抵抗はアナログ入力の0番ピンに配線されています。
LEDはデジタルの3番ピンに接続されていますが、今回はこの3番ピンをアナログ出力として使用します。
LEDの足が短い方(-)を抵抗470Ω側に接続します。
Aarduinoボード(Arduino Duemilanove 328)はUSBケーブルで接続して、arduino IDEを起動させます。
BIDEに下記のスケッチプログラムをコピーペーストして貼り付けて下さい。
ちょっと寄り道のスケッチで、LEDの点灯のみを実行するだけです。
LEDの点灯チェックと明るさチェックが出来ますね。
---------------------------------------------------------------------
void setup() {
pinMode(3,OUTPUT) ; // LED接続のピン(3番)をデジタル出力に設定
}
void loop() {
digitalWrite(3, HIGH) ; // LEDを点灯(HIGH(5V))で出力
}
---------------------------------------------------------------------
CIDEツールバーの赤枠部分「Upload」ボタンをクリックしてコンパイルとarduinoボードに書込みを行います。
D正常終了後、LEDが点灯しっぱなしですね。
E今度は本番スケッチプログラムです、コピーペーストして貼り付けて下さい。
読込まれる半固定抵抗値はどの位なのかシリアル通信で送信してIDEでみれば分かります
---------------------------------------------------------------------
void setup() {
}
void loop() {
int val ;
val = analogRead(0) ; // 半固定抵抗からの読込み値
val = val / 3 ; // 読込み値を3で割っています
analogWrite(3,val) ; // LEDに出力
}
---------------------------------------------------------------------
FIDEツールバーの「Upload」ボタンをクリックしてコンパイルとarduinoボードに書込みを行います。
G正常終了後、半固定抵抗のツマミを回してみて下さいLEDの明るさが変わると思います。
《やさしく解説》
半固定抵抗について
アナログ入力は電圧の0〜5Vを0〜1023の値に変換して読み込みます。
今回配線した半固定抵抗は約0〜600の値で読み取るみたいで約0〜3Vですね。
ツマミを右に回せばLEDは暗くなり、左に回せば明るくなります。
ツマミの位置が左9時の方向位置で約600の値です、右に回し12時の位置で約0の値を読込みます。
また、配線を5V(赤線)とGND(黒線)で入れ替えると、右に回しで600となり逆になります。
抵抗値の異なる半固定抵抗や他の可変抵抗を取り付けた場合は0〜600と限りません。
LEDについて
LEDには極性が有ります、
足の長いアノード側を3番ピンの方に、足の短いカソード側をGNDピンの方に接続します。
また、LEDには流せる電圧と電流が決まっています、必ず電流制限抵抗を付けましょう。
電流制限抵抗
LEDの順方向電流(IF)と順方向電圧(VF)がデータシート等に書いてあると思います、
例えばIFが10mAで、VFが2.5Vで、arduinoのアナログ出力が5Vとすると、
(arduino出力−順方向電圧)÷ 順方向電流 = 電流制限抵抗値
よって、(5V - 2.5V) ÷ 0.010A = 250Ω(250Ωは無いので240Ωか270Ωを使います)
10mAは0.010AというふうにAに変換して計算します。
だいたい120Ω〜680Ωのあたりだと思います。
LEDは5mAくらいで使った方が目に優しいでしょう、で470Ω?
また、抵抗はLEDのアノード側とカソード側のどちら側に接続してもOKです。
注意) Arduinoの出力は20mA程しか流せません、これ以上のLED電流を流す場合は
Arduinoの出力をトランジスタで一旦受けてからLEDをつながないといけません。
マイコン出力をトランジスタで一旦受ける場合はこちらを参考にして下さい。
スケッチについて
今回はpinModeは使いませんアナログは指定不要です、
アナログは入出力のピン位置は決まっていて、デジタルの様に入出力を兼用しませんから。
analogRead(pin)
指定したピン(pin:0番ピン)よりアナログ値(抵抗値)を読み込みます。
アナログ入力ピン(0−5番)には0〜5Vの電圧を入力します、
arduinoはこの電圧を0〜1023の範囲に変換して読み取ります。
(これがアナログ・デジタル変換:A/D変換ですね)
analogWrite(pin,value)
指定したピン(pin:3番ピン)からアナログ値を出力します。
value: 出力するアナログ値(0〜255)を指定する。
arduinoは0〜255の範囲をPWM制御(0Vと5Vを高速で入切りする制御)で出力します。
アナログ出力はデジタルピンの3、5、6、9、10,11番ピンから出力可能です
(PWM制御についての詳しい話はこちらのページを参考にして下さい。)
こちらのHPサイト「合同会社パレットソフト」さんのページにLEDとPWM制御について
解りやすく書いて有ります、”LEDの輝度調整”の項を参考にして下さい。
val = val / 3 ;
これは、半固定抵抗からは0〜600で入力されますが、アナログ出力値は0〜255までなので、
3で割って0〜200(0-3.9V位)に変換して出力しています。
配線図置換 2012/03/26
【きむ茶工房ガレージハウス】
Copyright (C) 2006-2011 Shigehiro Kimura All Rights Reserved.