2007年06月04日
Arduino
スイッチで入力をする
スイッチを押すと、LEDが点灯するものを作る。
必要なの物
・arduino
・ブレッドボード
・LED
・ブレットボード用ジャンプワイヤー(自作でもよい)
・スイッチ(今回はタクトスイッチにした)
・抵抗(数百Ωから数kΩ程度。今回は、220Ω)
写真のように回路を作る。
回路について
LEDは、前回と同じようにポートの13にさす。
スイッチを押すと、ポート2がHIGHになるように設定。
ポート2とスイッチと5Vをつなげば、いいように思うが、
スイッチを押していないときは、HIGHかLOWどちの状態になるかわからなくなる。
そこで、Gndにつないだ抵抗を、スイッチとつなげることで、
プルダウンさせて、押していないときは、LOWになるようにする。
int ledPin = 13; // ledピン
int inPutPin = 2; // スイッチ
void setup() {
pinMode(ledPin, OUTPUT); // 出力に設定
pinMode(inPutPin, INPUT); // 入力に設定
}
void loop(){
int val = digitalRead(inPutPin); // ボタンの状態
if (val == HIGH) { // ボタンを押したとき
digitalWrite(ledPin, HIGH); // LEDが点灯する
} else {
digitalWrite(ledPin, LOW);
}
}
arduinoのソースについて
はじめに、変数の定義を行います。
ここでは、ピンの設定をしています。
int ledPin = 13; // ledピン int inPutPin = 2; // スイッチ
setup()の中では、基盤の初期設定をします。
ここでは、ポートの出力の設定をしています。
void setup() {
pinMode(ledPin, OUTPUT); // 出力に設定
pinMode(inPutPin, INPUT); // 入力に設定
}
loop()の中では、基盤の動作処理を書きます。
digitalRead(ポート番号)で、ボタンの状態を読み込んだ後、
if文でボタンの状態をdigitalWriteコマンドで、LEDに反映させています。
void loop(){
int val = digitalRead(inPutPin); // ボタンの状態
if (val == HIGH) { // ボタンを押したとき
digitalWrite(ledPin, HIGH); // LEDが点灯する
} else {
digitalWrite(ledPin, LOW);
}
}