手動でオン/オフするスイッチは、ディジタル回路の基本的な入力デバイスになります。ここではスイッチの値を読み込み、その値で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 ボードに送りこみます。スイッチを切り替えて、点滅の周期が変化すれば成功です。
