-
아두이노 프로젝트 | 적외선 무선 원격 통신을 이용한 무선 RC카Technology/Arduino 2024. 2. 23. 18:00
1. 적외선 무선 원격 통신을 이용한 무선 RC카
적외선 무선 원격 통신을 이용한 무선 RC카 일상에서 쉽게 발견할 수 있는 무선 RC카를 아두이노 플랫폼으로 구현해보자. 구현하고자 하는 무선 RC카는 DC모터에 기어박스가 추가된 하비 기어 모터 2개와 L298N DC모터 드라이버 모듈로 구성되어 있으며, 적외선 무선 원격 통신을 지원한다. 적외선 리모컨의 숫자 버튼을 누르면 무선 RC카의 동작을 제어할 수 있다. 적외선 리모컨 2번 버튼을 누르면 전진, 8번 버튼을 누르면 후진, 4번 버튼을 누르면 제자리에서 좌회전, 6번 버튼을 누르면 제자리에서 우회전을 하도록 프로그램을 작성해보자.
2. 프로젝트
2.1. 회로 구성
회로 구성 기어박스장착모터 (NP01D-48)
★바퀴 상품코드 : 37801★ 휠 ,모터 SET 구성. 엔코더와 결합하여 DIY 하기에 용이합니다. 그 밖에 PID, PWM과 같은 속도 제어 및 기타 실험에 쓰일 수 있습니다. / 기어박스장착모터 / OEM
www.devicemart.co.kr
2A L298 모터드라이버 모듈 (아두이노 호환) [SZH-EK001]
ST사의 고전압 고전류 모터 드라이버 칩인 L298N을 탑재한 Dual H-Bridge 모터 드라이버 / 작동 전압 : 5V-35V / 전류 : 2A(MAX single bridge)
www.devicemart.co.kr
초특가 [IR 적외선 리모콘 수신부 38kHz] LTOP-ML38ATH
일반적인 IR 수신부로 많이 사용되는 38kHz 의 센서입니다. 핀은 라이트엥글 타입이며 핀 간격은 2.54mm 수광부 CL-1L5 과 같이 사용됩니다.
www.devicemart.co.kr
메카솔루션 공식 쇼핑몰
mechasolution.com
2.2. 프로그램 작성
#include <IRremote.h> // 적외선 무선 원격 통신 라이브러리 추가 int IR = 12; // 정수형 변수 선언 후 디지털 핀 번호 12번으로 초기화 int ENA = 11; // 정수형 변수 선언 후 디지털 핀 번호 11번으로 초기화 int IN1 = 10; int IN2 = 9; int ENB = 6; int IN3 = 5; int IN4 = 4; void setup() { pinMode(ENA, OUTPUT); // 디지털 11번 핀을 출력(OUTPUT) 모드로 설정 pinMode(IN1, OUTPUT); pinMode(IN2, OUTPUT); pinMode(ENB, OUTPUT); pinMode(IN3, OUTPUT); pinMode(IN4, OUTPUT); // 디지털 12번 핀에 연결되어 있는 적외선 수신기 활성화 // 적외선 통신 상태를 확인하기 위해 내장 LED 활성화 IrReceiver.begin(IR, ENABLE_LED_FEEDBACK); Serial.begin(9600); // 시리얼 통신 시작 (통신 속도: 9600 bps) } void loop() { if (IrReceiver.decode()) // 적외선 송신기로부터 수신 받은 신호가 있으면 실행 { // 수신 받은 신호의 명령값에 따라 프로그램 실행 switch(IrReceiver.decodedIRData.command) { // 적외선 리모콘 2번 버튼이 눌린 경우 case 0x11: Serial.println("Forward"); // 시리얼 모니터에 문자열 출력한 뒤 줄 바꿈 digitalWrite(IN1, HIGH); // 디지털 10번 핀에 디지털 신호 HIGH 출력 digitalWrite(IN2, LOW); // 디지털 9번 핀에 디지털 신호 LOW 출력 digitalWrite(IN3, HIGH); // 디지털 5번 핀에 디지털 신호 HIGH 출력 digitalWrite(IN4, LOW); // 디지털 4번 핀에 디지털 신호 HIGH 출력 analogWrite(ENA, 255); // 디지털 11번 핀에 PWM 아날로그 신호 5V 출력 analogWrite(ENB, 255); // 디지털 6번 핀에 PWM 아날로그 신호 5V 출력 break; // 적외선 리모콘 4번 버튼이 눌린 경우 case 0x14: Serial.println("Turn left"); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, HIGH); digitalWrite(IN4, LOW); analogWrite(ENA, 255); analogWrite(ENB, 255); break; // 적외선 리모콘 6번 버튼이 눌린 경우 case 0x16: Serial.println("Turn right"); digitalWrite(IN1, HIGH); digitalWrite(IN2, LOW); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); analogWrite(ENA, 255); analogWrite(ENB, 255); break; // 적외선 리모콘 8번 버튼이 눌린 경우 case 0x19: Serial.println("Backward"); digitalWrite(IN1, LOW); digitalWrite(IN2, HIGH); digitalWrite(IN3, LOW); digitalWrite(IN4, HIGH); analogWrite(ENA, 255); analogWrite(ENB, 255); break; } IrReceiver.resume(); // 적외선 송신기로부터 다음 신호를 받을 수 있도록 대기 } }
[함께 읽으면 좋은 페이지]
아두이노 | DC모터 드라이버 L298N 모듈
1. DC모터 드라이버 L298N 모듈 L298N은 H-브리지 회로가 내장된 전자 소자로, 앞서 살펴본 L293D보다 더 큰 부하의 DC모터를 제어할 수 있다. L298N을 이용한 DC모터 드라이버 모듈은 DC모터 2개를 양방향
vedacube.tistory.com
아두이노 라이브러리 | 적외선 무선 원격 통신
1. 적외선 무선 원격 통신 적외선이 사람 눈에 보이지 않는다는 점을 이용해 적외선을 무선 원격 통신에 이용할 수 있다. 적외선을 방출하는 다이오드로 신호를 일정 규칙에 맞게 송출하면, 적외
vedacube.tistory.com
반응형'Technology > Arduino' 카테고리의 다른 글
아두이노 | 7-세그먼트 디코더 CD4511 (2) 2024.03.08 아두이노 | 7-세그먼트 디스플레이 (0) 2024.03.01 아두이노 라이브러리 | 적외선 무선 원격 통신 IRremote.h (0) 2024.02.16 아두이노 프로젝트 | 현관 센서등 (1) 2024.02.09 아두이노 | PIR 센서 모듈 HC-SR501 (0) 2024.02.02