산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노로 만드는 4WD 적외선 리모컨 로봇 자동차 키트

부품 및 소모품

부품수량
WINGONEER 신형 적외선 IR 무선 리모컨 센서 모듈 키트 (아두이노용)1
SainSmart L298N 듀얼 H-브리지 스테퍼 모터 드라이버1
4WD 로봇 자동차 섀시 키트1
아두이노 우노1

필요한 도구 및 기계

프로젝트 소개

Instructables에서 원본 설계를 찾아 제작한 버전입니다. 원본은 궤도 차량이었지만, 이것은 4WD입니다. 원본 설계 대비 IR 설정 부분이 수정되었습니다. 모터 작동 시 발생하는 피드백이 IR 수신기를 방해하는 문제가 있었습니다. 모터가 접지선이 만나는 지점에서 발전기 역할을 했기 때문입니다. IR 핀과 할당을 변경하여 해결했습니다.

SAINSMART 로버 키트를 사용하는 경우 제공된 지침에 따라 자동차 베이스를 조립하세요. 여기서 확인

아두이노로 만드는 4WD 적외선 리모컨 로봇 자동차 키트

IR 수신기 연결

int receiver_pin = 4; // 컨트롤러 핀 4를 IR 수신기 Y에 연결
int vcc = 5;          // 컨트롤러 핀 5를 IR 수신기 V에 연결
int gnd = 6;          // 컨트롤러 핀 6을 IR 수신기 G에 연결
아두이노로 만드는 4WD 적외선 리모컨 로봇 자동차 키트

L298N 모터 드라이브 모듈

// 모터 A

int enA = 8;
int in1 = 12;
int in2 = 11;

// 모터 B

int enB = 7;
int in3 = 10;
int in4 = 9;

L298N 모터 드라이브 모듈 GND를 컨트롤러 GND에 연결

아두이노로 만드는 4WD 적외선 리모컨 로봇 자동차 키트

L298N 모터 드라이브 모듈 - 모터 연결

// 모터 세트 A (오른쪽)

모터의 "+" (빨강)을 Out 4에 연결
모터의 "-" (검정)을 Out 3에 연결

// 모터 세트 B (왼쪽)

모터의 "+" (빨강)을 Out 2에 연결
모터의 "-" (검정)을 Out 1에 연결

배터리를 L298N 드라이브 모듈 "+" (빨강)을 VCC, "-" (검정)을 GND에 연결

완전한 회로도

아두이노로 만드는 4WD 적외선 리모컨 로봇 자동차 키트
아두이노로 만드는 4WD 적외선 리모컨 로봇 자동차 키트

코드

IR 리모컨 자동차 (C#)

#include <IRremote.h>
char command;
int receiver_pin = 4;
int vcc = 5;
int gnd = 6;
int statusled = 13;
IRrecv irrecv(receiver_pin);
decode_results results;

// 모터 컨트롤러 핀을 아두이노 디지털 핀에 연결
// 모터 A
int enA = 8; int in1 = 12; int in2 = 11;
// 모터 B
int enB = 7; int in3 = 10; int in4 = 9;

void setup() {
  Serial.begin(9600);
  irrecv.enableIRIn();
  pinMode(statusled, OUTPUT);
  digitalWrite(statusled, LOW);
  pinMode(enA, OUTPUT); pinMode(enB, OUTPUT);
  pinMode(in1, OUTPUT); pinMode(in2, OUTPUT);
  pinMode(in3, OUTPUT); pinMode(in4, OUTPUT);
  pinMode(vcc, OUTPUT); pinMode(gnd, OUTPUT);
  digitalWrite(vcc, HIGH); // VCC 핀 HIGH 초기화
}

void loop() {
  if (irrecv.decode(&results)) {
    digitalWrite(statusled, LOW);
    irrecv.resume();
    
    if (results.value == 0xFF18E7) { // 버튼 2: 전진
      Serial.println("Button 2");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enB, 100);
    } else if (results.value == 0xFF10EF) { // 버튼 4: 좌회전
      Serial.println("Button 4");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, LOW); analogWrite(enB, 100);
    } else if (results.value == 0xFF30CF) { // 버튼 1: 제자리 좌회전
      Serial.println("Button Turn Right");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW); analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enB, 100);
    } else if (results.value == 0xFF5AA5) { // 버튼 6: 우회전
      Serial.println("Button Turn Left");
      digitalWrite(in1, LOW); digitalWrite(in2, LOW); analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enB, 100);
    } else if (results.value == 0xFF7A85) { // 버튼 3: 제자리 우회전
      digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW); analogWrite(enB, 100);
    } else if (results.value == 0xFF4AB5) { // 버튼 8: 후진
      digitalWrite(in1, LOW); digitalWrite(in2, HIGH); analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, HIGH); analogWrite(enB, 100);
    } else if (results.value == 0xFF38C7) { // 버튼 5: 정지
      digitalWrite(in1, LOW); digitalWrite(in2, LOW); analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, LOW); analogWrite(enB, 100);
    }
  }
}

회로도

아두이노로 만드는 4WD 적외선 리모컨 로봇 자동차 키트

제조공정

  1. 제어 회로: 기초, 응용, 모범 사례
  2. C# 생성자(Constructor) 총정리: 종류, 예제, 고급 패턴
  3. LIRC로 전문가급 라즈베리 파이 범용 리모컨 만들기
  4. 자동 수영장 급수 및 모니터링 시스템
  5. AWS IoT 알림으로 원격 심박수 모니터링 시스템 구축
  6. 버려진 IR 리모컨 재활용해 라즈베리 파이 제어하기 - LIRC로 종료 및 재부팅
  7. Delta Controls enteliBUS 취약점: 빌딩 시스템 원격제어 노출
  8. 클라우드 모니터링: 실시간 자산 관리를 위한 원격 제어 시스템
  9. 현대 산업을 위한 원격 생산 제어의 5가지 핵심 이점
  10. 오버헤드 크레인 리모컨 마스터: 창고 안전성과 효율성 동시 향상