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
  Bibliothek einbinden funktioniert nicht Maxcruiser 5 121 18.04.2021 21:31
Letzter Beitrag: Tommy56
  Nano. Sketch kann nicht hochgeladen werden 4heiner 4 311 02.04.2021 17:21
Letzter Beitrag: 4heiner
  Programm startet bei Neustart nicht Moritzzz 18 716 02.04.2021 14:06
Letzter Beitrag: Tommy56
  Arduino Ampelschaltung Taster funktioniert nicht fatihakan36 9 708 13.03.2021 22:06
Letzter Beitrag: N1d45
  Library Ethernet: Nicht zu compilieren GuaAck 5 465 22.02.2021 17:31
Letzter Beitrag: Tommy56
  von delay auf millis umgestellt, klappt nur nicht. Servo Geschwindigkeit einstellen. gutschy 8 732 21.02.2021 15:22
Letzter Beitrag: gutschy
  n Bytes über UDP empfangen Igom 5 392 21.02.2021 10:30
Letzter Beitrag: Tommy56
  Arduino über Serielle Schnittstelle rücksetzen Rainer2 5 477 12.02.2021 13:31
Letzter Beitrag: Tommy56
  MMega2560-Clone läßt sich nicht programmieren kpc 8 646 08.02.2021 09:50
Letzter Beitrag: hotsystems
  If-Schleife wird nicht mehr durchlaufen LK2567 2 405 05.02.2021 21:20
Letzter Beitrag: LK2567

Gehe zu:


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