手動でオン/オフするスイッチは、ディジタル回路の基本的な入力デバイスになります。ここではスイッチの値を読み込み、その値でLEDの点滅時間を変更する表示する方法を紹介します。
pinMode(ピン番号,INPUT); //ピン番号は 2-15指定したピン番号の出力端子の値(状態)を設定するには次の命令を利用します。int din ; は読み込んだ値を記憶する「変数の名前」を定義します。 digitalRead(ピン番号) で ピン番号 の状態を読み込み、その値(HIGH または LOW)を 変数 din に記録します。
int din ; din = digitalRead(ピン番号);
比較と論理演算の例 ( x >= 3 ) && (x <= 5)& や | は整数の各ビットの 1、0 を TRUE、FALSE の論理値と考え、各ビットごとに 論理積、論理和を計算します。
int x=6;int y=3; int w = x & y; int v= x | y;x=0110、 y= 0011 ですから w=0111、 v=0010 となります。
if(<条件>) 命令1 ; else 命令2は、<条件>が満たされたとき、続く 命令1 を実行し、満たされない場合は 命令2 を実行します。
if(din == LOW) delay(1000); // スイッチはオンなら1秒 else delay(200); //オフなら0.2秒 待つスイッチを利用した点滅プログラムは以下のようになります。led 端子を8番に変更しました。
//swの状態で異なる点滅 int led = 8; int sw = 10; int din; // 初期設定 void setup() { // 端子のモード設定 pinMode(led, OUTPUT); pinMode(sw,INPUT); } // 繰り返し実行 void loop() { digitalWrite(led, HIGH); // LED点灯 din = digitalRead(sw); if(din == LOW) delay(1000); // スイッチはオンなら1秒 else delay(200); //オフなら0.2秒 待つ digitalWrite(led, LOW); // LEDwp消す delay(1000); // 1秒待つ }UNO のボードをUSBで接続し、プログラムを入力後 UNO ボードに送りこみます。スイッチを切り替えて、点滅の周期が変化すれば成功です。