タクトスイッチを使って3個のLEDをコントロールするスケッチ

ATmega328P-PU を使って入力ピンと出力ピンの学習

今回は、4番ピン(digital pin2) を入力信号で使います。

出力ピンは、17番ピン(digital pin11) 、18番ピン(digital pin12)、19番ピン(digital pin13) を設定します。

この入力ピン番号と出力ピン番号は、スケッチ内のピン番号を変更することで異なるピンに設定する事が出来ます。

また、タクトスイッチを押した時に、出力される信号も同様にスケッチ内の内容を変更することで異なる作動を設定する事が出来ます。

今回は、タクトスイッチを押すと1番のLEDが点灯します、もう一度押すと2番のLEDが点灯します。

次に3番のLEDが点灯します。

また、タクトスイッチを押し続けると この作動が連続して行われます。

配線方法と用意する部品は、前回のブログに記載しています。

ATmega328P-PU と ブレッドボードを使って タクトスイッチに連動した出力信号を出す実験 1 初めて Arduino UNO...

ブレッドボードと ATmega328P-PU を使ってタクトスイッチに連動させて複数のLEDを点滅させます。

スケッチ例は下記に記載しておきます。

信号の出力が確認で来たら、ユニバーサル基盤と半田を使って単品 製作してください。

スケッチ例 4:(下記のスケッチをカットアンドペーストして下さい。)

int ledPin1 = 13;
int ledPin2 = 12;
int ledPin3 = 11;
int inPin = 2;
int val = -1.5; // variable to store the read value

int index = -1; // to indicate which led should be turned on

// the setup function runs once when you press reset or power the board
void setup() {
// initialize digital pin 13 as an output.
pinMode(ledPin1, OUTPUT);
pinMode(ledPin2, OUTPUT);
pinMode(ledPin3, OUTPUT);
pinMode(inPin, INPUT);
}// the loop function runs over and over again forever
void loop() {
val = digitalRead(inPin);
if(val == 1){ // the button is pushed
// turn off the LED which is on now
if(index != -1){ // if index is not the initial value
switch (index){
case 0:
digitalWrite(ledPin1, LOW); // turn the LED off (LOW is the voltage level)
delay(500);
break;
case 1:
digitalWrite(ledPin2, LOW);
delay(500);
break;
case 2:
digitalWrite(ledPin3, LOW);
delay(500);
break;
}
}

// turn on the next LED
index ++;
index = index % 3;
switch (index){
case 0:
digitalWrite(ledPin1, HIGH); // turn the LED on (HIGH is the voltage level)
delay(200);
break;
case 1:
digitalWrite(ledPin2, HIGH);
delay(200);
break;
case 2:
digitalWrite(ledPin3, HIGH);
delay(200);
break;
}
}
}

—————————————————-

注意:

1.ATmega328P-PU には、内部抵抗が設定されていますが、タクトスイッチを接続する際には10KΩの外部抵抗を追加する事をお勧めします。

2.LEDを接続する場合は、必ず 333Ωの抵抗器を追加してください。

スポンサーリンク

シェアする

  • このエントリーをはてなブックマークに追加

フォローする