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

IR 원격 제어 자동차

구성품 및 소모품

WINGONEER Arduino용 새로운 스타일의 적외선 IR 무선 원격 제어 센서 모듈 키트
× 1
SainSmart L298N 듀얼 H 브리지 스테퍼 모터 드라이버
× 1
4WD 로봇 자동차 섀시 키트
× 1
Arduino UNO
× 1

필요한 도구 및 기계

납땜 인두(일반)

이 프로젝트 정보

Instructables에서 원래 디자인을 찾아 버전을 만들었습니다. 원래는 트랙 차량이었고 이것은 4WD입니다. 원래 디자인에 대한 조정은 IR 설정에서 발생합니다. 원래 디자인은 모터가 작동할 때 IR 수신기를 방해하는 피드백으로 인해 어려움을 겪었습니다. 모터는 접지선이 만나는 곳에서 발전기 역할을 했습니다. IR에 대한 핀과 할당을 변경했습니다.

SAINSMART 로버 키트를 사용하는 경우 제공된 지침을 사용하여 자동차 베이스를 조립합니다. 여기에서 찾았습니다

IR 수신기:

int 수신기_핀 =4; //컨트롤러의 출력 핀 4를 IR 수신기 Y에 연결합니다.

정수 vcc =5; //컨트롤러의 출력 핀 5를 IR 수신기 V에 연결합니다.

int gnd =6; //컨트롤러의 출력 핀 4를 IR 수신기 G에 연결

L298N 모터 드라이브 모듈:

// 모터 A

정수 enA =8;

정수 in1 =12;

정수 in2 =11;

// 모터 B

정수 enB =7;

정수 in3 =10;

정수 in4 =9;

L298N 모터 구동 모듈 GND - 컨트롤러 GND

L298N 모터 드라이브 모듈에서 모터로:

//모터 세트 A 오른쪽

연결 모터의 "+"(빨간색) 쪽을 Out 4로

모터의 "-"(검은색) 쪽을 Out 3에 연결합니다.

// 모터 세트 B 왼쪽

연결 모터의 "+"(빨간색) 쪽을 Out 2로

모터의 "-"(검은색) 쪽을 Out 1에 연결합니다.

배터리를 L298N 드라이브 모듈 "+"(빨간색)에 VCC에 연결하고 "-"(검정색)에 GND

전체 다이어그램

<섹션 클래스="섹션 컨테이너 섹션 축소 가능" id="코드">

코드

