【Arduino】タクトスイッチでLED輝度を変更
こんな回路。
LEDはアナログ入力ピンで繋がってる。
こんな状態にする。
【ソースコード led_change.ino】
#define STATUS_ELEMENT ( 3 ) void setup() { pinMode( 1, INPUT ); pinMode( 9, OUTPUT ); pinMode( 10, OUTPUT ); pinMode( 11, OUTPUT ); } void loop() { int switch_status = 0; // スイッチの状態 int i = 0; int j = 0; int analog_value = 0; // LED輝度値 for ( ;; ) { delay( 400 ); // チャタリング防止 if ( digitalRead( 1 ) == LOW ) { switch_status++; if ( switch_status > STATUS_ELEMENT ) { switch_status = 0; } // スイッチがONになるまで待機 while ( digitalRead( 1 ) == LOW ) { ; } } switch ( switch_status ) { case 0: // 状態1 analog_value = 0; break; case 1: // 状態2 analog_value = 50; break; case 2: // 状態3 analog_value = 100; break; case 3: // 状態4 analog_value = 150; break; default: analog_value = 0; break; } // 9番ピンから11番ピンに指定した電圧を入力 for ( j = 9; j <= 11; j++ ) { analogWrite( j, analog_value ); } } }