Arduino / / 2022. 4. 5. 11:50

아두이노로 버튼을 사용해보자!

728x90

안녕하세요 데브구일입니다!

 

오늘은 아두이노 버튼을 사용해보려구해요 ! :D

 

차근차근 해보도록하겠습니다 !

 

버튼을 사용할때 전에 포스팅했던 Pull up & Pull down이 활용되기 때문에

 

한번 보고 오시는게 이해하기 좋을 것 같습니다 !

 

 

먼저 준비물 !

 

1. 아두이노 

 

2. LED 

 

3. 저항 

 

4. 브레드 보드 

 

5. 버튼 !

 

버튼은 어떤 버튼이든 상관은 없습니다 :D

 

다만 버튼마다 회로 구조가 조금씩 다를 수 있기때문에

 

그건 잘 알아보시면 될 것 같습니다

 

시작하겠습니다 !

 

먼저 회로도는 이렇게 되어있습니다 !

 

 

여기서 검은색 선은 항상 GND !

빨간색 선은 VCC입니다 !

 

노란색은 LED에 연결되어있구

초록색은 버튼에 연결되어있습니다 :D

 

여기서 버튼에 연결된 저항은 10k옴 저항입니다 !

너무 낮은 저항을 이용하게 되면 풀업 저항이 안될 수 있기때문에 10k옴 이상 사용해주세요 !

 

LED는 330옴을 이용했습니다 :D

 

이렇게 연결 하신뒤에 :D

 

프로그램 소스는 이렇게 작성했습니다 ! 

 

#define LED 8
#define BUTTON_IN 9
 
void setup() {
  pinMode(LED, OUTPUT);
  pinMode(BUTTON_IN, INPUT);
}
 
void loop() {
  if(digitalRead(BUTTON_IN) == HIGH) {
    digitalWrite(LED, HIGH);
  } else {
    digitalWrite(LED, LOW);
  }
}

 

이게 버튼을 인식하기 위한 전체 소스 코드이구요 :D

 

#define LED 8
#define BUTTON_IN 9

 

제가 이번엔 #define이라는걸 사용했는데요 !

#define은 어떤 숫자나 글자를 정의할때 사용합니다 !

 

저 처럼 #define LED 8 이렇게 작성하시면

LED를 8번 핀이라 지정하겠다 ! 라는 식으로 사용이 가능합니다

 

그렇게 되면 pinMode(8, OUTPUT)과 pinMode(LED, OUTPUT) 두개는 같은 명령이 됩니다

두 개 중에 어떤게 더 직관적이신가요 :D ? 

LED라 적혀있는게 누가봐도 LED를 사용하는 것 같지요 ?

 

void setup() {
  pinMode(LED, OUTPUT);
  pinMode(BUTTON_IN, INPUT);
}

 

setup() 입니다 :D 

이번에는 입력을 받기때문에 INPUT이라는 새로운 문구가 등장했어요 !

 

이전에 LED를 켜기위해서 저희가 OUTPUT을 사용했던것 처럼

이번엔 입력을 받기위해서 INPUT을 사용합니다 !

 

void loop() {
  if(digitalRead(BUTTON_IN) == LOW) {
    digitalWrite(LED, HIGH);
  } else {
    digitalWrite(LED, LOW);
  }
}

 

이번엔 loop() 입니다 :D

 

여기서는 if라는 조건문을 사용했습니다 :D

if는 말 그대로 만약에 ! ~이라면인데요 !

if ( x < 1 ) 라면 x가 1보다 작다면 다음 중괄호로 가라 입니다 :D

else는 위에 있는 if 조건에 참이 되는것이 없다면 else에 있는 중괄호로 가게됩니다!

 

이렇게 if라는 조건문 안에 제가 digitalRead()를 사용했는데요 !

digitalRead()는 입력 값을 받는 함수입니다 !

 

digitalRead(BUTTON_IN) 이라 되어있는데 여기서 BUTTON_IN은 9번 핀을 의미합니다 :D

해석해본다면 9번핀에서 digital입력값이 있는지 확인하는 것이지요 :D

여기서 입력값이 있다면 HIGH 없다면 LOW가 나오게 됩니다 !

 

저는 if문을 통해서 BUTTON_IN의 핀에서 LOW가 나오면 LED핀으로 HIGH신호 !

HIGH가 나오면 LOW 신호를 주도록 코딩했습니다 !

 

여기서 문제 ! 

하지만 저는 왜 LOW일때 버튼일 켜게 했을까요 :D ?

정답은 :D (아래를 블록지정이 되게 드래그해주세요)

 

//  Pull up 저항을 사용하고 있기 때문입니다 :D                           //

//  Pull up 저항은 스위치가 눌렸을때 LOW 땠을때  HIGH가 됩니다 !//

//  Pull up & down 저항관련 내용은 이전 포스팅을 참고해주세요 :D//

 
 
이렇게 되면 버튼을 눌렀을때 LED가 켜지고 !
버튼을 누르지않았을때 LED가 꺼질 것 입니다 !
이해가 좀 되셨나요 ? :D

 

버튼 사용에 대해 어느정도 알게 되셨나요 :D ?

도움이 되셨으면 좋겠네요 !!

 

그럼 다음엔 또 다른 포스팅으로 돌아오겠습니당 :D !!

 

 

반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유