Arduino: Probleme mit Interrupt bei laufenden Motor

Gast #4811822
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!
Angehängte Dateien:
Gast #4811852
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...
(Firma: matzetronics) #4811863
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).

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