Title
조회 수 334 추천 수 0 댓글 0
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부
?

단축키

Prev이전 문서

Next다음 문서

크게 작게 위로 아래로 댓글로 가기 인쇄 첨부

본 게시물에서는 푸시 버튼을 이용하여 LED를 켜고 끄는 방법에 대해 살펴보도록 하겠습니다.

 

목적


  • 아두이노를 Uno 와 아두이노 상의 LED를 레지스터를 이용하여 제어할 수 있다.
  • 아두이노로 LED의 밝기를 조절할수있다. 
  • 레지스터를 이용하는 방법을 알수있다.
  • 프로그래밍을 배울수있다.

준비물


 ArduinoUno_r2_front450px-300x210.jpg Arduino Uno R2

 

400 빵판.jpg 브레드 보드 400

저항 220옴.jpg  저항

레드 엘이디.png LED 

푸시.jpg푸시버튼

 

 

Moniter


 

1.jpg

맨위에 있는 푸쉬 버튼을 누르면 LED가 켜지고 다른 버튼을 누르면 LED가 꺼지게 될 것입니다.

 

Fritzing


스위치 버튼의 핀은 스위치 반대편에 위치하여 있습니다.

 

2.jpg

LED를 연결할 때는 극성을 주의하여 연결하십시오. 짧은 쪽이 음극이며 오른쪽에 위치 시켜야 합니다.

 

Code


아래의 스케치를 아두이노에 로드시키고 맨 위에 위치한 푸쉬버튼을 눌러보십시오. LED가 켜지는것을 확인한 후 다른 버튼을 눌러 LED를 끄십시오.

  1. int ledPin = 5;
  2. int buttonApin = 9;
  3. int buttonBpin = 8;
  4.  
  5. byte leds = 0;
  6.  
  7. void setup()
  8. {
  9. pinMode(ledPin, OUTPUT);
  10. pinMode(buttonApin, INPUT_PULLUP);
  11. pinMode(buttonBpin, INPUT_PULLUP);
  12. }
  13.  
  14. void loop()
  15. {
  16. if (digitalRead(buttonApin) == LOW)
  17. {
  18. digitalWrite(ledPin, HIGH);
  19. }
  20. if (digitalRead(buttonBpin) == LOW)
  21. {
  22. digitalWrite(ledPin, LOW);
  23. }
  24. }
  25.  

코드의 첫부분에서는 세개의 핀을 위한 변수를 정의하였습니다. ledPin은 출력 핀이며 buttonApin은 제일 위에 있는 버튼, buttonBpin은 다른 스위치를 의미합니다.

setup함수에서 ledPin을 디지털 출력모드로 설정하였습니다. buttonApin, buttonBpin은 입력으로 설정되었는데 INPUT_PULLUP이 파라메터로 쓰였습니다.

  1. pinMode(buttonApin, INPUT_PULLUP);
  2. pinMode(buttonBpin, INPUT_PULLUP);
  3.  

INPUT_PULLUP 핀모드는 핀이 입력으로 사용될 것이지만 아무것도 연결되지 않았다면 HIGH 상태로 pullup 시켜두라는 것을 의미합니다. 다시 말하면 입력핀의 기본 상태는 HIGH입니다. 그리고 버튼을 눌르면 상태는 LOW가 되어야 합니다.

그래서 스위치들이 GND에 연결되어 있습니다. 스위치가 눌리면 스위치는 입력핀을 그라운드와 연결시키게 되고 입력핀은 더이상 HIGH상태가 될수 없게 됩니다.

입력은 보통 HIGH이고 버튼이 눌리면 LOW로 되는 로직을 loop 함수에서 처리합니다.

  1. void loop()
  2. {
  3. if (digitalRead(buttonApin) == LOW)
  4. {
  5. digitalWrite(ledPin, HIGH);
  6. }
  7. if (digitalRead(buttonBpin) == LOW)

{

  1. digitalWrite(ledPin, LOW);
  2. }
  3. }
  4.  

루프 함수 안에는 두개의 if문이 있고 각각 버튼 두개의 상태를 검사합니다.

버튼이 눌린다면 눌린쪽에 연결된 입력핀은 LOW가 되므로 버튼A가 눌려 LOW상태가 된다면 digitalWrite 함수가 ledpin을 HIGH로 만들어 LED를 켜게 됩니다.

비슷하게 버튼 B가 눌린다면 LED를 끄게 됩니다.

 

푸쉬 스위치란


스위치는 간단한 부품으로 버튼을 누르면 두개의 접촉부분을 연결시켜 전기를 흐르게 만드는 부품입니다.

여기서 사용되는 택틀 스위치는 4개의 다리를 가지고 있어 무엇이 무엇인지 약간 헷갈립니다.

3.png

 

실제로 버튼에는 두개의 전기적 연결만이 있습니다. 스위치 케이스 안에는 핀B와 핀C가 서로 연결되어 있고 핀A와 핀D가 서로 연결되어 있습니다.


List of Articles
번호 분류 제목 글쓴이 날짜 조회 수
14 아두이노 강좌 [아두이노 강좌] 13. 아두이노를 사용하여 DC모터 제어하기 file 귀욤둥이 2017.03.01 520
13 아두이노 강좌 [아두이노 강좌] 12. LCD에 온도 및 조도 표시하기 file 귀욤둥이 2017.02.24 519
12 아두이노 강좌 [아두이노 강좌] 11. LCD 디스플레이 연결하기 file 귀욤둥이 2017.02.24 661
11 아두이노 강좌 [아두이노 강좌] 10. 소리 만들어 음악 연주하기 file 귀욤둥이 2017.02.24 594
10 아두이노 강좌 [아두이노 강좌] 09. 광센서로 조도 측정하기 file 귀욤둥이 2017.02.24 231
9 아두이노 강좌 [아두이노 강좌] 08. 가변저항을 이용하여 아날로그 입력으로 LED 밝기 조절하기 file 귀욤둥이 2017.02.24 624
8 아두이노 강좌 [아두이노 강좌] 07. 버튼을 이용하여 RGB LED 색상 제어하기 file 귀욤둥이 2017.02.23 729
» 아두이노 강좌 [아두이노 강좌] 06. 푸쉬버튼을 이용한 디지털 입력하기 file 귀욤둥이 2017.02.23 334
6 아두이노 강좌 [아두이노 강좌] 05. PC상에서 Serial Monitor로 LED 제어하기 file 귀욤둥이 2017.02.23 249
5 아두이노 강좌 [아두이노 강좌] 04. 쉬프트 레지스터를 이용한 LED제어 file 귀욤둥이 2017.02.21 289
4 아두이노 강좌 [아두이노 강좌] 03. RGB LED 색깔 변경하기 file 귀욤둥이 2017.02.21 164
3 아두이노 강좌 [아두이노 강좌] 02. LED 밝기 변경하기 file 귀욤둥이 2017.02.21 144
2 아두이노 강좌 [아두이노 강좌] 01. LED 깜빡이기 file 귀욤둥이 2017.02.20 113
1 아두이노 강좌 아두이노란 무엇 일까요??? file 귀욤둥이 2017.02.20 76
Board Pagination Prev 1 Next
/ 1