Day2 06_Debounce
              
          2024. 1. 18. 19:57ㆍarduino
- 디바운스를 이용해 버튼 누를때 생기는 노이즈의 영향을 받지않아 안정적이게 led 컨트롤 가능
 
const int buttonPin = 2;    
const int ledPin = 3;      
int ledState = LOW;        
int buttonState= HIGH;            
int lastButtonState = HIGH;  
unsigned long lastDebounceTime = 0; 
unsigned long debounceDelay = 50;   
void setup() {
  pinMode(buttonPin, INPUT_PULLUP);
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin, ledState);
}
void loop() {
  int reading = digitalRead(buttonPin);
  if (reading != lastButtonState) {
    lastDebounceTime = millis();
  }
  if ((millis() - lastDebounceTime) > debounceDelay) {
    if (reading != buttonState) {
      buttonState = reading;
      if (buttonState == LOW) {
        ledState = !ledState;
      }
    }
  }
  digitalWrite(ledPin, ledState);
  lastButtonState = reading;
}
'arduino' 카테고리의 다른 글
| Day4 01-debounce (0) | 2024.02.04 | 
|---|---|
| Day3 01-dht11 (0) | 2024.02.04 | 
| Day2 05_IR (0) | 2024.01.18 | 
| Day2 04_sonic (0) | 2024.01.18 | 
| Day2 03_sensor_led (0) | 2024.01.18 |