ROBO Mobile Set mit Arduino
Verfasst: 24 Jan 2015, 11:53
Hallo ft-Gemeinde,
ich bin gerade dabei, das ROBO Mobile Set mit einem Arduino zu "verheiraten":
Anstelle des Robo Interfaces erfolgt die Steuerung über einen Arduino Uno R3 mit Adafruit Motorshield V2, Versorgung über 9V (6 x 1,5 AA-Batterien bzw. Netzteil)
Die beiden Taster an den Motoren (quasi die "Ersatz-Encoder") sind jeweils an einen Digitaleingang (interner PullUp aktiviert) und an GND des Uno angeschlossen, die Impulse (jeweils die wechselnden Flanken) werden über die beiden externen Interrupts des Uno gezählt.
Allerdings - und nun zum Problem - werden auch Interrupts ausgelöst (also Impulse gezählt), wenn der Taster gar nicht betätigt wird.
Meine verschiedensten Versuch haben folgendes ergeben:
- die Interrupte werden nur dann ausgelöst, wenn mindestens einer der beiden Power-Motoren läuft
- wenn ich statt eines Power-Motors einen MiniMot1 oder sogar einen alten 6V-Motor (ein "Grauer") anschließe, gibt es keine unerwünschten Interrupts
- frage ich die Impulse in der Loop des Uno-Sketches ab (polling), erhalte ich einwandfreie Werte (inkl. softwareseitiger Entprellung) auch bei laufenden Motoren
Daraus ergeben sich für mich folgende Fragen:
- Sind die im Robo Mobile Set verwendeten Motoren solche Störquellen, die in die elektronische Schaltung des Uno ausstrahlen?
- Ist das bei allen Power-Motoren der Fall, sprich: Hat schon jemand ein vergleichbares Problem mit diesen Motoren erlebt oder davon erfahren? Oder könnte ein Austausch beider Motoren Besserung bringen?
- und das wichtigste: Wie kann ich dieses mein Problem lösen?
Auf der HP von Adafruit wird empfohlen, am Motor zwischen den Anschlüssen einen 0,1uF Kondensator einzulöten. Ein testweiser Anschluss eines solchen Kondensators brachte allerdings keine spürbare Verbesserung. Kann es tatsächlich helfen, auch jeweils zwischen den Anschlüssen und dem Motorgehäusen so einen Kondensator anzulöten? Gibt es auch andere Möglichkeiten?
Über sachdienliche und zielführende Hinweise und Anmerkungen würde ich mich sehr freuen! Vielen Dank im Voraus!
Bei Bedarf stelle ich natürlich den Code gern zur Verfügung.
Herzliche Grüße
Thomas
ich bin gerade dabei, das ROBO Mobile Set mit einem Arduino zu "verheiraten":
Anstelle des Robo Interfaces erfolgt die Steuerung über einen Arduino Uno R3 mit Adafruit Motorshield V2, Versorgung über 9V (6 x 1,5 AA-Batterien bzw. Netzteil)
Die beiden Taster an den Motoren (quasi die "Ersatz-Encoder") sind jeweils an einen Digitaleingang (interner PullUp aktiviert) und an GND des Uno angeschlossen, die Impulse (jeweils die wechselnden Flanken) werden über die beiden externen Interrupts des Uno gezählt.
Allerdings - und nun zum Problem - werden auch Interrupts ausgelöst (also Impulse gezählt), wenn der Taster gar nicht betätigt wird.
Meine verschiedensten Versuch haben folgendes ergeben:
- die Interrupte werden nur dann ausgelöst, wenn mindestens einer der beiden Power-Motoren läuft
- wenn ich statt eines Power-Motors einen MiniMot1 oder sogar einen alten 6V-Motor (ein "Grauer") anschließe, gibt es keine unerwünschten Interrupts
- frage ich die Impulse in der Loop des Uno-Sketches ab (polling), erhalte ich einwandfreie Werte (inkl. softwareseitiger Entprellung) auch bei laufenden Motoren
Daraus ergeben sich für mich folgende Fragen:
- Sind die im Robo Mobile Set verwendeten Motoren solche Störquellen, die in die elektronische Schaltung des Uno ausstrahlen?
- Ist das bei allen Power-Motoren der Fall, sprich: Hat schon jemand ein vergleichbares Problem mit diesen Motoren erlebt oder davon erfahren? Oder könnte ein Austausch beider Motoren Besserung bringen?
- und das wichtigste: Wie kann ich dieses mein Problem lösen?
Auf der HP von Adafruit wird empfohlen, am Motor zwischen den Anschlüssen einen 0,1uF Kondensator einzulöten. Ein testweiser Anschluss eines solchen Kondensators brachte allerdings keine spürbare Verbesserung. Kann es tatsächlich helfen, auch jeweils zwischen den Anschlüssen und dem Motorgehäusen so einen Kondensator anzulöten? Gibt es auch andere Möglichkeiten?
Über sachdienliche und zielführende Hinweise und Anmerkungen würde ich mich sehr freuen! Vielen Dank im Voraus!
Bei Bedarf stelle ich natürlich den Code gern zur Verfügung.
Herzliche Grüße
Thomas