Arduino Uno 3作目 255段階の調光LEDライト

v03_AnalogBrightnessLoopBtnState.ino


int LED = 9;
int BUTTON = 7;
int val=0;
int old_val=0;
int state=0;

int brightness=128;        //明るさ
unsigned long startTime=0; //いつ初めたか?
int i=0;

void setup(){
  pinMode(LED,OUTPUT);   //LEDが出力である
  pinMode(BUTTON,INPUT); //BUTTONが入力である 
}

void loop() {
  val = digitalRead(BUTTON);
  //変化があるか?
  if((val==HIGH)&&(old_val==LOW)){
      state=1-state;
      startTime=millis();
      delay(10);
      
  }
  //ボタンが押し続けられているか?
  if((val==HIGH)&&(old_val==HIGH)){
    //500ms以上押されているか?
    if(state==1 && (millis()-startTime)>500){
      brightness++;
      delay(10);
      if(brightness > 255){
        brightness=0;
      }
    }
  }
  
  old_val=val;
  
  if(state==1){
      analogWrite(LED, brightness);
  }else{
    analogWrite(LED, 0);
  }
}

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です