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

Arduino Uno & Bluetooth: Fernsteuerung eines Autos – Schritt-für-Schritt-Anleitung

Komponenten und Materialien

Bauteil Menge
Arduino UNO 1
SparkFun Dual H-Bridge Motortreiber L298 1

Benötigte Werkzeuge und Maschinen

Apps und Online-Dienste

Projektbeschreibung

Ich wollte ein Auto fernsteuern und habe verschiedene Möglichkeiten ausprobiert. Schließlich entschied ich mich für eine Bluetooth-Steuerung, besorgte die nötigen Komponenten und schrieb die Software. Dies ist mein zweites Projekt auf Hackster.

Arduino Uno & Bluetooth: Fernsteuerung eines Autos – Schritt-für-Schritt-Anleitung

Arduino-Code

char buffer[67];
byte Pino02 = 2;
byte Pino03 = 3;
byte Pino04 = 4;
byte Pino05 = 5;
byte Pino06 = 6;
byte Pino07 = 7;
byte Pino12 = 12;
byte Pino13 = 13;

void setup() {
  Serial.begin(9600);
  Serial.flush();
  pinMode(Pino02, OUTPUT);
  pinMode(Pino03, OUTPUT);
  pinMode(Pino04, OUTPUT);
  pinMode(Pino05, OUTPUT);
  pinMode(Pino06, OUTPUT);
  pinMode(Pino07, OUTPUT);
  pinMode(9, OUTPUT);
  pinMode(10, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(13, OUTPUT);
}

void loop() {
  if (Serial.available() > 0) {
    int index = 0;
    delay(100); // Puffer füllen lassen
    int numChar = Serial.available();
    if (numChar > 65) numChar = 65;
    while (numChar--) {
      buffer[index++] = Serial.read();
    }
    splitString(buffer);
  }
}

void splitString(char* data) {
  Serial.print("Eingabe: ");
  Serial.println(data);
  char* parameter;
  parameter = strtok(data, " ,");
  while (parameter != NULL) {
    setLED(parameter);
    parameter = strtok(NULL, " ,");
  }
  // Buffer leeren
  for (int x = 0; x < 66; x++) {
    buffer[x] = '\0';
  }
  Serial.flush();
}

void setLED(char* data) {
  // Vorwärts links
  if (data[0] == 'A') {
    analogWrite(9, 50); analogWrite(10, 50);
    digitalWrite(Pino02, LOW); digitalWrite(Pino03, HIGH);
    digitalWrite(Pino04, HIGH); digitalWrite(Pino05, LOW);
    digitalWrite(12, HIGH); digitalWrite(13, LOW);
  }
  // Vorwärts rechts
  if (data[0] == 'C') {
    analogWrite(9, 50); analogWrite(10, 50);
    digitalWrite(Pino02, HIGH); digitalWrite(Pino03, LOW);
    digitalWrite(Pino04, LOW); digitalWrite(Pino05, HIGH);
    digitalWrite(12, HIGH); digitalWrite(13, LOW);
  }
  // Rückwärts Stufen 1-5
  if (data[0] == 'B') { analogWrite(9, 25); analogWrite(10, 25); digitalWrite(Pino02, HIGH); digitalWrite(Pino03, LOW); digitalWrite(Pino04, HIGH); digitalWrite(Pino05, LOW); digitalWrite(12, LOW); digitalWrite(13, HIGH); }
  if (data[0] == 'M') { analogWrite(9, 75); analogWrite(10, 75); digitalWrite(Pino02, HIGH); digitalWrite(Pino03, LOW); digitalWrite(Pino04, HIGH); digitalWrite(Pino05, LOW); digitalWrite(12, LOW); digitalWrite(13, HIGH); }
  if (data[0] == 'N') { analogWrite(9, 125); analogWrite(10, 125); digitalWrite(Pino02, HIGH); digitalWrite(Pino03, LOW); digitalWrite(Pino04, HIGH); digitalWrite(Pino05, LOW); digitalWrite(12, LOW); digitalWrite(13, HIGH); }
  if (data[0] == 'P') { analogWrite(9, 175); analogWrite(10, 175); digitalWrite(Pino02, HIGH); digitalWrite(Pino03, LOW); digitalWrite(Pino04, HIGH); digitalWrite(Pino05, LOW); digitalWrite(12, LOW); digitalWrite(13, HIGH); }
  if (data[0] == 'L') { analogWrite(9, 225); analogWrite(10, 225); digitalWrite(Pino02, HIGH); digitalWrite(Pino03, LOW); digitalWrite(Pino04, HIGH); digitalWrite(Pino05, LOW); digitalWrite(12, LOW); digitalWrite(13, HIGH); }
  // Vorwärts Stufen 1-5
  if (data[0] == 'D') { analogWrite(9, 25); analogWrite(10, 25); digitalWrite(Pino02, LOW); digitalWrite(Pino03, HIGH); digitalWrite(Pino04, LOW); digitalWrite(Pino05, HIGH); digitalWrite(12, HIGH); digitalWrite(13, LOW); }
  if (data[0] == 'H') { analogWrite(9, 75); analogWrite(10, 75); digitalWrite(Pino02, LOW); digitalWrite(Pino03, HIGH); digitalWrite(Pino04, LOW); digitalWrite(Pino05, HIGH); digitalWrite(12, HIGH); digitalWrite(13, LOW); }
  if (data[0] == 'I') { analogWrite(9, 125); analogWrite(10, 125); digitalWrite(Pino02, LOW); digitalWrite(Pino03, HIGH); digitalWrite(Pino04, LOW); digitalWrite(Pino05, HIGH); digitalWrite(12, HIGH); digitalWrite(13, LOW); }
  if (data[0] == 'K') { analogWrite(9, 175); analogWrite(10, 175); digitalWrite(Pino02, LOW); digitalWrite(Pino03, HIGH); digitalWrite(Pino04, LOW); digitalWrite(Pino05, HIGH); digitalWrite(12, HIGH); digitalWrite(13, LOW); }
  if (data[0] == 'L') { analogWrite(9, 225); analogWrite(10, 225); digitalWrite(Pino02, LOW); digitalWrite(Pino03, HIGH); digitalWrite(Pino04, LOW); digitalWrite(Pino05, HIGH); digitalWrite(12, HIGH); digitalWrite(13, LOW); }
  // Stopp
  if (data[0] == 'U') {
    digitalWrite(Pino02, LOW); digitalWrite(Pino03, LOW);
    digitalWrite(Pino04, LOW); digitalWrite(Pino05, LOW);
    digitalWrite(12, LOW); digitalWrite(13, LOW);
  }
  // Langsam vorwärts
  if (data[0] == 'E') {
    analogWrite(9, 50); analogWrite(10, 50);
    digitalWrite(Pino02, LOW); digitalWrite(Pino03, HIGH);
    digitalWrite(Pino04, LOW); digitalWrite(Pino05, HIGH);
  }
  // Langsam rückwärts
  if (data[0] == 'F') {
    analogWrite(9, 50); analogWrite(10, 50);
    digitalWrite(Pino02, HIGH); digitalWrite(Pino03, LOW);
    digitalWrite(Pino04, HIGH); digitalWrite(Pino05, LOW);
  }
}

Gehäuse und Custom Parts

APK-Datei für die Steuerung: arduinoslider2_dxxyKBsRDa.apk

Herstellungsprozess

  1. Integriertes QR-, RFID- und Temperatur-Verifikations-Zugangskontrollsystem
  2. Schnelles, zuverlässiges Branderkennungssystem mit Samsung SAMI, Arduino UNO & Raspberry Pi
  3. Arduino Echtzeituhr für islamische Gebetszeiten bauen
  4. Smartes Sparschwein: Münzprüfer mit Arduino Nano steuern
  5. LED per Bluetooth mit Arduino steuern – Einfache DIY-Anleitung
  6. Zwei Schrittmotoren mit Arduino Nano & Joystick steuern – Einfaches Tutorial
  7. 8×8 LED-Matrix mit Arduino Uno meistern: Schritt-für-Schritt-Anleitung
  8. 4x4x4 LED-Würfel mit Arduino Uno & 1Sheeld bauen – Interaktives LED-Projekt
  9. Bluetooth-fähige 8x8 LED-Matrix mit Scrolltext – Arduino-Projekt
  10. 25-kHz-4-Pin-PWM-Lüftersteuerung mit Arduino Uno – Bau, Code & Test