티스토리 뷰
에어컨을 제어하고 싶어서 아두이노 우노를 구입 했습니다.
집에 인텔 갈릴레오가 있긴했는데 저항, LED 등 기본 실습에 필요한 부품들을 구입해야했기에
스타터팩을 구입했는데 아두이노 우노를 포함한 제품들 밖에 없길래 구입하게 되었습니다.
고등학교때 ATmega 칩셋을 실습하는 과목이 있었는데 그 이후로 한번도 해본적이 없어서 걱정했었는데
인터넷에서 부품들별로 참고자료가 많아서 쉽게 시작할 수 있었습니다.
일단 구입해서 기초적인 사용법은 익혔고..
이제 실질적으로 에어컨 제어를 위한 첫걸음인 IR에 관한 이해를 위해 리모컨의 값을 아두이노에서 받아보기로 했습니다.
스타터팩을 구입하니 1838B라는 적외선 수신기가 들어있었습니다.
출처 : https://stak.com/Infrared_Remote_Control_module_Kit_HX1838_NEC_Code_VS1838B_Receiver
출처 : http://forum.hobbycomponents.com/viewtopic.php?f=6&t=1619
이렇게 생긴 수신기 입니다.
작동을 위해서는 브레드 보드에 연결해야하니 각 핀이 어떤 역할을 하는지 알아야하는데요.
위 그림을 보시면 SIGNAL(OUT), GND, VCC라고 설명이 다 되어 있습니다. 그대로 연결하면 됩니다.
그럼 소스코드로 넘어가서 아두이노 프로그램을 개발할때 우리같은 초보들이 모든것 하나하나 만들어서 개발하는건
불가능에 가깝기에 오픈소스 코드를 활용해서 쉽게 만들 수 있습니다.
IR관련 프로그램을 작성하기 위해서는 IRremote.h라는 헤더가 필요한데요.
https://github.com/z3t0/Arduino-IRremote 여기서 받을 수 있습니다.
스케치를 실행해서 다운받은 IRremote 라이브러리를 추가하고 아래 코드를 실행해보세요.
/*
* 리모컨 값를 읽기 위한 간단한 프로그램 입니다.
* IRremote.h를 이용합니다. (https://github.com/z3t0/Arduino-IRremote)
* date : 2016. 07. 11
* create : TAESEONG KWON (http://blog.taeseong.me/)
*/
#include <IRremote.h>
int RECV_PIN = 8; //IR Receiver로 수신한 값을 8번 핀으로 받습니다.
IRrecv irrecv(RECV_PIN); //IR Receiver를 선언합니다.
decode_results results; //수신결과가 저장됩니다.
void setup() {
Serial.begin(9600);
irrecv.enableIRIn(); //IR Receiver enable
}
void loop() {
if(irrecv.decode(&results)){ //입력받은 값이 있으면
Serial.println(results.value, HEX); //콘솔에 출력 합니다.
irrecv.resume(); //다음 값을 받기위해 resume
}
}
주석을 다 적어놔서 코드에 대한 설명은 따로 하지 않겠습니다.
위 프로그램을 아두이노에 업로드하면 적외선 리모컨으로부터 받은 값을 아두이노가 콘솔로 출력해줍니다.
(콘솔은 스케치에서 돋보기 아이콘을 누르면 됩니다.)
리모컨으로부터 받은 값을 콘솔에서 확인 하셨나요??
그럼 위 프로그램을 응용해서 리모컨으로 특정값을 입력받으면 LED를 점등한다거나 하는 프로그램을 만들수도 있습니다.
LED 점등은 유튜브에 초보강좌에서 대부분 다루는 내용이므로 참고하시면 될 것 같네요.
- Total
- Today
- Yesterday
- Object C
- oracle
- 아이폰 개발
- iOS 개발
- JavaScript
- Java
- zero
- 오블완
- IT
- Objective-C
- 자바스크립트
- Programming
- MAC OSX 10.7
- jQuery
- tomcat
- Objective C
- 제이쿼리
- iBATIS
- Spring
- iPhone
- SQL
- MySQL
- Spring Framework
- JSP
- 아이폰
- 아이폰 어플리케이션
- 티스토리챌린지
- 오브젝트 C
- 오브젝티브 C
- 자바
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |