ich schalte mit einem N-CH Mosfet eine 1,2 Ohm Heizspule. Wenn ich die Heizspule ausschalte hängt sich der Arduino in ca 60% der Fälle auf und reagiert nicht mehr. Ich habe es mit mehreren Tisch- und Labornetzteilen mit ausreichend Leistung versucht, jedoch immer das selbe Phänomen. Die Spannung beträgt 7,5V und bricht auch nicht ein. Wenn der ganze Aufbau ohne angeschlossene Heizspule betrieben wird funktioniert alles tadellos, deswegen schließe ich einen Softwarefehler aus.
Mir ist eigentlich nicht bekannt, dass ohmsche Lasten irgendwelche Rückwirkungen produzieren ? Oder hat diese Heizspule bereits eine ausreichende Induktivität um solche Störungen zu verursachen ?
Ich würde mal probeweise den Arduino mit einer eigenen Stromversorgung versorgen (aber natürlich beide GND miteinander verbinden).
ArduRobotBuilder:
Ist der Gatewiderstand wirklich nötig ?
Kommt darauf an, wie oft die Last geschalten wird.
Wenn oft pro Sekunde (ein paar hundert oder ein paar tausend Mal pro Sekunde - PWM-Betrieb) ist er dringend nötig.
Wenn nur selten (z.B. alle 10 Sekunden oder alle 10 Minuten), kann er eventuell auch entfallen.
Aber bei dir geht es ja jetzt um Fehlereingrenzung.
Also würde ich den mal auf jeden Fall einbauen.
Beim Ausschalten der Spule fließt ein Strom in gegengesetzter Richtung. Damit dieser nicht an deinem Arduino ankommt muss er mit einer Diode wie ElEspanol schon schrieb kurzgeschlossen werden.
Also ich habe jetzt parallel zu jeder Spule (es gibt 5 von denen mit jeweils eigenem FET) eine Diode in Sperrrichtung reingelötet, hat aber nichts genutzt, Fehler besteht weiterhin.
Es wird ca alle 30 Sekunden mit digitalWrite (HIGH, xx) eine Spule eingeschaltet, und nach nach ca. 5-8 Sekunden wieder ausgeschaltet, also keine PWM.
Wenn der Nano mit 5V aus meinem Handyladegerät versorgt wird und das 7,5V Netzteil nur die Heizspulen versorgt (GND verbunden) funktioniert es problemlos. Es muss also was mit der Versorgung zu tun haben.
Das mit dem Gatewiderstand ist so eine Sache, die Platine ist bereits fertig SMD bestückt, und da ich keine PWM verwende.. naja..
Ich möchte eigentlich keine 2 unabhängigen Spannungsquellen verwenden müssen, was kann ich noch versuchen ?
Wenn es mit getrennten Netzteilen funktioniert, dann ist möglicherweise das Layout des Boards schuld, oder die Kabel der Stromversorgung spucken Impulse beim Schalten der Lasten. So große Ströme können schon mal einen Spannungsabfall auf den gedruckten Leitungen bewirken.
Eigentlich sollte die Einspeisung in der Nähe der Verbraucher erfolgen, ersatzweise über zwei Kabel für die +7,5V zum Nano und zu den Verbrauchern. Eventuell hilft es schon, einen kleinen Widerstand (5-10 Ohm) in die Zuleitung zum Nano zu legen, der bildet dann zusammen mit den Kondensatoren des Boards ein Tiefpaß-Filter.
Der Arduino hat keine kapazität in der Stromversorgung, jedenfalls keine nennenswerte. Versuch mal auf 5V und GND direkt auf der Arduino-platine einen 100µF Elko zu klemmen. Vorsicht, hier gilt nicht: viel hilf viel. Vieleicht noch auf 470µ steigern.
ArduRobotBuilder:
Ich möchte eigentlich keine 2 unabhängigen Spannungsquellen verwenden müssen, was kann ich noch versuchen ?
Darum geht es ja auch nicht - es ging um Fehlereingrenzung. Es sieht also so aus, als wäre die Stromversorgung das Problem.
Nun ja, 4,5 A ist ja auch nicht nichts
Du schreibst:
ArduRobotBuilder:
Die Spannung beträgt 7,5V und bricht auch nicht ein.
Wie hast du das gemessen?
Meiner Meinung nach kann man das nur mit einem (Speicher-)Oszilloskop feststellen, ein Multimeter ist dazu nicht geeignet, weil der Spannungseinbruch sehr kurz sein wird.
Wie lange und wie dick sind die Kabel der Stromversorgung?
Vom 7.5V Netzteil gehen 2 Kabel weg, eines zu den Spulen und eines zum Arduino. Der Sourceanschluss von den Fets ist mit >10 Vias mit der Rückseite der Platine verbunden (2. Layer) der im Prinzip ein großer GND Polygon ist.
@chefin Mach ich gleich, würde es einen Unterschied machen wenn ich den Elko zwischen Vin und GND klemme, also noch vor dem 5V Linearregler ? Wegen dem unterschiedlichen Frequenzverhalten klemme ich testweise mehrere Elkos verschiedener Kapazität gemeinsam dran, vielleicht hilfts.
@HotSystems Die nicht beschalteten Eingänge sind auf der Platine nirgends angeschlossen, habe sie im Code auch nicht definiert.
@uxomm Habe es mit einem Voltmeter gemessen, das Kabel zum Arduino ist ca. 1m lang. Verwenden tue ich eine Doppellitze mit je 0,75mm2 Querschnitt bzw. ein DC- Buchsenkabel (2,1/5,5mm) wovon ich den Querschnitt leider nicht weiß.
Vom 7.5V Netzteil gehen 2 Kabel weg, eines zu den Spulen und eines zum Arduino. Der Sourceanschluss von den Fets ist mit >10 Vias mit der Rückseite der Platine verbunden (2. Layer) der im Prinzip ein großer GND Polygon ist.
2 Kabel, und was ist mit GND ?
@HotSystems Die nicht beschalteten Eingänge sind auf der Platine nirgends angeschlossen, habe sie im Code auch nicht definiert.
Ich habe einen 100uF Elko am Nano zwischen Vin und GND geklemmt und siehe da, es funktioniert jetzt perfekt! Die Dioden an den Spulen lass ich auch gleich drin.
@HotSystems In den 2 Kabeln sind je 2 Drähte wo einer +7,5V und einer GND ist (falls du das meinst). Code posten ist jetzt glaub ich überflüssig geworden.
Ein riesiges Dankeschön an alle, die sich an diesem Thread beteiligt und/ oder sich zu meinem Problem Gedanken gemacht haben! Ihr seid klasse!
ArduRobotBuilder:
Ich habe einen 100uF Elko am Nano zwischen Vin und GND geklemmt und siehe da, es funktioniert jetzt perfekt! Die Dioden an den Spulen lass ich auch gleich drin.
Super, dass es jetzt funktioniert.
Die Dioden sollten auch drin bleiben. Ohne die bekommst du neue Probleme.