티스토리 뷰
// 스위치로 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 인터럽트 사용
#include
int 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 |
댓글