INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Motor über L298N Bridge drehen funktioniert nicht
10.11.2020, 20:23 (Dieser Beitrag wurde zuletzt bearbeitet: 10.11.2020 20:30 von mt14516.)
Beitrag #1
Motor über L298N Bridge drehen funktioniert nicht
Hallo Zusammen,

habe mir eine Schaltung gemacht mit 2 Tastern um mit Taster 1 einen Motor links rum zu drehen und mit Taster 2 den gleichen Motor rechts rum laufen zu lassen (Für eine Penzelzugsteuerung auf der Eisenbahn)

Der Motor läuft an, Stoppt aber bei Taster Rechts und läuft wieder an bei Taster links

Wenn ich den Motor verkehrt herum starten lasse, dann Dreht sich nix bis ich Taster links drücke

Wenn ich so starte dass der Motor sich mit Geschwindigkeit 255 dreht und bei taster links auf 200 soll, dann startet der Motor schnell wird aber ohne mein Zutun kurze Zeit später langsamer.

Über die Serielle Konsole seh ich dass die tasterinfos ankommen mit Wert 0 und 1

Habe auch mal an der Bridge den anderen Motorausgang probiert - gleiches Ergebnis, andere Bridge: gleiches Ergebnis

Das Ganze läuft auf einem Nano bzw einem Klon.

Kann mir jemand helfen?

Gruß
Michael

Code:
//Schalter Links
int SchalterRechts=2;
int SchalterLinks=3;

bool SchalterRechtsStatus; //Variable für den Taster Rechts
bool SchalterLinksStatus; //Variable für den Taster Rechts

//Gleichstrommotor 1
int GSM1 = 10;
int in1 = 9;
int in2 = 8;


void setup() {
  // put your setup code here, to run once:

  Serial.begin (9600); //Serielle kommunikation starten, damit man sich später die Werte am serial monitor ansehen kann.
  
  pinMode(GSM1, OUTPUT);    
  pinMode(in1, OUTPUT);
  pinMode(in2, OUTPUT);
  
  pinMode(SchalterRechts, INPUT);
  pinMode(SchalterLinks, INPUT);

  SchalterRechtsStatus=false;
  SchalterLinksStatus=false;

//Motor starten
  digitalWrite(in1, LOW);  // Motor 1 beginnt zu rotieren
  digitalWrite(in2, HIGH);
  analogWrite(GSM1, 255);   // Motor 1 soll mit der Geschwindigkeit "255" (max. 255) rotieren

  

}

void loop() {
  // put your main code here, to run repeatedly:

//Button Rechts und Links abfragen
SchalterRechtsStatus=digitalRead(SchalterRechts);
SchalterLinksStatus=digitalRead(SchalterLinks);


Serial.println(SchalterRechtsStatus);
Serial.println(SchalterLinksStatus);
Serial.println("----");

delay(500);

if (SchalterRechtsStatus ==1 )    
   {
  digitalWrite(in1, HIGH);  // Motor 1 beginnt zu rotieren
  digitalWrite(in2, LOW);
  analogWrite(GSM1, 200);   // Motor 1 soll mit der Geschwindigkeit "200" (max. 255) rotieren

}

if (SchalterLinksStatus==1)
  digitalWrite(in1, LOW);  // Motor 1 beginnt zu rotieren
  digitalWrite(in2, HIGH);
  analogWrite(GSM1, 200);   // Motor 1 soll mit der Geschwindigkeit "200" (max. 255) rotieren

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2020, 20:41
Beitrag #2
RE: Motor über L298N Bridge drehen funktioniert nicht
Du musst Dir in einer globalen Statusvariable merken, ob der Motor aktuell steht (0), rechts dreht(1) oder links dreht (2).
Diesen Zustand musst Du in den if-Abfragen mit auswerten.

Dann musst Du klären was wann passieren soll. Das ist auch noch nicht klar.

Wenn der Motor steht und ein Taster gedrückt wird - ok, Richtung.

Was soll aber passieren, wenn der Motor mach rechts dreht und Du links drückst? Dann kann er nicht schlagartig die Richtung ändern. Du musst also bestimmen, was passiert. Wahrscheinlich brauchst Du noch mehr Zustände.

Abbremsen auf Stillstand, Links vorgewählt (bei Rechtslauf) oder rechts vorgewählt (bei Linkslauf). Das hängt auch stark vom mechanischen Aufbau und den zu bewegenden Massen ab.

Für sowas bietet sich dann eine Schrittkette, ein endlicher Automat oder eine State Maschine an. Das sind alles Begriffe für die Suche in Deiner bevorzugten Suchmaschine.
Es gibt dafür viele Beispiele. Wichtig ist, dass Du zuerst das gewünschte Verhalten in allen Einzelheiten definierst. Am Besten auf Papier.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2020, 20:47
Beitrag #3
RE: Motor über L298N Bridge drehen funktioniert nicht
Hatte auch schon versucht bei Tastendruck: Motor stoppen und kurz warten.

Auch ein Beispielsketch der Motoren einfach rumdreht funktioniert nicht. Also muss es ja Hardwareseitig liegen oder?

Vor allem das schnelle starten und ohne mein Zutun das Abbremsen des Motors von 255 auf 200 macht mich stutzig
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
10.11.2020, 21:04
Beitrag #4
RE: Motor über L298N Bridge drehen funktioniert nicht
Na also. wäre doch gelacht gewesen. Wie so oft hat mal eine { und } zu in der Abfrage Schalterlinks Status =1 gefehlt

Funktioniert wie es soll

Danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Variable über serielle Eingabe befüllen ? Foto-Ralf 23 731 21.11.2020 11:23
Letzter Beitrag: Tommy56
  Sensordaten über lokales Netzwerk speichern Dave298 5 223 17.11.2020 09:15
Letzter Beitrag: nbk83
  Simple if Bedingung funktioniert nicht (Anfänger) Maxcruiser 12 647 22.09.2020 16:12
Letzter Beitrag: hotsystems
  Hochladen eines Sketches funktioniert nicht otti123 29 3.363 05.09.2020 15:33
Letzter Beitrag: hotsystems
  Float über I2C zwischen 2 Arduinos UNO Marduino_UNO 23 9.957 18.08.2020 11:53
Letzter Beitrag: hotsystems
  Neo-Pixel über Mail-Inhalte steuern weserjunge 7 735 21.07.2020 19:24
Letzter Beitrag: Tommy56
  Uno startet nicht j.klomfass 4 730 08.07.2020 10:09
Letzter Beitrag: j.klomfass
  Auto mit Kamera über Bluetooth gnagfloW 4 843 19.06.2020 08:23
Letzter Beitrag: gnagfloW
  Arduino Programm funktioniert auf nano nicht Arduino DMX Master 10 1.671 15.06.2020 13:07
Letzter Beitrag: Arduino DMX Master
  DMX Addresirung funktionirert nicht Arduino DMX Master 24 2.246 14.06.2020 15:38
Letzter Beitrag: Tommy56

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste