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

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.