본문 바로가기
코딩/아두이노

[아두이노 강좌] 예제로 배우는 아두이노 #6 , 스위치 버튼으로 led 제어하기

by DIYver 2020. 3. 25.

<목표>

 

 

- 아두이노에서 스위치 상태digitalRead() 함수를 통해 읽은 후, LEDdigitalWrite() 함수를 통해 제어한다.


<준비물>

 

 

- 아두이노(나노, 우노, 메가), 시리얼 통신 케이블, 브레드보드, led, 저항 1~2개, 버튼(택트스위치)

아두이노 우노 / 시리얼 통신 케이블(USB-B타입) / 브레드보드 / LED / 저항 / 택트 스위치 

 

 


<회로도>

 

 

led에 원래 저항을 연결해주는것이 원칙이지만, 백색 led를 사용하는 경우에는 위와같이 간단하게 테스트해 볼 수 있다.

또한 스위치에 연결되어 있는 저항은 아무 저항이나 사용하면 된다.


<코드>

 

 

const int buttonPin = 2;     // the number of the pushbutton pin
const int ledPin =  13;      // the number of the LED pin

// variables will change:
int buttonState = 0;         // variable for reading the pushbutton status

void setup() {
  // initialize the LED pin as an output:
  pinMode(ledPin, OUTPUT);
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // read the state of the pushbutton value:
  buttonState = digitalRead(buttonPin);

  // check if the pushbutton is pressed. If it is, the buttonState is HIGH:
  if (buttonState == HIGH) {
    // turn LED on:
    digitalWrite(ledPin, HIGH);
  } else {
    // turn LED off:
    digitalWrite(ledPin, LOW);
  }
}

코드는 아두이노 - 파일 - 예제 - 02.Digital - Button  의 예제 파일과 동일 합니다.

예제파일을 쓰셔도 되고, 위의 코드를 복사하여 붙여넣으셔도 됩니다.


<실행 결과>

 

 

버튼이 눌려지면 LED가 켜지는 것을 확인할 수 있었다.

버튼이 눌리면 신호가 HIGH 로 받아들여지게 되고, 조건문을 통해서 신호가 HIGH일 때, LED핀에 5V 출력을 발생시킨다.

 

아두이노 코드 중 새로운 함수가 없고, 코드 내용 역시 앞에서 했던 것들을 참고하면 문제없을 수준이어서 코드 설명은 생략하도록 한다.

 

위와 같은 버튼을 읽는 방법으로 여러개의 센서들을 제어할 수 있다.

여태까지 강의를 따라왔다면 스위치에 저항을 같이 구성하는 pull-down 저항에 귀찮거나 번거로움을 많이 느꼈을 것이라 본다.

다음 강의에는 pull-up 저항을 이용해서 저항없이 깔끔하게 버튼의 상태를 읽을 수 있는 예제를 소개하고자 한다.

실전에서도 pull-down 회로보다는 pull-up 회로를 많이 이용한다는 측면에서 매우 유익한 내용이다.

 


※ 궁금하시거나 질문사항이 있으시면 댓글로 작성해주시면 답변해 드릴 수 있는 부분에서 친절히 답변드리겠습니다!

 

 

 

 

댓글