Problem mit Arduino Rechts/Linkslauf Motor?

1 Antwort

Hallo, 

versuchs mal hiermit:
Ich konnte es nicht ausprobieren, aber sollte funktionieren

int motorPin1 = 2;

int motorPin2 = 3;
int TasterLinks = 13;
int TasterRechts = 12;

void setup() {
pinMode(motorPin1, OUTPUT);//Wenn du Variablen schon anlegst, dann benutz sie doch :D
pinMode(motorPin2, OUTPUT);
pinMode(TasterLinks, INPUT_PULLUP);//Benutzt den internen Pullup
pinMode(TasterRechts, INPUT_PULLUP);//Dementsprechend musst du die Taster gegen 0V Schalten
}
void loop() {

//Durch das Verwenden des Pull-UP wird dein Eingangspin ja auf 5V gesetzt intern,
//also musst du deinen Taster an den Eingang und auf der anderen Seite an 0V anschließen.
// Beim Drücken des Tasters ziehst du Tas Potential des Pins über den Pull-Up auf 0V
// also fragen wir den Taster auf "LOW" ab.
// Das tut man, da immer ein sauberes Potential anliegt, 5V oder 0V.
// Nimmst du keinen Pull-UP/Pull-Down Widerstand, dann ist das Signal bei Taster-Offen nicht genau definiert und kann gestört sein.

if ((digitalRead(TasterLinks) == LOW ) && (digitalRead(TasterRechts) == HIGH )) { //Taster verriegeln
digitalWrite(motorPin1, HIGH);
digitalWrite(motorPin2, LOW);
}
else {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}

if ((digitalRead(TasterLinks) == HIGH ) && (digitalRead(TasterRechts) == LOW )) { //Taster verriegeln
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, HIGH);
}
else {
digitalWrite(motorPin1, LOW);
digitalWrite(motorPin2, LOW);
}
}
justaguy95 
Fragesteller
 13.05.2017, 21:12

danke erstmal für deine Antwort aber leider funktioniert es bei mir nicht. Ich habe den einen Taster auf HIGH und den anderen auf LOW so habe ich es zumindest rausgelesen (bin neu in der Welt des Arduino deswegen korrigier mich wenn ich mich komplett irre ) würde mich auf eine Antwort freuen

mit freundlichen Grüßen

0
HaaDeeTeeVau  13.05.2017, 21:16
@justaguy95

Hast du auch meine Kommentare im Programm gelesen, oder einfach nur Copy&Paste? Du musst was umverdrahten

1
justaguy95 
Fragesteller
 16.05.2017, 22:09
@HaaDeeTeeVau

Doch natürlich aber ich weiß nicht was du mit das Potential auf 0 ziehen meinst. Wäre cool wenn du einen Idioten wie mir erklärst wie ich was verdrahten muss...

Sorry das ich erst jetzt antworte hab das gar nicht gesehen 

0
HaaDeeTeeVau  17.05.2017, 20:20
@justaguy95

Kein Problem, dafür ist so ein Forum ja da.
Der Arduino erkennt nur 0 oder 1, also 0V am Eingangspin oder 5V am eingangspin. Binär also, 2 Zustände die eintreffen können.
Im Moment hat deine Schaltung keinen definierten Zustand, da du an deinen Eingang weder 0V, noch 5V gelegt hast, dein Eingang ist ja offen bis dein Schalter geschlossen wird, dann liegen am Eingang 5V an.

Damit du immer einen definierten Zustand hast, gibt es die möglichkeit den internen Pull_Up-Widerstand zu aktivieren (wie oben beschrieben). Dadurch wird im Arduino an den Eingangspin ein relativ großer Widerstand, ich glaube 10kOhm, bin mir nicht sicher angelegt, also der Eingang wird intern auf 5V gelegt. Das kanst du auch messen. Somit hat der Eingang wenn kein Taster gedrückt ein 1-Signal oder auch HIGH oder TRUE genannt. Somit darfst du den Eingang nichtmehr auf HIGH oder 1 abfragen, sondern auf 0. Du Schließt den Taster oder Schalter an deinen Eingang an und die andere Seite des Tasters an die 0V vom Arduino. Wenn du jetzt den Taster betätigst, dann wird eine Verbindung von den 5V von intern über den Pull_Up, über deinen Taster zu 0V gemacht. Dadurch fällt die Spannung komplett am Pull_Up ab und dein Eingang hat das Potential 0V also LOW. Darum fragst du in der IF jetzt auf Eingang1==LOW ab um etwas auszuführen wenn der Taster an Eingang 1 gedrückt ist. Ich glaube viel detaillierter wirds dir keiner schreiben. Einfach mal nach Pull-UP und Schaltung googeln, da gibts so viel zum Arduino etc.  Hoffe ich konnte dir helfen

0