<울>
  • IR 리모컨 자동차
  • IR 리모콘 자동차C#
    #include char 명령;int receiver_pin =4; // IR 수신기의 출력 핀을 4번 핀에 연결합니다. vcc =5; //IR 센서용 VCCint gnd =6; //IR sensorint에 대한 GND statusled =13;IRrecv recv(receiver_pin);decode_results results;// 모터 컨트롤러 핀을 Arduino 디지털 핀에 연결// 모터 Aint enA =8;int in1 =12;int in2 =11;// 모터 Bint enB =7;int in3 =10;int in4 =9;void setup(){Serial.begin(9600);irrecv.enableIRIn();pinMode(statusled,OUTPUT);digitalWrite(statusled,LOW);//설정 출력 pinMode(enA, OUTPUT)에 대한 모든 모터 제어 핀; 핀모드(enB, 출력); 핀모드(in1, 출력); 핀모드(in2, 출력); 핀모드(in3, 출력); 핀모드(in4, 출력); 핀모드(vcc, 출력); 핀모드(gnd, 출력); // vcc 핀 하이 초기화 digitalWrite(vcc, HIGH);}void loop() {if (irrecv.decode(&results)) {digitalWrite(statusled,LOW);irrecv.resume();if (results.value ==0xFF18E7 ){ // 버튼 2 앞으로 로봇 제어를 입력합니다. // 이 함수는 모터를 고정 속도로 양방향으로 실행합니다. Serial.println("Button 2"); // 모터 A를 켭니다. digitalWrite(in1, HIGH); 디지털 쓰기(in2, LOW); // 0~255 범위 중 속도를 200으로 설정 analogWrite(enA, 100); // 모터 B를 켭니다. digitalWrite(in3, HIGH); 디지털 쓰기(in4, LOW); // 속도를 0~255 범위에서 200으로 설정 analogWrite(enB, 100);}else if(results.value ==0xFF10EF){ // 버튼 4를 입력합니다. 로봇 제어를 왼쪽으로 돌립니다. // 이 함수는 모터 A를 실행합니다. 정방향 모터 B stop Serial.println("버튼 4"); // 모터 A를 켭니다. digitalWrite(in1, HIGH); 디지털 쓰기(in2, LOW); // 0~255 범위 중 속도를 200으로 설정 analogWrite(enA, 100); // 모터 B를 켭니다. digitalWrite(in3, LOW); 디지털 쓰기(in4, LOW); // 0~255 범위 중 속도를 200으로 설정 analogWrite(enB, 100); }else if(results.value ==0xFF30CF){ // 버튼 1을 왼쪽으로 회전 로봇 제어를 입력 // 이 함수는 모터 A를 정방향으로 모터 B를 역방향으로 실행합니다. Serial.println("Button Turn Right"); // 모터 A를 켭니다. digitalWrite(in1, HIGH); 디지털 쓰기(in2, LOW); // 0~255 범위 중 속도를 200으로 설정 analogWrite(enA, 100); // 모터 B를 켭니다. digitalWrite(in3, LOW); 디지털 쓰기(in4, 높음); // 0~255 범위 중 속도를 200으로 설정 analogWrite(enB, 100); }else if(results.value ==0xFF5AA5){ // 버튼 6을 입력합니다. 로봇 제어를 우회전합니다. // 이 함수는 모터 A를 중지하고 모터 B를 정방향으로 실행합니다. Serial.println("Button Turn Left"); // 모터 A를 켭니다. digitalWrite(in1, LOW); 디지털 쓰기(in2, LOW); // 0~255 범위 중 속도를 200으로 설정 analogWrite(enA, 100); // 모터 B를 켭니다. digitalWrite(in3, HIGH); 디지털 쓰기(in4, LOW); // 속도를 0~255 범위에서 200으로 설정 analogWrite(enB, 100);}else if(results.value ==0xFF7A85){ // 버튼 3을 입력합니다. 오른쪽으로 회전 로봇 제어 // 이 함수는 모터 A를 실행합니다. 역방향 모터 B 순방향 // 모터 A를 켭니다. digitalWrite(in1, LOW); 디지털 쓰기(in2, 높음); // 0~255 범위 중 속도를 200으로 설정 analogWrite(enA, 100); // 모터 B를 켭니다. digitalWrite(in3, HIGH); 디지털 쓰기(in4, LOW); // 0~255 범위에서 속도를 200으로 설정 analogWrite(enB, 100);} else if(results.value ==0xFF4AB5){ // 버튼 8 뒤로 로봇 제어// 이 함수는 모터 A와 모터를 실행합니다 B 역방향 // 모터 A를 켭니다. digitalWrite(in1, LOW); 디지털 쓰기(in2, 높음); // 0~255 범위 중 속도를 200으로 설정 analogWrite(enA, 100); // 모터 B를 켭니다. digitalWrite(in3, LOW); 디지털 쓰기(in4, 높음); // 0~255 범위에서 속도를 200으로 설정 analogWrite(enB, 100);}else if(results.value ==0xFF38C7){ // 버튼 5를 입력합니다. 로봇 제어를 중지합니다. // 이 함수는 모터 A와 모터 B // 모터 A를 켭니다. digitalWrite(in1, LOW); 디지털 쓰기(in2, LOW); // 0~255 범위 중 속도를 200으로 설정 analogWrite(enA, 100); // 모터 B를 켭니다. digitalWrite(in3, LOW); 디지털 쓰기(in4, LOW); // 0~255 범위 중 속도를 200으로 설정 analogWrite(enB, 100); }}}

    회로도


    제조공정

    1. 제어 회로
    2. C# 생성자
    3. Raspberry Pi 범용 리모컨
    4. 수영장 채우기 제어
    5. 원격 심박수 모니터
    6. 원하지 않는 적외선 원격 제어를 재사용하여 Raspberry Pi를 종료 및 재부팅
    7. ICS 보안 공격으로 건물의 원격 제어 가능
    8. 클라우드 모니터링, 원격 제어 시스템
    9. 원격 생산 제어의 5가지 장점
    10. 오버헤드 크레인 원격 제어:알아야 할 모든 것