Hi, Ich bin neu hier im FOrum, bisher habe ich mich hauptsächlich im Arduino Forum schlau gemacht, aber leider komme ich da mit meinem THema nicht mehr weiter. Darum hoffe ich hier auf Hilfe :) Mein Projekt: 4fach Dosierpumpe mit Arduino Steuerung- Ich fang mal kurz mit meinem Projektaufbau an: 1) Ansteuerung über einen Arduino (4x PWM) 2) Hinter jedem PWM AUsgang habe ich einen Optokoppler 4n35 (mit 280 ohm Vorwiderstand)an PIN 1 und und GND an PIN 2. PIN 3 bleibt leer 3) Auf der AUsgangsseite: PIN 6 bleibt leer. AN PIN 5 führe ich ein 5V Signal zu. An PIN 4 steckt das Steuersignal, welches an das Motorshield führt. 4) Als Motorshield nutze ich dieses: http://schmelle2.de/wp/arduino/shields/jumping-ball , basiert auf einem MOSFET IRLIZ 44N. 5) Betriebsspannung am Motorshield ist 24V. 6) Mittels diesem Teil http://www.ebay.de/itm/121304926751?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2648 krieg ich aus den 24V die 5V Spannung für Punkt 3) 7) Diese Motoren (DOsierpumpen nutze ich) http://www.ebay.de/itm/24V-Schlauchpumpe-Dosierpumpe-Peristaltikpumpe-2-4-l-h-incl-Silikonschlauch-/350878367970?pt=Pumpen&hash=item51b1fb00e2 24V, ca 70mA Kurz ein paar Erläuterungen: Ich habe die PUmpe ursprünglich ohne Optokoppler geplant. Leider habe ich beim Einschalten der PUmpen immer wieder AUsfälle an meinem Arduino erlebt. (Absturz). Da Beim Schalten von Motoren hohe STröme fließen ließ sich das ja auf grund des gemeinsamen GND Signals ganz leicht darauf zurückführen. ALso habe ich die Motoren versucht zu entstören: http://www.google.de/imgres?imgurl=http%3A%2F%2Fwww.modellbau-weissensee.de%2Ftechnik%2Fbilder%2Fspeed_entstoerung.gif&imgrefurl=http%3A%2F%2Fwww.modellbau-weissensee.de%2Ftechnik%2Fseiten%2Fmotorentstoerung.htm&h=232&w=170&tbnid=ZxdHj5Qr5FJR4M%3A&zoom=1&docid=Hxi0PPy0X70JLM&ei=FFBCU_OhHKv9ygO5uYCIBg&tbm=isch&client=firefox-a&iact=rc&dur=554&page=1&start=0&ndsp=25&ved=0CFsQrQMwAQ Trotzdem immer noch die Abstürze. Also habe ich mich entschieden, es mit einem Optokoppler zu probieren und somit zwei galvanisch getrennte Stromkreise zu nutzen. Leider habe ich immer noch das Problem, dass wenn ein Motor anspringt, sofort der ARduino abschmiert. Das habe ich mit anderen Motoren leider nicht erlebt. Daher bin ich nun hier im Forum angemeldet, in der Hoffnung dass ihr mir irgendwie helfenkönnt. Wenn noch Details fehlen, gerne fragen. Ich versuche alles zu liefern was ich hab ;) Besten Gruß und Danke Thorsten
Netzteile mit schwacher Brust ? Gemeinsame Masse oder nicht ?
Hi, am Netzteil kann es nicht liegen. Zum einen laufen die Motoren problemlos wenn ich sie direkt mit dem Netzteil verbinde. Zudem hat das 24V Netzteil >1A Leistung (genau grad nicht im Kopf) und ein Motor zieht nur 70mA. Arduino und Motoren haben keine gemeinsame Masse. Wie beschrieben nutze ich dazu einen OPtokoppler. Gruß
Thorsten Drücker schrieb: > 4) Als Motorshield nutze ich dieses: > http://schmelle2.de/wp/arduino/shields/jumping-ball , basiert auf einem > MOSFET IRLIZ 44N Da ich den Schaltplan nicht kenne, solltest Du überprüfen, ob Dein "Shield" Frielaufdioden o.ä. zur Unterdrückung der Störspannungen der Motoren hat. > Leider habe ich beim Einschalten der PUmpen immer > wieder AUsfälle an meinem Arduino erlebt. (Absturz). Da Beim Schalten > von Motoren hohe STröme fließen ließ sich das ja auf grund des > gemeinsamen GND Signals ganz leicht darauf zurückführen. Wenn der "Ground" korrekt verdrahtet wurde, dürfte das nicht der Grund sein. > Leider habe ich immer noch das Problem, Also lags anscheinend nicht an fehlenden OKs. Wichtig wären komplette Schaltpläne der Motoransteuerung. Und ich möchte mir nur für Deine Schaltpläne auch nicht extra einen Adler anschaffen. Gruss Harald
Thorsten Drücker schrieb:> > Zudem hat das 24V Netzteil >1A Leistung (genau grad nicht im Kopf) > ein Motor zieht nur 70mA. Beim Anlauf zieht ein Motor typisch den zehnfachen Strom. Gruss Harald
Hi, anbei der Schaltplan: - statt dem IRF540 wurde wie gesagt der IRLIZ verwendet - Durchlaufdiode natürlich vorhanden - wird statt12v mit 24v betrieben - Mein Elko hat übrigen nur eine Kapazität von 2200uF, dafür ist er bis 30V belastbar. Was den Anlaufstrom betrifft: das Zehnfache wären 700 mA. Da müsste ich locker mit meinem Netzteil hinkommen. Ich lasse NIE zwei MOtoren parallel anlaufen. Zwei Dinge die mir übrigens noch aufgefallen sind: 1) das PWM Signal wird über den Optokoppler nicht richtig übertragen. Letztendlich kann ich nur HIGH oder LOW schalten. 2) Das Netzteil liefert ca 27V. Aber so wie ich das sehe sind alle Bauteile dafür ausgelegt, zumal ich das Problem bei 12V ebenfalls hatte. Bisher alles sehr ernüchternt - muss ich wohl die STeuerung noch mal auseinanderbauen :( Spätestens mit den Optokopplern dürfte doch eigentlich (Selbst wenn das Motorshield nicht korrekt ist oder sehr hoher Laststrom erzeugt wird) kein Einfluss auf den Arduino passieren?????? Das ist eigentlich das, was ich nicht verstehe!
Thorsten Drücker schrieb: > muss ich wohl die STeuerung noch mal auseinanderbauen :( Das macht wenig Sinn. Versuche lieber, an der vorhandenen Schaltung den Fehler zu finden. Dazu ist es zweckmäßig, jede Baugruppe einzeln zu überprüfen. Gruss Harald
Thorsten Drücker schrieb: > Arduino und Motoren haben keine gemeinsame Masse. Wie beschrieben nutze > ich dazu einen OPtokoppler. Thorsten Drücker schrieb: > anbei der Schaltplan: Auf diesem sehe ich keine Optokoppler. Wie hast du diese Verschalten? P.S. Bitte kein Prosa Schaltplan.
Hi, im Anhang eine Skizze der OK Schaltung. Einen kompletten Schaltplan habe ich leider nicht. Wie oben beschrieben: 5v Signal liegt am Optokoppler an, am Emitter führt das SIgnal zur Motortreiber (siehe Schaltplan oben, D3, D9, D10 oder D11) Für mich steht eigentlich nicht die Motorschaltung im Raum, die funktioniert weil ich sie schon mit diversen anderen Motoren getestet hatte. Und selbst wenn nicht - wie können technische Probleme auf den ARduino umschlagen, wenn beide Stomkreise voneinander getrennt sind?? Hier muss doch ein Problem mit entweder dem Optokoppler oder ein Masse Problem vorliegen? Die Masse habe ich mit einem Multimeter geprüft - keinerlei Anschlag wenn ich die Masse beider Stromkreise verbinde. ALso sollte eigentlich alles in Ordnung sein...oder? VG
:
Bearbeitet durch User
Thorsten Drücker schrieb: > im Anhang eine Skizze der OK Schaltung. Wenn der Optokoppler wirklich zwischen +5V und GND ist, macht er einen Kurzschluss. > Einen kompletten Schaltplan habe ich leider nicht. Dann hilft nur eines: Zeichnen. Wenn du keinen Schaltplaneditor hast, geht es auch mit Stift und Papier. > ALso sollte eigentlich > alles in Ordnung sein...oder? Das kann man ohne vollständigen Schaltplan nicht sagen.
:
Bearbeitet durch User
Hi, per Hand geht grad mal am schnellsten - mit Eagle ist für das kleine Ding nicht notwendig. Hoffe es ist leserlich und ich habe keinen Fehler eingezeichnet! Beste Grüße THorsten
Thorsten Drücker schrieb: > Hoffe es ist leserlich und ich habe keinen Fehler eingezeichnet! Aber die Freilaufdiode ist immer noch falsch: die gehört parallel zum Motor und nicht parallel zum MOSFET. Gruß Dietrich
Hi Dietrich, danke Dir - werde ich mal prüfen. Ggfs. werde ich einfach eine zusätzlich am Motor anbringen. Das habe ich aber auch schon alles gemacht und hat nichts gebracht. Aber selbst wenn: das löst nicht das Problem, dass eine Störung am Motorstromkreis AUswirkungen auf den Steuerstromkreis hat. Gruß
Das heisst du hast ein eigenes 5V Netzteil für den Arduino und ein 24V Netzteil für die Motoren? Und nur die Optokoppler Verbindung vom Arduino zu dem Leistungsteil? Der DC/DC Wandler mit 5V Ausgang versorgt jetzt nicht zufällig den Arduino? Der Arduino hat ein separates 5V Netzteil?
Hi, genau - der Arduino hat ein eigenes Netzteil. SOllte eigentlich 100% galvanisch getrennt sein.
@ Thorsten Drücker (thorsten_1976)
>Hoffe es ist leserlich und ich habe keinen Fehler eingezeichnet!
Doch. Der Irrglaube, mit einem popeligen Optokoppler ala 4N35 eine
MOSFET auch nur ANSATZWEISE gescheit ansteuern zu können.
Wer zieht das Gate auf 5V? Der Optokoppler mit schlaffen ~7mA (CTR 50%
oder so).
Wer zieht das Gate wieder auf 0V? Ein 100k Widerstand! Bei angenommenen
1nF Eingangskapazität sind das schlaffe 100us Zeitkonstante, wegen der
Plateauphase beim MOSFET sind das vielleicht 200-500us. Aua.
Im einfachsten Fall läßt man den Angsoptokoppler weg und steuer den Logi
Level MOSFET direkt per Arduino an. Das geht sehr gut und ist auch
sicher, wenn gleich nicht idiotensicher.
Jo. 100k -> 10k ändern ist sinnvoll. Daß jetzt immer noch der uC aussteigt, dürfte eher am Aufbau liegen. Also die Anordnung der Drähte mal darauf optimieren, daß Strom-rein und Strom-raus parallel geführt wird. Notfalls mit zweiadriger Leitung statt Einzeladern. Und mach die 1N5400 aus der falschen Stelle raus und stattdessen zwischen 12V und Ausgang. Noch besser wäre eine UF4007 oder irgendeine Schottkydiode.
:
Bearbeitet durch User
Falk Brunner schrieb: > Im einfachsten Fall läßt man den Angsoptokoppler weg und steuer den Logi > Level MOSFET direkt per Arduino an. Das geht sehr gut und ist auch > sicher, wenn gleich nicht idiotensicher. Hallo Falk, das Problem ist, dass ich ja auch ohne Optokoppler die Probleme hatte, dass der Arduino aussteigt. Ich habe übrigens auch schon mit dem Adafruit Motorshield (http://www.adafruit.com/products/81) getestet und das hat auch nicht geklappt. Komischerweise habe ich die Probleme nur mit diesem Motor da hier deutlich mehr Kraft als bei den anderen Pumpen die ich tetstet habe, verwendet werden muss. > Jo. 100k -> 10k ändern ist sinnvoll. Daß jetzt immer noch der uC > aussteigt, dürfte eher am Aufbau liegen. Also die Anordnung der Drähte > mal darauf optimieren, daß Strom-rein und Strom-raus parallel geführt > wird. Notfalls mit zweiadriger Leitung statt Einzeladern. An welcher Stelle genau meinst Du? > Und mach die 1N5400 aus der falschen Stelle raus und stattdessen > zwischen 12V und Ausgang. Noch besser wäre eine UF4007 oder irgendeine > Schottkydiode. Meinst Du direkt an den Pumpen?
Thorsten Drücker schrieb: > das Problem ist, dass ich ja auch ohne Optokoppler die Probleme hatte, > dass der Arduino aussteigt. Angeblich mit OK aber auch, was deutlich zeigt, das der OK da keinen Einfluss hat. > Meinst Du direkt an den Pumpen? Natürlich, denn sonst hast Du für Deinen HF-Sender auch noch eine längere Antenne. Gruss Harald
@ Thorsten Drücker (thorsten_1976) >das Problem ist, dass ich ja auch ohne Optokoppler die Probleme hatte, >dass der Arduino aussteigt. Ich habe übrigens auch schon mit dem >Adafruit Motorshield (http://www.adafruit.com/products/81) getestet und >das hat auch nicht geklappt. Dann liegt dein Problem woanders. Netzteil bricht ein, ungünstige Masseverbindungen, Wackelkontakte, etc. > Komischerweise habe ich die Probleme nur >mit diesem Motor da hier deutlich mehr Kraft als bei den anderen Pumpen >die ich tetstet habe, verwendet werden muss. Also scheint es mit höheren Strömen zusammenzuhängen. Poste ein Bild von deinem Aufbau unter Beachtung der Bildformate.
Thorsten Drücker schrieb: >> Jo. 100k -> 10k ändern ist sinnvoll. Daß jetzt immer noch der uC >> aussteigt, dürfte eher am Aufbau liegen. Also die Anordnung der Drähte >> mal darauf optimieren, daß Strom-rein und Strom-raus parallel geführt >> wird. Notfalls mit zweiadriger Leitung statt Einzeladern. > An welcher Stelle genau meinst Du? Versuche, den bei deinem Plan eingezeichneten 100k Widerstand auf 10k zu ändern. Das ist der zwischen Gate und Masse. Es ist notwendig, daß stromführende Kreise nur wenig Luft umschließen. Daher statt irgendwelcher Einzeldrähte immer zweiadrige Leitungen zu den Motoren sowie zwischen 24V-Versorgung und Schaltplatine bzw. Steckbrett. >> Und mach die 1N5400 aus der falschen Stelle raus und stattdessen >> zwischen 12V und Ausgang. Noch besser wäre eine UF4007 oder irgendeine >> Schottkydiode. > Meinst Du direkt an den Pumpen? Auf der Platine mit den Transistoren. Da enden ja die 2-adrigen Kabel von deinen Pumpen, oder? Die 4700uF können dann Transienten auffangen, die beim Ausschalten entstehen. Mit den langsamen 1N5400 ist da wenig geholfen, die haben je nach Hersteller eine hohe Schaltzeit und eine hohe Eigenkapazität. Solche Dioden sind eher für normale Gleichrichter geeignet.
Alles klar, werde 1) mir dann mal 4 von den uf4007 bestellen und diese auf Platinenseite zwischen die beiden Motorpole löten. Die aktuellen Dioden werde ich auslöten. Was ist sinnvoller: DIode direkt am Motor oder direkt an der Platine wo der Motor angeschlossen wird? 2) die ganzen Kabel austauschen - mit 0.8mm Querschnitt dürfte passen oder? Ich glaube sogar, dass ich aktuell nen recht dünnen Querschnitt nutze 3) den 100k durch einen 10k Widerstand ersetzen offene Fragen: 1) Was mach ich mit dem Optokoppler? Besser direkt aus der Schaltung raus und direkt mit dem Arduino ansteuern? 2) Reicht ein ELKO mit 2200 uF oder sollte es besser einer mit 4700uF sein? Meine vorhandenen mit 4700uF können nur bis 16v, da ist mir leider schon einer geplatzt da ich nicht drauf geachtet habe. 3) Eine Frage noch zur Entstörung der Motoren (http://www.modellbau-weissensee.de/technik/seiten/motorentstoerung.htm): Ich habe bisher nur einen 0.1uF Kondensator zwischen die beiden Motorpole gelötet. WIe im Link gezeigt konnte ich keine KOndensatoren von jedem Pol an das Motorgehäuse löten, da der Zinn nicht hält. Ist das notwendig und wenn ja, habt ihr einen Tipp zum Löten? Ist 0.1uF ausreichend? 4) Wenn ich eh die Schaltung umbauen muss: Könnt ihr mit einen anderen MOSFET empfehlen oder fahre ich mit dem schon ganz gut? Wenn ich dann noch Probleme habe, werde ich mal den Aufbau fotografieren. Im Anhang zunächst noch mal ein Update vom Schaltplan. Besten Dank schon mal Gruß Thorsten
:
Bearbeitet durch User
Die Freilaufdiode ist verpolt. So hast du einen schönen Kurzschluss, wenn der FET schaltet.
Max H. schrieb: > Die Freilaufdiode ist verpolt. So hast du einen schönen Kurzschluss, > wenn der FET schaltet. oops - hast Recht...hab ich bei mir korrigiert (Werd aber nicht erneut den Schaltplan hochladen)
@ Thorsten Drücker (thorsten_1976) >1) mir dann mal 4 von den uf4007 bestellen und diese auf Platinenseite >zwischen die beiden Motorpole löten. Unsinn. Bei einem Einquadratensteller reicht EINE Freilaufdiode, wenn man sie nicht verpolt ;-) Motoransteuerung mit PWM >auslöten. Was ist sinnvoller: DIode direkt am Motor oder direkt an der >Platine wo der Motor angeschlossen wird? Platine. >2) die ganzen Kabel austauschen - mit 0.8mm Querschnitt dürfte passen >oder? Reicht für 70mA locker. >3) den 100k durch einen 10k Widerstand ersetzen Ist nicht wesentlich, wenn der Arduino den MOSFEt direkt ansteuert. >1) Was mach ich mit dem Optokoppler? Besser direkt aus der Schaltung >raus und direkt mit dem Arduino ansteuern? Ja. >2) Reicht ein ELKO mit 2200 uF Ja. >oder sollte es besser einer mit 4700uF >sein? Nicht nötig. >Meine vorhandenen mit 4700uF können nur bis 16v, da ist mir leider schon >einer geplatzt da ich nicht drauf geachtet habe. Logisch. Bei 24V Betriebsspannung nimmt man einen 35V Typen. >Ich habe bisher nur einen 0.1uF Kondensator zwischen die beiden >Motorpole gelötet. Falsch. Das geht bei PWM nicht. >notwendig und wenn ja, habt ihr einen Tipp zum Löten? Ist 0.1uF >ausreichend? Weglassen! >4) Wenn ich eh die Schaltung umbauen muss: Könnt ihr mit einen anderen >MOSFET empfehlen oder fahre ich mit dem schon ganz gut? Der ist OK.
Super dann hab ichs ja fast. Bzgl.: >> Ich habe bisher nur einen 0.1uF Kondensator zwischen die beiden >> Motorpole gelötet. > Falsch. Das geht bei PWM nicht Soll ich dann den Cap wieder entfernen und lediglich die Freilaufdiode nutzen? Was wenn ich ohne PWM arbeite (HIGH und LOW). DAnn besser dran lassen?
Hauptsache Zwillingsleitung oder verdrillte Einzeladern. Bei den paar mA braucht's keinen besonders großen Querschnitt. Es ist halt nur wichtig, daß du keine großartigen "sendenden" Leiterschleifen erzeugst. 1x 100n direkt am Motor reicht aus gegen das Bürstenfeuer. Die Kondensatoren zum Gehäuse helfen eher bei Modellbauanwendungen, wo ein Empfänger gestört werden kann. Die Löschdioden, der Elko, und der schaltende Mosfet gehören nah beieinander. Da die Dioden die Schaltung auch vor der Leitungsinduktivität schützen sollen, kommen die auf die Platine. Deine 2200uF werden wohl reichen. Besonders, wenn du die 4 Pumpen nicht genau gleichzeitig schaltest. Wenn du ohne Optokoppler direkt schaltest, kannst du gut mit dem Widerstand zwischen Controller und dem Gate experimentieren. Brauchbare Werte dürften zwischen 100 Ohm und 1k sein. Experimentell den Wert so einstellen, daß die Transistoren sich mit deinem laufenden Programm bei PWM noch nicht nennenswert erwärmen und Radiostörungen möglichst gering sind. Entstörmaßnahmen an einfachen Schaltstufen lassen sich häufig gut überprüfen mittels eines Radios auf Langwelle oder Mittelwelle. Je besser aufgebaut wird, um so weniger hörst du.
Eine Frage noch: Die einfache Schaltungsvariante mit 1-Quadrantensteller aus diesem ARtikel https://www.mikrocontroller.net/articles/Motoransteuerung_mit_PWM reicht für mein Vorhaben aus, ja? Die weiteren Schaltungen sind eher für Motorenschaltungen wo höherer Strom ins SPiel kommt? BG THorsten
Und da fällt mir doch noch mal was ein: Auf der Suche nach Radiostörungen kam ich auf diesen Beitrag: http://www.arduino-tutorial.de/2010/08/elektromotor/ >Zusätzlich erzeugen Elektromotoren hochfrequente Störungen, die z.B. Funksignale im Umfeld stören können. Kann es sein, dass hier die FUnkstöungen vorliegen, die Auswirkungen auf mein XBEE Shield haben, welches widerrum mit dem Arduino verbunden ist und ihn somit zum Ausfall führen? Das XBEE Shield sowie auch der Arduion selbst sind sehr nah am Motor in einem Kasten verbaut. Nur ein Gedanke, aber ich versuche halt, jeder erdenklichen Fehlerquelle nachzu gehen.
@ Thorsten1976 (Gast) >Kann es sein, dass hier die FUnkstöungen vorliegen, die Auswirkungen auf >mein XBEE Shield haben, welches widerrum mit dem Arduino verbunden ist >und ihn somit zum Ausfall führen? Stören ja, ein Ausfall/Abstirz ist eher unwahrscheinlich, es sein denn, deine Software ist so grottig, dass sie bei der kleinsten Fehlübertragung abstürzt . . . Um den Fehler einzukreisen muss man eines systematische Fehlersuche betreiben. Schreibe ein Testprogramm, das auf ein Minimum reduziert ist und steuere damit die Pumpe.
Hallo,
die Dioden sind eingetroffen.
habe mir direkt ne neue Platine auf lochraster gelötet, das ganze an
einen Arduino Nano gelötet.
Als Widerstände habe ich nen 150ohm und 10kOhm genommen.
Diode wie oben empfohlen.
2200uF ELko (35v) sowie die IRLIZ.
Optokoppler habe ich entfernt.
RTC und XBEE hängen noch mit dran.
Alle Komponenten haben natürlich ein gemeinsames GND.
Es ist besser geworden als vorher aber leider habe ich immer noch
Probleme.
Was mir vor allem auffällt, ist dass Motor 1 deutlich stabiler läuft als
Motor 4.
Was kann ich denn noch machen? PWM Softanlauf? Wie soll der denn dann
starten? In der Regel bewegt sich der Motor erst ab einem gewissen PWM
Wert.
Soll ich also mit 0,1,2,....255 laufen lassen oder dann ab dem PWM Wert,
wo der Motor sich dreht (100,101,102,....255).
Wie schnell darf die Schleife ablaufen? Alles in 1-2 Sekunden um von 0
auf 255 durchzustarten?
Obs was bringt.......
So langsam verzweifel ich - dachte echt die Diode bringt mich hier
weiter.
VG
Thorsten
PS:
> Kasten erden !
Das Gehäuse ist aus Hartschaum/PVC. ICh denke, da kann man nichts erden
oder? Das Zeug leitet ja null.
:
Bearbeitet durch User
Thorsten Drücker schrieb: > Was kann ich denn noch machen? Foto vom Aufbau und ein Schaltplan genauso wie es jetzt aufgebaut ist. Dann kann man vielleicht helfen.
Thorsten Drücker schrieb: > Obs was bringt....... nun ja ich würde den motor entstören. mit zwei keramikkondensatoren und zwei 10µh drosseln direkt am motor. so wurde das bei leistungsstarken motoren im modell gemacht. die störung ist immer unmittelbar beim verursacher zu bekämpfen!
Hallo dolf, weiter oben wurde mir zwar gesagt, dass es nicht nötig ist aber aktuell versuche ich alles was ggfs helfen "könnte". Hast Du einen tipp wie ich die Kondensatoren am Motorgehäuse anlöten kann? Beim letzten Versuch hat der Lötzinn nicht gehalten. Oder gibt es einen bestimmten Punkt am Gehäuse, an dem ich das anlöten muss? Bzgl. der Drosseln: Laufen die gegen Masse? Reichen solche (mit 680mA)? http://www.ebay.de/itm/5x-Drosselspule-Drossel-SMCC-10uH-680mA-0-35-St-/160954497183?pt=Bauteile&hash=item2579a2b89f VG Thorsten
Hi, Habe mir die Drosseln mal bestellt, wobei ich da nichts erwarten werde. Es scheint aber definitiv am hohen Anlaufstrom zu liegen. Ich habe mir mal ein kleines Testprogramm geschrieben mit PWM Softanlauf, damit funktioniert es ohne Ausfall. Wäre super, wenn ihr mir dazu noch ein paar Tipps geben könntet. (Klar dass man mit delay nicht arbeitet):
1 | byte PWMpins[] = {6,9,10,11}; |
2 | |
3 | void setup() { |
4 | for (int i=0;i<4;i++) { |
5 | pinMode(PWMpins[i], OUTPUT); |
6 | digitalWrite (PWMpins[i], LOW); |
7 | }
|
8 | |
9 | }
|
10 | |
11 | void runMotor(int motor, int duration) { |
12 | for (int i=0; i<255; i++) { |
13 | analogWrite(PWMpins[motor],i); |
14 | delay(10); |
15 | }
|
16 | delay(duration); |
17 | digitalWrite(PWMpins[motor], LOW); |
18 | |
19 | }
|
20 | |
21 | void loop() { |
22 | runMotor(0,3000); |
23 | delay(1000); |
24 | runMotor(1,3000); |
25 | delay(1000); |
26 | runMotor(2,3000); |
27 | delay(1000); |
28 | runMotor(3,3000); |
29 | delay(1000); |
30 | }
|
HAllo, um das Thema sachgemäß abzuschließen: Ich habe die oben empfohlenen Drosseln erhalten und eingelötet. Seit dem läuft die Steuerun 99% perfekt. Ich vermute, das Funkstörungen Einfluss auf meine RTC oder das XBEE Modul genommen haben und damit den Arduino lahmgelegt haben. Deswegen, weil ich auf der Ausgabe auf meinem iPhone sehen konnte, wie die Uhrzeit auf dem Display verrückt gespielt hat, sobald der Motor anging. Problem behoben, zu 99.5% keine STörung mehr erkennbar (ab und zu noch mal nen leichtes blinken der Uhrzeit). Zusammenfassend habe ich auf Empfehlung hier folgendes gemacht: - Optokoppler wieder rausgeschmissen - alte Diode (die vermutlich zu lahm war sowie an der falschen Stelle) rausgelötet - neue Freilaufdiode uf4007 eingelötet (Motor +/-, direkt an der Platine) - Kabel ausgetauscht gegen 2 -adrige ummantelte ca 0.8mm starke) - Drosseln 10uH eingelötet - 100N Kondensator direkt am Motor - Soft PWM (0>255 in 10ms Schritten) Vielen Dank - ich habe mein Ziel endlich erreicht :)
Wenn der Lötzinn am Motor nicht hält liegt es meist daran, dass du diesen nicht warm genug bekommst weil der Lötkolben zu schwach ist. Kannst ja mal probieren erst den Lötkoben aufs Motorgehäuse, dann den Kondensator mit dazu und zum Schluß kurz Lötzinn dazugeben.
Hi, aus gegebenem Anlass möchte ich das Thema noch mal öffnen: Heute morgen musste ich feststellen, dass die 4te Pumpe noch am laufen war. Kurz gecheckt und in der Tat war der Arduino wieder mal abgeschmiert. Lief jetzt wirklich einige Zeit echt problemlos. Kurz im manuellen Modus gecheckt: Pumpe 1-3 laufen problemlos. Bei Pumpe 4 habe ich wieder im Display das blinken der Uhrzeit festgestellt und nach einigen Sekunden war dann der Arduino weg. Also kurz den Code angepasst und Pumpe 4 zunächst aus gestellt. Tja, leider muss ich dann heut Abend feststellen, dass bei Pumpe 3 das gleiche Problem auftritt. Glücklicherweise war ich immer zu Hause, tagsüber schien alles ok zu laufen. Nichts desto trotz kann ich damit nicht leben: Ich nutze die Dosierpumpen um in mein Aquarium hochkonzentrierte Salzlösungen nachzufüllen - wenn ich da überdosiere kann so ein Becken auch schon mal aus dem Ruder laufen. Was denkt ihr, was kann hier los sein? Können die Drosseln ihren Geist aufgegeben haben? Ist sowas möglich? Sind die ggfs nicht für 24v dimensioniert? http://www.ebay.de/itm/160873797517?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1439.l2649 Hoffe ihr habt eine Idee BG Thorsten
Äußerst hilfreich! Gut dass du hier vorbei geschaut hast. Problem besteht nach wie vor, hoffe Es gibt noch qualifizierte Hilfe hier Besten dank
Thorsten Drücker schrieb am 28.04. im Beitrag #3634755: > Hi, > genau - der Arduino hat ein eigenes Netzteil. > SOllte eigentlich 100% galvanisch getrennt sein. In deinem Schaltbild vom 29.04. sieht man aber, dass die 5V für den Arduino aus den 24V erzeugt werden... Doch nicht getrennt?
Hi Dennis, vermutlich hast Du nicht den ganzen Thread gelesen. Mir wurde hier ganz klar empfohlen, dass meine Lösung mit den Optokopplern nichts taugt und ich besser an der Motorstabilisierung bzw ENtstörung arbeiten muss. Daher hängt der ARduino auch an einem 24V Netzteil wie die Pumpen, lediglich ein DC-DC Shield dazwischen, dass die 24v auf 5v runterregelt. Im Anhang mal zwei bilder, einmal die Pumpe von außen und einmal von innen. VG Thorsten
Ich gehe mal davon aus das den Programm in Ordnung ist und es nicht zu Prgrammierfehler wie Stacküberlauf. Die Motoren werden sicherlich einiges an Störungen erzeugen, hierzu solltest du dir mal ein Oszi ausleihen oder dir ein günstiges analoges kaufen. für ca. 20-30€ gibts die 5-10MHz Teile von Conrad/Voltcraft bei eBay zu schießen. Dann kommen die ganzen langen Leitungen zu den Motoren hinzu die eine super Sendeantenne darstellen. Du solltest deine Treiber die Freilaufdiode usw. möglichst nah an die einzelnen Motoren setzen. Auf den linken Bild sieht es so aus also ob dort eine Diode ist oder ist das ein Widerstand, aufjedenfall ist das sehr nah am Motor was hilfreich ist um die Ströme nicht über die ganzen Kabel zu schicken. Vielleicht kannst du deinen ganzen Kabelverhau auf ein Steckbrett setzen ist auch nicht das beste in Sachen EMV aber besser als dieses Kabelknäuel. Dem DC-DC Wandler würde ich soetwas http://www.reichelt.de/CAF-0-6-100/3/index.html?&ACTION=3&LA=446&ARTICLE=32282&artnr=CAF+0%2C6-100&SEARCH=drossel vorsetzen und danach noch einen dicken Elko damit er nicht durch die 24V Seite so beeinflusst wird.
:
Bearbeitet durch User
ich habe den Thread nur überflogen und auch keine Zeit, mich tief in mögliche Hardwareursachen für Deine Abstürze reinzudenken. Meiner Meinung nach solltest Du Dich dringend mit dem Thema 'Entwicklung robuster Software' beschäftigen. Die Hoffnung, dass irgend ein System für immer störungsfrei läuft, ist auch bei sorgfältigstem Aufbau illosorisch. Lies Dich in das Thema ein und beginne für den Anfang mit dem Watchdog-Timer. Hast Du den in Deinem Projekt bisher verwendet? Die Beschreibung klingt für mich nach "nein".
Hallo, > Ich gehe mal davon aus das den Programm in Ordnung ist und es > nicht zu Prgrammierfehler wie Stacküberlauf. > Meiner Meinung nach solltest Du Dich dringend mit dem Thema 'Entwicklung > robuster Software' beschäftigen. > Die Hoffnung, dass irgend ein System für immer störungsfrei läuft, ist > auch bei sorgfältigstem Aufbau illosorisch. Ich bin sicherlich nicht der beste Entwickler aber relativ sicher, dass die von mir hier dokumentierten Abstürze nicht softwareseitig verursacht werden. > Lies Dich in das Thema ein und beginne für den Anfang mit dem > Watchdog-Timer. > Hast Du den in Deinem Projekt bisher verwendet? Die Beschreibung klingt > für mich nach "nein". Damit habe ich mich schon beschäftigt, das aber in der Tat noch nicht eingebaut. Ich nehme das noch mal mit, wobei ein Watchdog in meiner Anwendung zwar weitere Probleme verhindert aber das eigentliche Problem nicht löst. Heißt in meinem Fall: Pumpe 3 soll alle 2 Stunden 20ml Salzlösung pumpen. nach ca 5ml Stürzt der Arduino ab, die Pumpe läuft weiter. Der Watchdog rebootet den Arduino, die Pumpe wird abgeschaltet, eine Überdosierung wird verhindert. Tritt der Fehler öfters auf, habe ich leider eine Unterdosierung. > Die Motoren werden sicherlich einiges an Störungen erzeugen, hierzu > solltest du dir mal ein Oszi ausleihen oder dir ein günstiges analoges > kaufen. für ca. 20-30€ gibts die 5-10MHz Teile von Conrad/Voltcraft bei > eBay zu schießen. Wäre mal eine Idee. Bisher habe ich kein Oszi da es recht teuer ist und wirklich nur für die sinnvoll, die es auch sehr häufig einsetzen können. Falls jemand in Düsseldorf wohnt und eines besitzt, vielleicht kann ich ja mal mit der Pumpe vorbeikommen und alles durchmessen. > Dann kommen die ganzen langen Leitungen zu den Motoren hinzu die eine > super Sendeantenne darstellen. Du solltest deine Treiber die > Freilaufdiode usw. möglichst nah an die einzelnen Motoren setzen. Auf > den linken Bild sieht es so aus also ob dort eine Diode ist oder ist das > ein Widerstand, aufjedenfall ist das sehr nah am Motor was hilfreich ist > um die Ströme nicht über die ganzen Kabel zu schicken. Hmmm jetzt wirds interessant. In den BEiträgen oben wurde mir empfohlen die Diode NICHT direkt am Motor sondern sehr nahe an den Mosfets zu platzieren. Bringt es was, wenn ich zwei Dioden zwischenschalte? Eine an der Motorplatine, eine an dem Motor direkt? Oder meinst Du, dass ich quasi das Motorshield vierteile und somit jeden MOSFET direkt an den Motor löte? Klar, dann hätte ich deutlich kürzere Kabelwege. Das wäre mal ein Versuch wert. Was Du auf dem Bild direkt am Motor siehst: Jeweils eine 10uH Drossel und zwischen den beiden Motorpolen ein 100N Kondensator. > Vielleicht kannst du deinen ganzen Kabelverhau auf ein Steckbrett setzen > ist auch nicht das beste in Sachen EMV aber besser als dieses > Kabelknäuel. Ja, ist in der Tat nicht sehr professionell, leider auch ein wenig dem Platz geschuldet. > Dem DC-DC Wandler würde ich soetwas > http://www.reichelt.de/CAF-0-6-100/3/index.html?&A... > vorsetzen und danach noch einen dicken Elko damit er nicht durch die 24V > Seite so beeinflusst wird. Kann ich ja mal probieren: Was für einen ELKO? Ich hätte noch einen 36V/2200uH - den gleichen den ich am Motortreiber nutze, oder einen 16V 4700uH übrig. Die Frage ist: Treten die Störungen an der Stromversorgung auf oder vielleicht doch eher über die gemeinsame Masse an der PWM Verbindung? Auf dem Bild sind die PWM Steuerkabel die weißen Kabel die vom Arduino zum Motortreiber laufen.
> Dem DC-DC Wandler würde ich soetwas > http://www.reichelt.de/CAF-0-6-100/3/index.html?&A... ICh habe ja noch die 10uH Drosseln übrig. Könnte ich auch jeweils eine davon an + und - eingangsseitig zwischenschalten? Die nutze ich ja auch an den Motoren.
Wieso verwendest du eigentlich PWM kannst du die Menge nicht einfach durch die Zeit der Pumpenansteuerung bestimmen? http://upload.wikimedia.org/wikipedia/commons/9/90/Catchdiode.png Schau dir das mal an, wenn man den Schalter öffnen dann fleißt da noch Strom durch die Diode wieder zum Motor weiter der diesen verbraucht wodurch es zu keiner Induktionsspitze kommt. Wenn die Strecke der Diode sehr lang ist dann hat man einen sehr langen störenden Strompfad(Sendeantenne), deswegen sage ich die Diode so nah wie möglich an den Motor setzten.
Thomas O. schrieb: > Wieso verwendest du eigentlich PWM kannst du die Menge nicht einfach > durch die Zeit der Pumpenansteuerung bestimmen? Mach ich auch. PWM Nutze ich nur für die SoftPWM Ansteuerung um den Anlaufstrom gering zu halten.
Daß der Aufbau sich selber stört, wundert mich nicht. Wenigstens das RTC-Modul, XBEE und deine Prozessorplatine sollten mit kurzen Leitungen miteinander verbunden werden und direkt nebeneinander an der Rückwand befestigt werden. Diese Verbindungsleitungen sollten Abstand zu den Motorleitungen haben. Fasse die 5 Drähte zwischen Arduino und Motorplatine zusammen. Schlauch oder paar Kabelbinder. Ist das wirklich ein isolierender Wandler? Wenn nein, hast du eine Masseschleife einmal von der Versorgung mit dem 2-adrigen Kabel (OK) und zum anderen zurück über den Arduino (nicht gut)?
Hallo, ich fasse mal meine nächsten Schritte zusammen: 1) das RTC-Modul, XBEE und deine Prozessorplatine sollten mit kurzen Leitungen miteinander verbunden werden und direkt nebeneinander an der Rückwand befestigt werden. Diese Verbindungsleitungen sollten Abstand zu den Motorleitungen haben. 2) jeweils eine 10uH Drossel eingangsseitig am DC/DC Board <<< ist das ok? 3) die PWM Zuleitungen und Masse zwischen Arduino und Treiber bündeln 4) die einzelnen Treiberstufen (IRLIZ, 10k Res und 100ohm Res) direkt an den Motor mit sehr kurzen Zuleitungen löten. Den 2200uH Elko sehr nah an die erste Treiberstufe. Siehe auch Schaltplan im Anhang. 5) 16v 4700uH Elko vor der Spannungsversorgung des Arduino / hinter DC/DC board @ HELGE: >Ist das wirklich ein isolierender Wandler? Wenn nein, hast du eine >Masseschleife einmal von der Versorgung mit dem 2-adrigen Kabel (OK) und >zum anderen zurück über den Arduino (nicht gut)? Du meinst den DC/DC Wandler? Ist dieser hier: http://www.ebay.de/itm/DC-DC-Wandler-Step-Down-LM2596S-/121304926751?clk_rvr_id=640374238166&nma=true&si=U7g%252Btg1yQ2hkzSmGebDszQXsZ%252Fg%253D&orig_cvip=true&rt=nc&_trksid=p2047675.l2557 Ist demnach ein nicht isoliertes Step-Down-Modul. Ich muss doch die Masse vom Arduino mit der 24v Masse verbinden. Wie sollte ich das denn anders machen?
die Frage ist jetzt wie stabil die 24V Spannung ist, könnte nämlich gut sein das wenn alle Pumpen anlaufen es kurzzeitig zusammenbricht und der DC-DC Wandler aus dem Tritt kommt wenn er nicht schnell genug nachregeln kann. Es würde sicherlich nicht schaden wenn du mit 10.000µF pufferst. Ich kann es nicht genau erkennen wenn die Arduino Ausgange mit 100 Ohm abgesichert sind würde ich das 50mA pro Ausgäng entsprechen und bei 4 Ausgängen 200mA würde da mindestend 250 Ohm reinmachen dann belastet der Arduino auch deinen DC/DC Wandler nicht so stark.
Thorsten Drücker schrieb: > Was denkt ihr, was kann hier los sein? Eine nach wie vor hingepfuschte Schaltung die sich Störungen einfängt. EMV ist nicht ohne Grund ein Lehrfach in Elektrotechnik. Thorsten schrieb: > Achso hier mal ein neuer Schaltplan Erst mal GND des Arduino direkt an den Siebelko führen, nicht ans Ende der Motorstromleitung. Eine korrekte Motorentstörung bindet den Metallkorpus des Motors mit ein
1 | +--47uH--+---+---+ |
2 | | | | | |
3 | | | 47nF | |
4 | ----------------+ | | | |
5 | verdrillte Zuleitung 47nF +--(M) |
6 | ----------------+ | | | |
7 | | | 47nF | |
8 | | | | | |
9 | +--47uH--+---+---+ |
http://www.dse-faq.elektronik-kompendium.de/dse-faq.htm#F.25.2 Dann den Mikrocontroller weit weg von den Motoren unterbringen, schliesslich sind Funkstörungen Funk, übertragen sich also über die Luft, und je weiter weg, um so weniger kommt an. Die Zuleitungen zu den MOSFETs dürfen aber nicht ihrerseits Antennen sien, alle zusammen durch einen Ferritring führen wie du ihn sicher von diversen alter Computerelektronik hast. Thomas O. schrieb: > Wieso verwendest du eigentlich PWM kannst du die Menge nicht einfach > durch die Zeit der Pumpenansteuerung bestimmen? Wohl wahr. Wenn man vorher gewusste hätte, daß es um Dosierpumpen geht, hätte man gleich wissen können, daß langsamer Lauf sowieso Unsinnig ist, weil die Fördermengentoleranz dann drastisch steigt.
MAwin: es ist aber auch nicht so das ein µC in einer verseuchten Umgebung nicht laufen würde. Ich habe eine Schaltung auf einem Steckbrett aufgebaut und das läuft direkt neben einer Funkenstrecke mit einer KFZ Zündspule. Dazu habe ich ein einen LC-Filter vor den Spannungsregler einen Supressordiode und nochmal LC Filter direkt am µC. Kann mir gut vorstellen das der Arduino Schaltung nur Abblock-Kondensatoren hat und sonst keinerlei weitere Maßnahmen.
Thomas O. schrieb: > MAwin: es ist aber auch nicht so das ein µC in einer verseuchten > Umgebung nicht laufen würde. Man kann auch bei rot über die Kreuzung spazieren. Aber das ist KEIN Vorschlag für andere Leute. Nur mal ein Hinweise aus der dse-FAQ; "Allerdings sind die älteren AVR's (AT90) sehr EMV empfindlich (der Chip selbst fängt sich die Störungen ein, also hilft auch bestes Leiterplattenlayout nicht), bei den neueren (ATTiny, ATMega) hat Atmel nachgebessert."
Hi vielen Dank für weiteres Feedback. Werd das mal entsprechend anpassen. Hierzu: >Wohl wahr. Wenn man vorher gewusste hätte, daß es um Dosierpumpen geht, >hätte man gleich wissen können, daß langsamer Lauf sowieso Unsinnig ist, >weil die Fördermengentoleranz dann drastisch steigt. lies bitte mal mal den Thread von ganz vorne. Hab ne ausführliche Projektbeschreibung gemacht, und direkt im 2ten Satz steht: > Mein Projekt: 4fach Dosierpumpe mit Arduino Steuerung- Aber das nur am Rande, geholfen habt ihr mir dennoch, jetzt muss ich mal schauen wegen der Umsetzung. VG Thorsten
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.