아두이노 예제 따라 해보는중…

아두이노 예제 따라하는모습

아두이노 강좌 검색해보고 그 중에 코딩런에서 나온게 보기 좋게 잘 만들어져 있길래 하나 하나 해보는중입니다.

LED 두개까지 연결할 필요는 없어 보여서 그냥 하나 연결하고 예제는 스위치 누루고 있어야지만 불이 켜지는데 전등 스위치 처럼 누를때 마다 켜지고 꺼지게 소스를 살짝 고쳐봅니다.

int sw1 = 12;
int led1 = 10;
bool ledOn = false;
bool buttonDown = false;
 
void setup() {
  Serial.begin(115200);
  pinMode(led1, OUTPUT);
  pinMode(sw1, INPUT_PULLUP);
}
 
void loop() {
  delay(100);
  if(digitalRead(sw1) == LOW) {//스위치 down
    if(buttonDown == false){
      buttonDown = true;
      if(ledOn == false){
        ledOn = true;
        Serial.println("켜짐");
      } else {
        ledOn = false;
        Serial.println("꺼짐");
      }
    }

  }else { //switch up
    if (buttonDown == true) 
      buttonDown = false;
  }

  if(ledOn) {
    digitalWrite(led1, HIGH); //led On
  } else {
    digitalWrite(led1, LOW);  //led Off
  }
}

시리얼은 디버깅 할때 쓸려고 넣어둔겁니다.

버튼 누를때 LED On/OFF를 결정하게 했는데 살짝 수정해서 버튼이 눌렸다 떨어질때 처리하는게 더 낫습니다. 버튼이 눌린 상태에서 흔들리면 접점 문제인지 가끔 순간적으로 떨어졌다 다시 붙는 증상이 발생하더군요.

뭐 암튼 GPS 트래커 하나 완성될때 까지 아두이노 가지고 놀아봐야겠습니다.


Comments

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다