Hallo an alle
Ich sitze aktuell an meinem ersten Projekt welches ein kleines RC Kettenfahrzeug mit zwei DC Motoren und einer Bluetoothsteuerung werden soll.
Bis dato habe ich mich im Arduino IDE ein bisschen ausprobiert und haben das Fahrzeug auch allein mit einer Pause vor und zurück fahren lassen.
Nun wollte ich das Fahrzeug über Dabble mit dem IPhone steuern allerdings funktioniert dies überhaupt nicht. Ich habe diverse Anleitungen aus dem Internet angeschaut und auch mehrere Codes probiert allerdings verbindet sich das HM-10 Modul nicht. Es leuchtet dauerhaft rot und blinkt nicht was ja soviel heißt wie das es denkt das es verbunden sei.
Somit kann ich mich auch nicht mehr damit verbinden und auch überhaupt keine Befehle von der App zum Fahrzeug schicken.
Habe ich bei der Grundsätzlichen Einrichtung etwas übersehen? Ich habe es so wie es aus der Verpackung kam an die dafür vorgesehenen PINS am Arduino UNO gesteckt.
Vielen Dank für jeden Tipp.
Im englischen Teil des Forum müssen die Beiträge und Diskussionen in englischer Sprache verfasst werden. Deswegen wurde diese Diskussion in den deutschen Teil des Forums verschoben.
mfg ein Moderator.
Ich kenne das Modul nicht, aber nach kurzer Recherche im Internet, habe ich da was von 3.3V Logigpegel gelesen. Der Arduino gibt aber 5V. Nicht das du dir da schon das board zerschossen hast.
Ich habe mir dieses Modul gekauft. Laut Website beträgt die Eingangsspannung 3,6V-6V und die Logikspannung 3,3V-5V womit es bei 5V doch eigentlich nicht kaputt gehen durfte.
Recht haste, auf der Seite wo ich war stand nur was von 3,3V.
Aber um Fehler auszuschließen und eine genauere Fehlersuche betreiben zu können, wäre es Hilfreich wenn du ein Foto / Schaltplan und deinen Code hier postest.
Meinen eigenen Code habe ich nicht mehr da er nicht funktioniert hat und ich deshalb andere Versucht habe. Allerdings war der meiner Meinung nach vielversprechendste Code dieser:
#define CUSTOM_SETTINGS
#define INCLUDE_GAMEPAD_MODULE
#include <Dabble.h>
//Right motor
int enableRightMotor=5;
int rightMotorPin1=7;
int rightMotorPin2=8;
//Left motor
int enableLeftMotor=6;
int leftMotorPin1=9;
int leftMotorPin2=10;
void setup()
{
// put your setup code here, to run once:
pinMode(enableRightMotor,OUTPUT);
pinMode(rightMotorPin1,OUTPUT);
pinMode(rightMotorPin2,OUTPUT);
pinMode(enableLeftMotor,OUTPUT);
pinMode(leftMotorPin1,OUTPUT);
pinMode(leftMotorPin2,OUTPUT);
rotateMotor(0,0);
Dabble.begin(9600, 2, 3);
}
void loop()
{
int rightMotorSpeed=0;
int leftMotorSpeed=0;
Dabble.processInput();
if (GamePad.isUpPressed())
{
rightMotorSpeed = 255;
leftMotorSpeed = 255;
}
if (GamePad.isDownPressed())
{
rightMotorSpeed = -255;
leftMotorSpeed = -255;
}
if (GamePad.isLeftPressed())
{
rightMotorSpeed = 255;
leftMotorSpeed = 0;
}
if (GamePad.isRightPressed())
{
rightMotorSpeed = 0;
leftMotorSpeed = 255;
}
rotateMotor(rightMotorSpeed, leftMotorSpeed);
}
void rotateMotor(int rightMotorSpeed, int leftMotorSpeed)
{
if (rightMotorSpeed < 0)
{
digitalWrite(rightMotorPin1,LOW);
digitalWrite(rightMotorPin2,HIGH);
}
else if (rightMotorSpeed >= 0)
{
digitalWrite(rightMotorPin1,HIGH);
digitalWrite(rightMotorPin2,LOW);
}
if (leftMotorSpeed < 0)
{
digitalWrite(leftMotorPin1,LOW);
digitalWrite(leftMotorPin2,HIGH);
}
else if (leftMotorSpeed >= 0)
{
digitalWrite(leftMotorPin1,HIGH);
digitalWrite(leftMotorPin2,LOW);
}
analogWrite(enableRightMotor, abs(rightMotorSpeed));
analogWrite(enableLeftMotor, abs(leftMotorSpeed));
}
Den Schaltplan erkläre ich kurz.
Verwendet wird ein ArduinoUNO auf welchem ein Arduino Motorshield Rev 3 gesteckt ist. An den beiden Motorausgängen sind zwei 12V DC Motoren angebaut und am Stromeingang eine 12V Batteriebox. Das Bluetoothmodul ist in das Motorshild welches die Anschlüsse vom Arduino ja "verlängert" auf
RXD -> TX
TXD -> RX
GND -> GND
VCC -> 5V
Zu erwähnen wäre auch noch das ich im Code Natürlich die Spezifikationen für mein Motorshield auch eingetragen habe und die Eingänge 2,3 für Dabble auf 0,1 geändert habe wo sie ja auch stecken.
Außerdem ist mir aufgefallen, dass sobald ich das Programm starte der Rechte Motor sich für 2 Sekunden dreht.
Laut Code auf 2,3
Das würde ich auch so lassen.
An 0/1 hängt die serielle Schnittstelle / USB - Du verbaust Dir damit die Möglichkeit zu debuggen.
Auf 2 und 3 hatte ich es zwischendurch auch geklemmt und dies im Code so geschrieben allerdings hat auch das leider nicht geholfen.
Dann musst Du versuchen mit Hilfe des SerMon zu schauen, wo es klemmt.
Evtl. hilft auch eines der Example.
Mir fällt da z.B. baudsetting ins Auge.