Hallo,
ich bin dabei mir ein Fahrzeug zu bauen, die Steuerung habe ich früher über Relais realisiert, dies hat die Motoren beim Anfahren und Bremsen sehr belastet und eins der Getriebe hat sich irgendwann verabschiedet, also hab ich mir überlegt, dass ich eine Steuerung brauche, bei der ich die Geschwindigkeit regeln kann. Meine Wahl war ein Arduino, der über die Serielle Schnittstelle Daten bekommt und diese dann in ein PWM Signal umgewandelt werden.
Der Arduino Code:
int input = 0;
const int MotorPin = 9;
const int MotorPin2 = 10;
int MotorSpeed = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
input = Serial.parseInt();
input -=1;
if(input > -1){
if (input < 1000){
MotorSpeed = input;
analogWrite(MotorPin, MotorSpeed);
}
if (input > 999){
MotorSpeed = input - 1000;
analogWrite(MotorPin2, MotorSpeed);
}
}
input = 0;
delay(1);
}
Alles anzeigen
Ich habe die Schaltung folgendermaßen aufgebaut:
Doch seltsamer Weise hängt der Arduino sich andauert auf, es sei denn ich schließe zusätzlich mein Oszilloskop an den Ausgang des Arduino, daraufhin habe ich viel rumprobiert (Dioden, Kondensatoren, Widerstände eingebaut, wieder ausgebaut ...)
bis ich zu dieser Schaltung kam:
Diese funktioniert, meine Frage nun warum funktioniert die erste Lösung nicht?
So wird es in vielen Tutorials vorgeschlagen.
MfG ProfDrFisch
P.S. Verbesserungsvorschläge sind gerne gesehen.