마법사 kjs의 활동기록지
search
대마법사kjs
Arduino에 관련된 글과 게임 공략에 관한 내용이 담깁니다.
Today
Yesterday
이전 시간에서 언급했던 플로팅 현상에 대해서, 다른 방법으로 파훼하는 방법을 진행해보도록 합니다.
이번 시간에는 아두이노의 내부 풀업 저항을 사용하여 이전 시간보다 더욱 간단한 회로도를 구성해보도록 합니다.
소스코드는 아래와 같습니다.
void setup() {
pinMode(3, INPUT_PULLUP); // 3번 핀은 스위치와 연결됩니다. 내부 풀업저항을 사용합니다.
pinMode(4, OUTPUT); // 4번핀은 LED와 연결되어있습니다.
}
void loop() {
int Switch = digitalRead(3); // digitalRead로 읽은 3번핀의 정보를 1과 0으로만 표현하도록 합니다.
if (Switch = HIGH) { // 스위치가 HIGH. 1이라는 값을 나타내게되면, LED가 HIGH 가 됩니다.
digitalWrite(4, HIGH);
}
else { // 스위치가 HIGH가 아니라면, LED는 LOW가 됩니다.
digitalWrite(4, LOW);
}
}
소스코드는 이렇게 쓰니깐 훨씬 이쁘네요... 이전 글 까지는 이런 기능 있는줄도 몰랐습니다.
결과는 아래 동영상으로 확인 가능합니다.
PULL UP 저항을 연결을 하게되면, 평상시 1인 상태입니다.
스위치를 누를 경우 0인 상태이기때문에, 영상과 같이 평상시는 LED가 HIGH 상태가 되어있는것을 확인할 수 있습니다.
반대로 PULL DOWN 저항을 연결하게 되면 누를경우 1, 누르지 않았을 경우 0이 출력이 됩니다.
그렇다면, PULL UP 저항을 사용하는 상태에서는! 어떻게 해야 스위치를 누를때만 LED가 켜질까요?
해답은 바로... HIGH와 LOW의 자리를 서로 바꿔주는것!
if (Switch == HIGH) {
digitalWrite(4, HIGH);
}
else {
digitalWrite(4, LOW);
}
코드에서, 스위치가 평상시에 HIGH 상태이기때문에, 스위치를 누르지 않았을때는 LED를 LOW 상태로 자리를 바꿔주기만 하면 됩니다.
아래 코드를 참고하세요.
void setup() {
pinMode(3, INPUT_PULLUP); // 3번 핀은 스위치와 연결됩니다. 내부 풀업저항을 사용합니다.
pinMode(4, OUTPUT); // 4번핀은 LED와 연결되어있습니다.
}
void loop() {
int Switch = digitalRead(3); // digitalRead로 읽은 3번핀의 정보를 1과 0으로만 표현하도록 합니다.
if (Switch = HIGH) { // 스위치가 HIGH. 1이라는 값을 나타내게되면, LED가 LOW 가 됩니다.
digitalWrite(4, LOW);
}
else { // 스위치가 HIGH가 아니라면, LED는 HIGH가 됩니다.
digitalWrite(4, HIGH);
}
}
이상, 오늘은 내부 풀업저항에 대해 알아보았습니다.
다음 시간에는, 스위치 2개를 이용하여 LED를 ON/OFF 제어 하는것에 대해 알아보도록 하겠습니다.
필요한 자료가 있으시면, 댓글로 남겨주시면 준비하도록 하겠습니다!
도움이 되셨다면 구독&공감 눌러주시면 힘이 나요!
07. 아두이노 서보모터 SG90 제어. Arduino Servo SG90 Control Example (0) | 2022.05.13 |
---|---|
06. 아두이노 LED를 조도센서로 ON/OFF 제어 해보기. Arduino LED, CDS (0) | 2022.05.12 |
05. 아두이노 스위치 2개로 LED ON OFF 제어 해보기 (0) | 2022.05.04 |
03. 아두이노 LED를 스위치를 이용해서 ON, OFF 해보자! (0) | 2022.05.03 |
02. 아두이노 LED를 연결해보자. (0) | 2022.05.02 |