본문 바로가기

Embedded/Arduino

Arduino - Button(v0714)

int ledArr[] = {11,10,9}; // 사용하는 LED번호
int delayTime = 200;      // 깜빡임시간 지정(1초 =1000)

int flag = 0;
int ledCount=0;
int buttonPin=2;
int ledsize = sizeof(ledArr)/ sizeof(int);
void setup()
{
  for(int i=0; i<ledsize; i++)
  	pinMode(ledArr[i], OUTPUT);

  pinMode(buttonPin, INPUT);
  Serial.begin(9600);
}

 
void Led_blink()
{
  for(int i=0; i<ledsize; i++){
    digitalWrite(ledArr[i], HIGH);
  }
  delay(delayTime);
  for(int i=0; i<ledsize; i++){
    digitalWrite(ledArr[i], LOW);
  }
  delay(delayTime);
}

void Led_up2dn()
{
  for(int i=0; i<ledsize; i++){
   digitalWrite(ledArr[i], HIGH);
   delay(delayTime);
   digitalWrite(ledArr[i], LOW);
   delay(delayTime);
  }
}

void Led_dn2up()
{
  for(int i=ledsize-1; i>=0; i--){
   digitalWrite(ledArr[i], HIGH);
   delay(delayTime);
   digitalWrite(ledArr[i], LOW);
   delay(delayTime);
  }
}

void Led_weighted_up2dn()
{
  for(int i=0; i<ledsize; i++){
    digitalWrite(ledArr[i], HIGH);
    delay(delayTime);
  }
  for(int i=0; i<ledsize; i++){
    digitalWrite(ledArr[i], LOW);
  }
  delay(delayTime);
}

void Led_weighted_dn2up()
{
  for(int i=ledsize; i>=0; i--){
    digitalWrite(ledArr[i], HIGH);
    delay(delayTime);
  }
  for(int i=0; i<ledsize; i++){
    digitalWrite(ledArr[i], LOW);
  }
  delay(delayTime);
}

void printValues()
{
  Serial.print("flag : "); 
  Serial.print(flag); 
  Serial.print("  ledCount : "); 
  Serial.println(ledCount); 
 
}

void LED_ON(int led_state)
{
   switch(led_state){
     case 0:
        Led_blink();
        break;
     case 1:
        Led_up2dn();
        break;
     case 2:
        Led_dn2up();
        break;
     case 3:
        Led_weighted_up2dn();
        break;
     case 4:
        Led_weighted_dn2up();
        break;
   }
}
 
void loop()
{
  int inputValue = digitalRead(buttonPin);
  printValues();
  if (inputValue == HIGH) {           
    if (flag == 0){                    
      flag = 1;
      ledCount = ledCount % 5;
      LED_ON(ledCount);
      printValues();
      ledCount++;
    }
  }
  else {                            
    if (flag == 1) {
      flag = 0;           
      printValues();
    }
  }
  delay(100);                         
}

'Embedded > Arduino' 카테고리의 다른 글

LilyPad - Buzzer Test  (0) 2021.07.15
Arduino - PWM(v0714)  (0) 2021.07.14
Arduino - Blink(v0714)  (0) 2021.07.14
Arduino - PIR 센서  (0) 2021.07.14
Arduino - Buzzer  (0) 2021.07.13