- LiFePO4 Speicher Test         
Ergebnis 1 bis 10 von 13

Thema: Motoren per Bluetooth ansteuern

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Selbst wenn ich den COM Port direkt angebe komme ich zum gleichen Ergebnis wie letztes mal. Ich befürchte, des es daran liegt das sich die beiden Ports überschneide, als der pwmA Port des Bluetooth Modules und der des Motors. Denn wenn ich den Arduino an Strom anschliesse fängt der eine Motor von alleine an zu laufen.
    Code:
    const int pwmA = 3;
    Code:
    int bluetoothTx = 3;
    ToastCrafterHD

  2. #2
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Gleicher Pin für Bluetooth und Motor Treiber geht nicht. Das musst du umverkabeln zum Beispiel auf Pin 2 und 4.
    Nach der Doku zum Bluetooth Mate läuft das Modul per Default mit 115,2 kBaud, nicht 9600 Baud. Oder hast du die Baudrate des Modul umgestellt?
    Die Bluetooth Verbindung kann man mit diesem Sketch und 2 offenen Terminal Verbindungen (USB und Bluetooth) testen (Pins und Baudraten entsprechend anpassen).

  3. #3
    Ja, ich habe die Baud-Rate umgestellt aber auch bei 115200 Baud ändert sich nichts, auch bei der Umänderung der Pins gibt es keine Veränderung. Die Bluetooth Verbindung funktioniert einwandfrei.

    ToastCrafterHD

  4. #4
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    In deinem Arduino Sketch fehlt noch die Initialisierung der Bluetooth Schnittstelle. Und gelesen wird auch nur von der USB Schnittstelle. Über USB müsste dein Programm funktionieren.

  5. #5
    Über USB funktioniert mein Programme gut, muss ich es für Bluetooth wie folgt abändern ?

    Code:
     #include <SoftwareSerial.h>
     
    char val;
    const int pwmA = 3;
    const int pwmB = 11;
    const int brakeA = 9;
    const int brakeB = 8;
    const int dirA = 12;
    const int dirB = 13;
     
    int bluetoothTx = 2;
    int bluetoothRx = 4;
    SoftwareSerial bluetooth(bluetoothTx, bluetoothRx);
     
    void setup() {
      pinMode(dirA, OUTPUT);
      pinMode(brakeA, OUTPUT);
       
      pinMode(dirB, OUTPUT);
      pinMode(brakeB, OUTPUT);
     
      Serial.begin(115200);       
    }
     
    void loop() {
    {
        if (bluetooth.available())
        {
          Serial.print((char)bluetooth.read());
        }
        if (Serial.available())
        {
          bluetooth.print((char)Serial.read());
        }
      }
    
      if ( val == 'S' )
       
         {
           digitalWrite(pwmA, 255);
           digitalWrite(dirA, LOW);
           digitalWrite(brakeA, LOW);
     
     
           digitalWrite(pwmB, 255);
           digitalWrite(dirB, HIGH);
           digitalWrite(brakeB, LOW);
         }
        delay(100);
     
      if (val == 'W') {
     
        digitalWrite(pwmA, 255);
        digitalWrite(dirA, LOW);
        digitalWrite(brakeA, LOW);
     
     
        digitalWrite(pwmB, 255);
        digitalWrite(dirB, HIGH);
        digitalWrite(brakeB, LOW);
     
        Serial.println("Vorwaerts 100%.");
      }
     
     
      delay(100);
      if (val == 'S') {
     
        digitalWrite(pwmA, 255);
        digitalWrite(dirA, HIGH);
        digitalWrite(brakeA, LOW);
     
        digitalWrite(pwmB, 255);
        digitalWrite(dirB, LOW);
        digitalWrite(brakeB, LOW);
     
        Serial.println("Rueckwaerts 100%.");
     
      }
      delay(100);
      if (val == 'A') {
     
        digitalWrite(pwmA, 255);
        digitalWrite(dirA, LOW);
        digitalWrite(brakeA, LOW);
     
        digitalWrite(pwmB, 255);
        digitalWrite(dirB, LOW);
        digitalWrite(brakeB, LOW);
     
        Serial.println("Nach links drehen");
     
      }
      delay(100);
      if (val == 'D') {
     
        digitalWrite(pwmA, 255);
        digitalWrite(dirA, HIGH);
        digitalWrite(brakeA, LOW);
     
        digitalWrite(pwmB, 255);
        digitalWrite(dirB, HIGH);
        digitalWrite(brakeB, LOW);
        Serial.println("Nach rechts drehen");
     
      }
        if (val == '0') {
     
        digitalWrite(pwmA, 0);
        digitalWrite(pwmB, 0);
     
        Serial.println("Motoren aus");
     
      }
    }
    Geändert von Anonym (29.01.2016 um 13:38 Uhr)

  6. #6
    Erfahrener Benutzer Roboter Genie Avatar von m.a.r.v.i.n
    Registriert seit
    24.07.2005
    Ort
    Berlin
    Beiträge
    1.247
    Es fehlt die Initialisierung der Bluetooth Softserial Schnittstelle. Ebenso stimmt die Abfrage in der loop() Funktion nicht:
    Code:
    ...
      Serial.begin(115200);  
      bluetooth.begin(9600);      
    }
     
    void loop() {
    {
      if (bluetooth.available())
      {
        val = bluetooth.read();
        Serial.print(val);
      }
      else if (Serial.available())
      {
        val = Serial.read();
        bluetooth.print(val);
      }
    ...

  7. #7
    Danke soweit funktioniert es super

    ToastCrafterHD
    Geändert von Anonym (07.02.2016 um 19:48 Uhr)

Ähnliche Themen

  1. 8 Motoren ansteuern
    Von hunikuni im Forum Motoren
    Antworten: 7
    Letzter Beitrag: 22.05.2012, 09:49
  2. ansteuern von 10(und mehr) motoren
    Von darkangel1208 im Forum Elektronik
    Antworten: 2
    Letzter Beitrag: 13.04.2009, 18:02
  3. 2 Motoren ansteuern
    Von addict im Forum C - Programmierung (GCC u.a.)
    Antworten: 2
    Letzter Beitrag: 18.03.2005, 16:36
  4. Motoren ansteuern
    Von linosius im Forum Elektronik
    Antworten: 4
    Letzter Beitrag: 07.02.2005, 18:53
  5. 3V Motoren mit 12V PWM ansteuern?
    Von BlackBox im Forum Motoren
    Antworten: 11
    Letzter Beitrag: 30.07.2004, 07:08

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

Labornetzteil AliExpress