-
7Segment와 적외선 센서를 연결해서 리모컨으로 제어하기Arduino/7 Segment 2020. 10. 31. 20:36
구현할 내용은 리모컨의 0~9번 키패드를 누르면 그 눌린 키패드를 7Segment에 출력되도록 만드는 것이다.
적외선 센서에 대한 내용은 아래에서 참고하자.
구현에 필요한 내용또한 같이 들고 온다.
designatedroom87.tistory.com/261?category=899934
아래의 그림은 적외선 센서를 연결한 그림이다.
센서의 핀은 아두이노의 11번핀에 연결된다. 나머지는 VCC와 GND이다.
그리고 7Segment에 대한 하드웨어 연결과 구현은 아래에서 가지고 온다.
designatedroom87.tistory.com/267?category=900171
소스 코드
더보기#include <IRremote.h> // 시림얼 모니터에서 'line ending 없음'으로 선택한다. // 행의 수는 우리가 표현할 십진수의 개수이며, // 열의 수는 십진수에 따른 수 표기에 필요한 세븐세그먼트핀의 수 bool num[10][8] = { {1,1,1,1,1,1,0,0}, // 숫자0 {0,1,1,0,0,0,0,0}, // 숫자1 {1,1,0,1,1,0,1,0}, // 숫자2 {1,1,1,1,0,0,1,0}, // 숫자3 {0,1,1,0,0,1,1,0}, // 숫자4 {1,0,1,1,0,1,1,0}, // 숫자5 {1,0,1,1,1,1,1,0}, // 숫자6 {1,1,1,0,0,0,0,0}, // 숫자7 {1,1,1,1,1,1,1,0}, // 숫자8 {1,1,1,1,0,1,1,0} // 숫자9 }; // 리모컨의 1번 키패드 값,2번 키패드 값,3번 키패드 값에 대한 16진수값 int remoteValues[] = {0xFF6897,0xFF30CF,0xFF18E7, 0xFF7A85, 0xFF10EF, 0xFF38C7, 0xFF5AA5, 0xFF42BD,0xFF4AB5,0xFF52AD }; int remoteValuesLen = 0; // remoteValues배열의 데이터의 개수 IRrecv IrReceiver(11); // 11번핀을 사용. 아두이노의 11번핀에 연결 decode_results result; // 숫자들을 출력하기 void setup() { // put your setup code here, to run once: Serial.begin(9600); IrReceiver.enableIRIn(); // IrReceiver의 수신 시작을 의미 remoteValuesLen = sizeof(remoteValues) / sizeof(int); // 2번핀부터 9번핀까지 모두 설정 for (int i = 2; i < 10; i++) { pinMode(i, OUTPUT); digitalWrite(i,LOW); } } // 리모컨이 눌린 값을 매개변수로 전달해서 // 리모컨의 키패드 값으로 변환하는 함수 int remoteKey(int value) { for (int i = 0; i < remoteValuesLen; i++) { if (remoteValues[i] == value) return i; } // -1의 의미는 키패드가 아닌 경우이다. return -1; } void WriteNum(int _num) { for (int i = 0; i < 8; i++) { digitalWrite(i + 2, num[_num][i]); } delay(500); } void loop() { // put your main code here, to run repeatedly: // 암호화된 데이터를 result에 저장. if (IrReceiver.decode(&result)) { Serial.println(result.value,HEX); int keyNum = remoteKey(result.value); // 리모컨 키 패드값으로 변환 // 키패드의 1~9번에 대해서만 반응한다. if (keyNum != -1) { // 리모컨의 1번 키패드가 눌리면 세븐세그먼트 제어 WriteNum(keyNum); } IrReceiver.resume(); // 다음 값을 받을 수 있도록 세팅 } }
'Arduino > 7 Segment' 카테고리의 다른 글
7Segment와 포텐시오미터를 연결해서 제어하기 (0) 2020.10.31 7Segment와 시리얼 통신 하기 (0) 2020.10.31 7Segment에 숫자 표시하기 (0) 2020.10.31 7Segment의 기본적인 연결하기 (0) 2020.10.31