ATmega8 mit L298 und Getriebemotor. Es kommt Blödsinn raus!

Gast #213050
Lesenswert?

Hallo

Ich habe einen ATmega mit 16MHz. Es läuft auch alles bestens.

Jetzt habe ich einen L298N mit einem Getriebemotor angehangen.

Er wird auch richtig gedreht aber beim Wechsel zwischen den
Drehrichtungen macht er Blödsinn. Mal wechselt die Richtung nicht, mal
schon. Den L298 habe ich wie im Datenblatt beschrieben angeschlossen.
Auf schnelle Freilaufdioden habe ich auch geachtet.

Baue ich eine Pause nach dem Drehen ein, so klappt der
Richtungswechsel.

Im Anhang mein Quellcode in C.

Kann mir jemand helfen?

MfG
Juedler
Angehängte Dateien:
Gast #213052
Lesenswert?

uint32_t t;
t = 1023;
while(1)
{
   ...
   t-=10;
   if (t<=0)
      ...

-> uint32_t t wird niemals kleiner 0. Und da von 1023 immer 10 pro
Schleifendurchlauf abgezogen wird, wird t auch niemals 0.

Fällt mir nur mal so auf. Eigentlich sollte der Compiler auch eine
Warnung ausgeben.

Gruß
Marco
-
Gast #213053
Lesenswert?

Danke für die Antworten.

Nach Recherche habe ich herausgefunden, dass wahrscheinlich der Motor
nicht entstört ist und somit etwas hohes zum Mikrocontroller schickt.

Meine Frage:
Wie entstör ich meinen Motor? Gibt es da eine Formel wie groß der
Entstörkondensator sein muß? Muß ich auch eine Induktivität in den
Anschluß des Motors bringen?

Das mit den <=0 ist mit unsigned auch möglich, da <0 eine 1 am höchsten
Bit bedeutet. Somit weiß ich wann ein Überlauf war. Ist aber nicht der
Fehler.

Ciao
Juedler
Gast #213054
Lesenswert?

> Das mit den <=0 ist mit unsigned auch möglich, da <0 eine 1 am
> höchsten Bit bedeutet.

Nein. <0 bedeutet kleiner als 0, was bei unsigned nicht möglich ist.
Wenn man statt <= nur < schreibt, sagt gcc dann auch:

warning: comparison of unsigned expression < 0 is always false
Gast #213061
Lesenswert?

oder einfach bipolare Surpressordioden parallel zur Wicklung die eine zu
hohe Spannung kurzschließt egal ob positiv oder negativ.

Die Schaltung wäre von Interesse, den die AVR-Stromversorgung sollte
Imun gegen die Störungen aus der Stromversorgung des Schrittmotors
sein.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren