ArduinoでLEDをフェードインアウト。

こんにちは。ヤマヤタケシです。
Arduinoやってます。
予想以上に簡単にLEDが光ってくれるので楽しいです。
さて今回は、LEDのON,OFFのスイッチイングとフェードイン・アウトです。

スイッチとフェード


知識を組み合わせるって素晴らしいですね。
なんか、作ってる感があります。
ハンダ付けをやろうと思っていたのに、今のところ全くなしです。
ブレッドボードって良いですね!

今回のソースは今までのサンプルで得た知識でもって、考えて書きました。
それなりにオリジナリティがあるので公開します。

//LEDがフェードインとフェードアウトする
// Fade in out もする。
// 2013/02/15 yamaya takeshi
// license 好きに使ってください。


const int LED = 9;
const int BUTTON = 1;
int in = 0 ;
int old = 0;
int out = 0;
int state = 0;

void setup()
{
  pinMode( LED, OUTPUT );
  pinMode( BUTTON, INPUT );
}


void loop()
{
  in = digitalRead( BUTTON );
  if( in == 1 && old == 0 ){
    if( state == 0 ){
       state = 1 ;
    }
    else {
      state = 0;
    } 
    delay( 10 );
  }
  old = in;
  
  if( state == 1 ){
    out = out + 1;
    if( 255 < out ){
     state = 2;
     out = 255;
    } 
  }
  if( state == 2 ){
    out = out - 1;
    if( out < 0 ){
      out = 0;
      state = 1;
    }
  }
  if( state == 0 ){
    out = 0;
  }

 analogWrite( LED, out);
 delay( 5 );
}

そんじゃまた。

コメントを残す

メールアドレスが公開されることはありません。