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
Big Grin Gemeinsame Nutzung Servo und TimerOne nicht möglich? HolgerM 5 139 Gestern 06:28
Letzter Beitrag: N1d45
  Canon-Kamera über WLAN auslösen ingo46 5 326 03.07.2021 17:15
Letzter Beitrag: ingo46
  warum läuft der Timer 6min und nicht 5? Peff 27 1.675 19.06.2021 19:39
Letzter Beitrag: Tommy56
  Nano. Sketch kann nicht hochgeladen werden 4heiner 10 1.313 26.05.2021 20:56
Letzter Beitrag: Tommy56
  Wert in EEprom schreiben über Node red shorty111 8 767 20.05.2021 20:39
Letzter Beitrag: Bitklopfer
  L293D DC Motor mindtrip 10 914 13.05.2021 15:13
Letzter Beitrag: Tommy56
  Bibliothek einbinden funktioniert nicht Maxcruiser 5 747 18.04.2021 21:31
Letzter Beitrag: Tommy56
  Programm startet bei Neustart nicht Moritzzz 18 1.714 02.04.2021 14:06
Letzter Beitrag: Tommy56
  Arduino Ampelschaltung Taster funktioniert nicht fatihakan36 9 1.355 13.03.2021 22:06
Letzter Beitrag: N1d45
  Library Ethernet: Nicht zu compilieren GuaAck 5 853 22.02.2021 17:31
Letzter Beitrag: Tommy56

Gehe zu:


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