티스토리 뷰
// 스위치로 LED ON OFF // 스위치 오동작은 캐패시터로 해결 int ledPin = 12; int switchPin = 7; int swStatus = LOW; int ledStatus = LOW; void setup() { pinMode(ledPin, OUTPUT); pinMode(switchPin, INPUT_PULLUP); digitalWrite(ledPin, LOW); } void loop() { if(digitalRead(switchPin) == LOW && swStatus == LOW) { swStatus = HIGH; }else if(digitalRead(switchPin) == HIGH && swStatus == HIGH) { swStatus = LOW; ledStatus = !ledStatus; } digitalWrite(ledPin, ledStatus); } int ledPin = 12; int switchPin = 7; int swStatus = LOW; int ledStatus = LOW; int ledFlag = LOW; unsigned long prevMillis = 0; // 스위치로 LED ON 2초 점멸, OFF // delay 사용 시 delay 수행 중 digitalRead 정상적으로 수행하지 않는다. -> millis() 사용 void setup() { pinMode(ledPin, OUTPUT); pinMode(switchPin, INPUT_PULLUP); digitalWrite(ledPin, LOW); } void loop() { unsigned long currentMillis = millis(); unsigned long delta = currentMillis - prevMillis; if(digitalRead(switchPin) == LOW && swStatus == LOW) { swStatus = HIGH; }else if(digitalRead(switchPin) == HIGH && swStatus == HIGH) { swStatus = LOW; ledStatus = !ledStatus; } if(ledStatus == HIGH) { if(delta > 500) { digitalWrite(ledPin, ledFlag); prevMillis = millis(); ledFlag = !ledFlag; } }else { digitalWrite(ledPin, LOW); } } // msTimer2 인터럽트 사용 #includeint ledPin = 12; int switchPin = 7; boolean swStatus = LOW; boolean ledStatus = LOW; boolean ledFlag = HIGH; int delayTime = 0; void setup() { pinMode(ledPin, OUTPUT); pinMode(switchPin, INPUT_PULLUP); digitalWrite(ledPin, LOW); MsTimer2::set(1, flash); MsTimer2::start(); } void loop() { if(digitalRead(switchPin) == LOW && swStatus == LOW) { swStatus = HIGH; }else if(digitalRead(switchPin) == HIGH && swStatus == HIGH) { swStatus = LOW; ledStatus = !ledStatus; } if(ledStatus == HIGH) { if(delayTime > 500) { delayTime = 0; digitalWrite(ledPin, ledFlag); ledFlag = !ledFlag; } }else { digitalWrite(ledPin, LOW); } } void flash() { delayTime++; }
'IT > Arduino' 카테고리의 다른 글
아두이노 교육2일차 FND(Flexible Numeric Display) 제어 (0) | 2014.08.16 |
---|---|
아두이노 교육2일차 외부인터럽트 (0) | 2014.08.16 |
아두이노 교육1일차 LED 좌에서 우로 우에서 좌로 점멸 (0) | 2014.08.09 |
라즈베리파이 (0) | 2014.07.21 |
아두이노 (0) | 2014.07.21 |
댓글