Forum: Mikrocontroller und Digitale Elektronik Arduino: Probleme mit Interrupt bei laufenden Motor


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Johannes (Gast)


Angehängte Dateien:

Lesenswert?

Moin zusammen,

ich habe ein kleines Problem mit meinem Arduino. Ich möchte die Drehzahl 
eines DC Motors mittels Hall Sensor messen. Hierzu zähle ich die Zeit 
zwischen zwei fallenden Flanken (mittels Interrupt an INT0 / D2) Das 
funktioniert soweit auch ganz gut. Allerdings gibt es Probleme sobald 
ich de DC Motor anschließe. Dann wirft der AVR ständig unwillkürlich 
Interrupts (auch wenn ich das Eingangssignal auf Masse setze). Ersetze 
ich den Motor durch einen Widerstand  funktioniert wieder alles wie es 
soll.
Interessanterweise wird der Zustand des Pins bei manueller Auslesung in 
10ms Abstand korrekt angezeigt. Dennoch werden Interrupts geworfen.
Die Schaltung habe ich angehängt, vielleicht habt ihr ja eine Idee :)

Viele Grüße und Dankeschön!

von THOR (Gast)


Lesenswert?

Deine Schaltung hat das Problem, dass der Hall-Sensor fehlt.

von Amateur (Gast)


Lesenswert?

Da Du praktisch keine Informationen zur Schaltung rüberkommen lässt, 
sogar den Hallsensor entfernt hast, würde ich raten: C42 ist zu klein.

Trotzdem ein kleiner Tipp: Rund um Motore gibt immer es sehr viele 
Störungen. Eine extreme Entkopplung der Motorstromversorgung, von der 
des Mikrokontrollers kann nicht schaden. Da Du aber extrem zurückhaltend 
bist, was sinnvolle Informationen betrifft...

von Johannes (Gast)


Lesenswert?

Völlig richtig! Ich habe diese vereinfacht hochgeladen. Wie gesagt 
werden auch Interrupts ausgeführt, wenn der INT0 Port dauerhaft auf 
Masse liegt.

von Matthias S. (Firma: matzetronics) (mschoeldgen)


Lesenswert?

Dein Motor stört die Versorgungsspannung mit Spannungspitzen, die bei 
Bürstenmotoren unvermeidbar sind. Deswegen sollten solche Motoren mit LC 
Kombinationen entstört werden, wie z.B. hier zu sehen:
Beitrag "RC-Servoelektronik für DC-Motor"
10nF können auch 47nF oder 100nF werden.
Zusätzlich ist es sinnvoll, die Betriebsspannung mit einem mittelgrossen 
Elko abzublocken (100µF-470µF).

: Bearbeitet durch User
von Johannes (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank! Ich habe mal die Versorgungsspannung nach gemessen. Da 
sieht man das Problem doch sehr deutlich.
Ich melde mich nochmal sobald ich Ergebnisse habe.
Viele Grüße

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
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.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.