Merkwürdiges Phänomen: Ich habe einen L293D (auf einem Breadboard) mit dem Arduino verbunden. An den L293D ist ein (kleiner) Motor angeschlossen, den ich bidirektional betreibe. Der Motor wird alle 40ms für 20ms (mit 5V) angesteuert. Am Ende der spannungslosen 20ms messe ich mittels der Analogeingänge A0 und A1 die vom Motor (im Leerlauf) erzeugte Spannung. "A0" ist mit dem einen Anschluss des Motors, und "A1" mit dem Anderen verbunden. Dadurch kann ich feststellen, in welche Richtung sich der Motor dreht (die Drehrichtung kann durch äussere Kräfte der Ansteuerung entgegenwirken, daher muss ich die vom Motor erzeugte Spannung messen, um festzustellen in welche Richtung sich der Motor dreht)! Mit Stromversorgung über USB funktioniert die Messung einwandfrei. Wenn ich den ARDUINO aber mit einem Netzteil mit Strom versorge, und keine USB-Verbindung besteht, liefert der A/D-Wandler unbrauchbare Werte! Ich habe dann die gleiche Schaltung (Spannungsregler + Atmega 328P + L293D + ...) komplett auf einem Breadboard aufgebaut , so dass kein ARDUINO mehr benötigt wird. Auch hier liefert der A/D-Wandler (mit demselben Programm wie vorher) unbrauchbare Werte. Nach ein wenig Tüftelei habe ich dann herausgefunden, dass eine Verbindung der Breadboard Masse mit der Arduino Masse (bei bestehender USB-Verbindung des ARDUINOS) ausreicht um einwandfreie Messergebnisse zu bekommen. Es handelt sich also um ein "Masse-Problem". Nachdem ich dieses festgestellt hatte, habe ich die Breadboard-Masse anstatt mit der ARDUINO-Masse mit dem Schutzkontakt einer Netzsteckdose verbunden, und siehe da, dass Programm läuft einwandfrei! Kann mir jemand sagen, wo das Problem mit der Netzteil Masse ist? Ich habe verschiedene Netzteile ausprobiert, immer dasselbe negative Resultat bei Verwendung von ausschließlich der Netzteil Masse!
MichaDi schrieb: > Kann mir jemand sagen, wo das Problem mit der Netzteil Masse ist? Schaltplan zeigen. Mit was versorgst du deine Schaltung?
...Spannunsregler LM1117 (5V) (auch 7805 ausprobiert), versorgt mit 7.5V (auch 9V und 12V ausprobiert)!
MichaDi schrieb: > Foto_Breadboard.jpg Sind diejenigen Leitungen im Breadboard, die für die Stromversorgung da sind, durchverbunden? Es gibt nämlich Unterschiede... http://media.tumblr.com/tumblr_lme4egdwf71qf00w4.png Falls nicht verbunden(seen on hackaday): http://www.protostack.com/blog/2011/09/8-breadboard-hacks/ mfg mf
Mess mal mit dem Multimeter durch, ob die Leitungen durch das ganze Breadboard gehen. Bei mir gehen die jeweils nur zur Mitte und deswegen hab ich die immer mit Drähten durchverbunden.
Hinweis: Ich habe AVcc direkt (ohne Low-Pass Filter, da ich keine Drossel zur Hand habe) mit Vcc verbunden!
MichaDi schrieb: > Es handelt sich also um ein "Masse-Problem". Nur hast du kein Problem mit der Masse, sondern ohne... ;-) Ich würde bei diesem Aufbau eher ein elementares EMV-Problem vermuten: Ich kann keinen einzigen Entkopplungskondensator sehen, und der Laststrom fließt geradeaus über die Versorgung des uC. Zudem hast du keinerlei Filtermaßnahmen vor den AD-Eingängen... :-o Probier mal das: sind deine AD-Werte konstant, wenn der Motor nicht läuft?
...nein, die Werte sind nicht konstant wenn der Motor nicht läuft und nur das Netzteil angeschlossen ist! Sobald ich die Breadboard-Masse aber mit einer zusätzlichen Masse verbinde sind die Werte konstant!
...Vcc2 des L293D mit einem separaten Spannungsregler zu versorgen bringt auch nichts! Hab' gerade Drosseln bestellt, um einen Tiefpassfilter für AVcc zu realisieren, vielleicht hilft das!?
vielleicht hat der USB-Port irgend eine Schutzmaßnahme z.B: Überspannungsschutz...der deinen Aufbau unterstützt.
MichaDi schrieb: > Hab' gerade Drosseln bestellt, um einen Tiefpassfilter für AVcc zu > realisieren, vielleicht hilft das!? Nein. Ich habe etliche uC ohne Spule am Avcc problemlos auch mit ADC am Laufen. Dein Problem liegt woanders. MichaDi schrieb: > die Werte sind nicht konstant wenn der Motor nicht läuft Ohne Witz: woran siehst du das? Du hast keine Anzeige in deinem Aufbau...
kommt ganz auf den Aufbau an. Wenn der Motor auch vom Spannungsregeler versorgt wird kann ein ordentlicher Aufbau z.B: Drosseln möglichst nah an VCC und AVCC ganz schon was helfen.
Thomas O. schrieb: > vielleicht hat der USB-Port irgend eine Schutzmaßnahme z.B: > Überspannungsschutz...der deinen Aufbau unterstützt. ...es reicht auch eine Verbindung (wie oben erwähnt) der Breadboard-Masse mit dem Schutzkontakt einer Netzsteckdose!
Lothar Miller schrieb: > Ohne Witz: woran siehst du das? Du hast keine Anzeige in deinem > Aufbau... ...ich habe eine Abfrage programmiert, bei welcher ich eine LED leuchten lasse wenn der Wert von "A0" (an einem der Motoranschlüsse) größer ist als der Wert von "A1" (an dem anderen Motoranschluss)! Mit zusätzlicher Masse leuchtet die LED wenn ich den Motor mit der Hand in eine Richtung drehe, und die LED erlischt, wenn ich den Motor in die andere Richtung drehe! Wenn der Motor steht leichtet die LED nicht! Ohne zusätzliche Masse blinkt die LED ungleichmäßig auch bei stehendem Motor und auch bei drehendem Motor ist kein Bezug der LED zur Drehrichtung zu erkennen!
...hab's jetzt mit Tiefpassfilter (Kondensator[100nF] und Spule[10microH]) an AVcc probiert, aber keine Besserung!
...auch wenn das hier in einen Monolog ausartet, möchte ich noch erwähnen, dass ich herausgefunden habe, dass sich das Massekabel eines Schweissgerätes ideal eignet um die Masse der Schaltung mit einer Heizung zu verbinden! Da fast in jeder Umgebung Heizungen in der Nähe sind halte ich diese Lösung für praxisnah!?
MichaDi schrieb: > habe ich die > Breadboard-Masse anstatt mit der ARDUINO-Masse mit dem Schutzkontakt > einer Netzsteckdose verbunden, Das ist ja zum Haareausreissen. Überlege das doch bitte nochmal. Vielleicht klappt es ja auch wenn du einen Finger in die nase steckst. (Spassmodus) k.
PROBLEM GELÖST: Nachdem ich vergeblich versucht habe die Signalstörungen zu beseitigen, habe ich das Programm so geändert, dass es jetzt den analogen Komparator anstelle des A/D-Wandlers nutzt, und siehe da, alles funktioniert wie gewünscht!
Klaus De lisson schrieb: > Das hat jetzt keiner verstanden. ...ich will ja nur die Drehrichtung des Motors feststellen, da brauche ich keine exakten Werte, sondern nur eine Abfrage, ob Signal a (einer der Motoranschlüsse) größer ist als Signal b (der andere Motoranschluss)!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.