Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Manufacturing Technology >> Herstellungsprozess

4WD IR-Fernsteuerungs-Roboterauto mit Arduino bauen

Komponenten und Zubehör

Komponente Menge
WINGONEER Infrarot IR Fernbedienung Sensormodul Kit für Arduino 1
SainSmart L298N Dual H-Bridge Schrittmotor-Treiber 1
4WD Roboter-Auto Chassis Kit 1
Arduino UNO 1

Benötigte Werkzeuge und Maschinen

Über dieses Projekt

Ich fand das Originaldesign auf Instructables und baute eine eigene Version. Das Original war ein Kettenfahrzeug, dieses hier ist ein 4WD. Die Anpassung am Originaldesign betrifft die IR-Einrichtung. Das Original litt unter Rückkopplungen beim Motorbetrieb, die den IR-Empfänger störten. Die Motoren fungierten als Generatoren, wo sich die Masseleitungen trafen. Ich änderte die Pins und Zuordnungen für den IR-Empfänger.

Bauen Sie das Auto-Chassis mit den mitgelieferten Anweisungen zusammen, falls Sie das SAINSMART Rover Kit verwenden.

4WD IR-Fernsteuerungs-Roboterauto mit Arduino bauen

IR-Empfänger Anschluss

int receiver_pin = 4; // Ausgangspin 4 am Controller an IR-Empfänger Y
int vcc = 5;          // Ausgangspin 5 am Controller an IR-Empfänger V
int gnd = 6;          // Ausgangspin 6 am Controller an IR-Empfänger G
4WD IR-Fernsteuerungs-Roboterauto mit Arduino bauen

L298N Motortreiber-Modul

Motor A (rechts)

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

Motor B (links)

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

L298N Motortreiber GND an Controller GND

4WD IR-Fernsteuerungs-Roboterauto mit Arduino bauen

L298N Motortreiber zu Motoren

Motorsatz A rechte Seite

Motorsatz B linke Seite

Batterie an L298N Treiber: "+" (Rot) an VCC und "-" (Schwarz) an GND

Komplettschaltplan

4WD IR-Fernsteuerungs-Roboterauto mit Arduino bauen
4WD IR-Fernsteuerungs-Roboterauto mit Arduino bauen

Code

IR Remote Control Car (C/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;

// Motor A
int enA = 8;
int in1 = 12;
int in2 = 11;
// Motor 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 für IR-Sensor aktivieren
}

void loop() {
  if (irrecv.decode(&results)) {
    digitalWrite(statusled, LOW);
    irrecv.resume();
    
    // Taste 2: Vorwärts
    if (results.value == 0xFF18E7) {
      Serial.println("Taste 2");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
      analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
      analogWrite(enB, 100);
    }
    // Taste 4: Links drehen
    else if (results.value == 0xFF10EF) {
      Serial.println("Taste 4");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
      analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, LOW);
      analogWrite(enB, 100);
    }
    // Taste 1: Rechts drehen (Rotation)
    else if (results.value == 0xFF30CF) {
      Serial.println("Taste Rechts drehen");
      digitalWrite(in1, HIGH); digitalWrite(in2, LOW);
      analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, HIGH);
      analogWrite(enB, 100);
    }
    // Taste 6: Rechts abbiegen
    else if (results.value == 0xFF5AA5) {
      Serial.println("Taste Links abbiegen");
      digitalWrite(in1, LOW); digitalWrite(in2, LOW);
      analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
      analogWrite(enB, 100);
    }
    // Taste 3: Links drehen (Rotation)
    else if (results.value == 0xFF7A85) {
      digitalWrite(in1, LOW); digitalWrite(in2, HIGH);
      analogWrite(enA, 100);
      digitalWrite(in3, HIGH); digitalWrite(in4, LOW);
      analogWrite(enB, 100);
    }
    // Taste 8: Rückwärts
    else if (results.value == 0xFF4AB5) {
      Serial.println("Taste 8");
      digitalWrite(in1, LOW); digitalWrite(in2, HIGH);
      analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, HIGH);
      analogWrite(enB, 100);
    }
    // Taste 5: Stopp
    else if (results.value == 0xFF38C7) {
      Serial.println("Taste 5");
      digitalWrite(in1, LOW); digitalWrite(in2, LOW);
      analogWrite(enA, 100);
      digitalWrite(in3, LOW); digitalWrite(in4, LOW);
      analogWrite(enB, 100);
    }
  }
}

Schaltplan

4WD IR-Fernsteuerungs-Roboterauto mit Arduino bauen

Herstellungsprozess

  1. Steuerschaltungen: Grundlagen, Anwendungen und Best Practices
  2. C# Konstruktoren: Typen, Beispiele und fortgeschrittene Muster
  3. Professionelle Raspberry Pi Universalfernbedienung mit LIRC bauen
  4. Automatisiertes Pool-Befüllungs- und Überwachungssystem
  5. Fern-Herzfrequenz-Überwachung mit AWS IoT Alarmen
  6. Raspberry Pi mit umfunktionierter IR-Fernbedienung steuern: Herunterfahren & Neustart via LIRC
  7. Delta Controls enteliBUS Schwachstelle: Remote Control von Gebäudesystemen offengelegt
  8. Cloud Monitoring: Fernsteuerungssystem für Echtzeit-Asset-Management
  9. 5 Schlüsselvorteile der ferngesteuerten Produktionskontrolle für die moderne Industrie
  10. Brückenlaufkran-Fernsteuerung meistern: Sicherheit & Effizienz im Lager steigern