[Home]
[SpannungsVersorgung]
[SchrittmotorTechnik]
[TemperaturSensoren]
[Delay oder Millis() ?]
[I2C - Bus]
[Eigenbau Geräte]
[Multiprocessing  32Bit]
[Schalten & Regeln]
[Temp. od. Licht Kontr.]
[DA Converter]
[Die Uhr DS3231]
[Sensor Schield]
[Töne ausgeben]
[Ultraschall -Sensoren]
[LCD Display]
[SMS über GSM]
[Fehler- & Störungssuche]
[Voltmeter]
[Lüfter-Steuerung]
[Controllino]
[Siemens Logo 8]
[Arduino FAN´s]
[Woran ich  Arbeite]
[Alte Technik]
[Kontakt]

 

Zum Technik Forum

Banner_Neu_11_06_2020

Höhere Spannungen und Ströme mit dem Arduino schalten, regeln, steuern.

2-kanal-relais-arduino_klein

Hier haben wir mal eine Platine, mit 2 Relais. Es gibt diese Platinen auch mit 4 Relais, mit 8 Relais, mit 16 Relais. Diese kann direkt mit mit den Steuer-Pins eines Arduinos ansteuern. Pro Relais ein digitaler Pin. Also mit 5 Volt und rel. kleinem Strom kann man diese Relais treiben. Diese Platinen haben auch eine extra Spannungsversorgung, meist 5 Volt. Auf den Relais steht, dass sie z.B. 250 Volt 10 Ampere Schalten können. Das möchte ich mal deutlich bezweifeln. Da hätte ich sehr große Angst das sie mir um die Ohren fliegen. :-)

Man muss da gleich mal eines unterscheiden. Es gibt diese Platinen grundsätzlich in zwei Ausführungen. Bei den einen sind die Anschüsse der 5 Volt und die der 250 Volt direkt nebeneinander ohne jede Trennung. Das kann recht gefährlich werden.

Dann gibt es auch Platinen mit den selben Relais und der selben Elektronik, aber mit einer Ausfräsung zwischen den 220 Volt Teil und dem 5 Volt Teil. Wenn ich mit solchen Relais hohe Spannungen schalten möchte, wäre es mir extrem wichtig, diese Spannungstrennung zu haben.

Noch was wichtiges. Die meisten dieser Platinen sind so aufgebaut, dass die Relais nicht einschalten, wenn man HIGH auf den Steuer-Pin gibt, sondern mit LOW!! Das kann problematisch werden, wenn man das Programm nicht richtig aufbaut. Wenn man die Pins, über die diese Relais gesteuert werden im “Setup” einrichtet, muss man den Ausgang erst auf High programmieren und dann erst als Ausgang definieren. Macht man das nicht, wird das Relais bei Programmstart erst mal auf LOW als Ausgang definiert und somit schaltet das Relais ein. Wenn man ein eingeschaltes Relais aber bei der Initialisierung des Programms noch gar nicht brauchen kann, weil dann etwas passiert was nicht sein darf, muss man unbedingt diese erklärte Reihenfolge einhalten, Erst den Port auf HIGH, dann den Port als Ausgang definieren.

Die zweite Möglichkeit wäre noch, in diese Leitungen vom Pin zum Relais einen Inverter einzubauen. Dann kann man ganz normal das Relais mit HIGH einschalten, und mit LOW aus. Und bei der Initialisierung ist der Ausgang ja eh auf LOW, dann schaltet sich da das Relais auch nicht ein.

Ich gehe noch etwas weiter. Ich würde 220 Volt AC Geräte die auch noch beim Abschalten hohe Induktionsspannungen liefern, nicht mit so einem Relais schalten wollen. Das ist ein Job für die SSR Relais. (Solid State Relay).

SSR_s-l_klein

Hier ist das SSR Relais. Auf der Platine sind zwei davon, die gibt es auch mit 4 und 8. In diesem Gehäuse befinden sich keine Mechanischen Teile, sondern es ist vergossene Elektronik. Der Vorteil ist, dass bei diesen Geräten der Schaltpunkt so gewählt wird, dass im Moment vom Ein- oder Ausschalten der Sinus der Wechselspannung gerade durch den Nullpunkt geht. Somit schaltet dieses SSR total ohne starke Lasten im Moment der Schaltung.

Was damit NICHT geht.
Dieses Gerät kann nur Wechselspannung also AC steuern. Denn das Trennen der Spannung geht nur in dem Moment wo die Sinus Spannung gerade einen Richtungswechsel macht. Wenn ich also damit eine Gleichspannung also eine DC Spannung steuern will, dann kann ich damit zwar einschalten aber nicht mehr abschalten.Es gibt extra andere Geräte dieser Art, womit das schalten von DC Spannung möglich ist. Also bitte unbedingt darauf achten, dass man da das Richtige auswählt.

PWM Reglung kurz erklärt.

Ich will man das Thema PWM ansprechen. PWM steht für “PulsWeitenModulation”. Wenn man das erzeugte Signal am PC sieht, kann man sich da auch was drunter vorstellen. Deshalb hole ich mal mit den beiden Videos etwas aus.

Im Ersten Video hier oben sieht man das Signal am Oszi. Normal ist man gewohnt, dass die Regelung einer Motordrehzahl damit erreicht wird, dass sich die DC Spannung in der Höhe ändert. Das ist aber seit langer Zeit nicht mehr das Mittel der Wahl. Die Spannungshöhe bleibt beim PMW immer  gleich. Aber sie liegt nicht durchgehend am Motor an. Sondern es sind Spannungs-Impulse die am Motor ankommen.

Der zweite Video zeigt, dass es bei PWM verschiedene Frequenzen gibt, die sich deutlich auswirken. Frequenzen unter 16000 Herz sind für die Menschlichen Ohren mehr oder weniger gut hörbar. Deshalb ist es sehr unangenehm, Motoren in in fast 1000 Herz pfeifen zu hören, oder mit 490 Herz summen zu hören. Ich würde daher meine Motoren mit höheren Frequenzen betreiben. Aber hört selbst im zweiten Video.

Ich habe hier einen H-Bridge DC Dual Motor Driver PWM DC 3~36V 15A Peak 30A im Einsatz. Der leistet gute Dienste.Das Ding hat pro Motor zwei Eingänge. Einen DIR und einen PWM Eingang. Man braucht also auch für Richtungswechsel keine Erweiterung. Einfach Polwechsel am DIR Eingang, und schon geht´s in die andere Richtung.

Dann sind da noch die Mosfet Module.

Die sind super geeignet, um DC Niederspannung zu Schalten und zu Regeln. Auch Motoren kann man damit wunderbar regeln indem man die PWM Ausgänge benutzt. Mit diesen Modulen hat man nur nicht die Möglichkeit einfach Rückwärts oder Vorwärts umzuschalten. Dafür muss man darauf achten, dass der Regler eine “H-Bridge” integriert hat. Und auf Strom und Spannung achten. Lieber deutlich mehr, dass man Reserven hat. Das gilt natürlich auch für dieses recht einfache Modul hier. Ich habe vor einiger Zeit beim freundlichen Chinesen Mosfet´s bestellt, die nun mal immer etwas auf sich warten lassen, dafür sind sie aber Konkurrenzlos Preiswert. O.K. manche sagen, nicht preiswert, sondern billig, und meinen das auch so. Ich habe noch keine schlechten Erfahrungen damit gemacht. Jedenfalls werde ich dann mal ein solches Modul mit einem 30 Ampere Mosfet umrüsten, und auch einen passenden Kühlkörper dran schrauben. Denn für 1-3 Ampere, das ist mir etwas zu spärlich. :-)) Natürlich muss man auch die Stärke der Leiterbahnen beachten, man kann also nicht einfach nur die Bauteile austauschen, sondern man muss die Leiterbahnen verstärken. Da reicht oft auch mal etwas Lötzinn.

Produkteigenschaft:
Maße
: 33 x 24 x mm.
Gewicht: 10 g.
Steuer-Spannung: 3,3 - 5 V.
Ausgangsspannung: 0~24V.
Arbeitsstrom: < 5 A (Oberhalb1 Ampere müssen Kühlkörper hinzugefügt werden!!)
Plattform: Arduino MCU, ARM, Raspberry Pie.

Da in dem Modul keine Schutzdiode eingebaut ist, muss man diese bei Induktiven Lasten noch am Ausgang gegen die Spannungsrichtung einbauen, dass der Mosfet nicht durch Induktions Spannung abgeschossen wird.

MosModul_

Hier im Video habe ich mal versucht, diesen kleinen MosFet Treiber als Motortreiber zu verwenden. Das hat funktioniert, nur mit 31 KHz PWM war der Motor nicht zu bewegen. Warum das so ist, kann ich mir jetzt gerade nicht vorstellen, aber das werde ich gelegentlich mal nachprüfen und berichten. Da muss ich mit dem Oszi daran, dass ich sehen kann, was sich abspielt, oder eben nicht abspielt. Mit 490 Hz und 960 Hz geht es wunderbar. Also der große Motortreiber ist schon was anderes, aber zur Not kann man einen Motor damit treiben, so der Arbeitsstrom dafür ausreicht.

Hier habe ich noch den Schaltplan zum MOSFET Modul gefunden. Aber ich denke bei den Preisen lohnt es sích einfach nicht, so eine Platine nachzubauen. Man sieht, dass der VCC 5 Volt hier unbenutzt ist, muss man also nicht verdrahten. GND und Signal PIN reicht.

Ich habe mir von den MOSFET´s aus dieser Schaltung hier, mal ein paar bestellt, weil ich keine habe, die auch mehr als 4-5 Ampere treiben können. Die Schaltung ist von Tommy aus dem Deutschen Arduino Forum. Aber die MOSFET´s sind mal wieder ich China bestellt. Das kann dauern, bis ich die zu Gesicht bekomme. :-))

Mitte Juni bis Mitte Juli :-(( Aber ich habe ja Zeit.

MOSFET_Module_Schematic
Motortreiber_Tommy_LL_N_Mosfet_GND

Hier habe ich noch eine Abbildung von dem
“H-Bridge DC Dual Motor Driver PWM DC 3~36V 15A Peak 30A” den ich oben im Video verwendet habe. Dieses Ding ist mir sehr sympatisch, weil es auch für hohe Ströme zu gebrauchen ist, und eben eine “H-Bridge” ist. Das heißt, ich kann über den DIR Eingang einfach die Drehrichtung des Motors umsteuern. Natürlich kann man die hohen Ströme nicht ohne entsprechende Kühlkörper nutzen, wenn man an die 15 - 30 Ampere ran will !!

Und Vorsicht, man kann nicht einfach einen großen Kühlkörper nehmen, und alle Transistoren von einer Seite drauf schrauben.Denn dann geht ganz furchtbar der  Rauch auf. :-) Jeder Transistor muss Isoliert montiert werden!!

Dual Motor Treiber Peak 30 Amp._s-l640_2

Den PWM Motortreiber habe ich mir gerade bestellt. Der treibt Motoren bis 27 Volt und bis 43 Ampere. Das Kühlblech verspricht zumindest im Lieferzustand dass das Ding einiges an Temperatur wegschafft. Ich will mal sehen wie sich diese Baugruppe verhält, wenn sie einiges an Strom durchsteuern muss, und wie sie mit den höheren PWM Frequenzen klar kommt. Ich habe das Ding hier bestellt.

Hier noch eine Einlassung der Firma “Handson Technology” Das BTS7960 ist ein vollständig integriertes Hochstrom-H-Brückenmodul für Motorantriebsanwendungen.Die Schnittstelle zu einem Mikrocontroller wird durch den integrierten Treiber-IC erleichtert, der Eingänge auf Logikpegel, Diagnose mit Strommessung, Anstiegsgeschwindigkeitsanpassung, Totzeiterzeugung und Schutz gegen Übertemperatur, Überspannung, Unterspannung, Überstrom und Kurzschluss bietet. Der BTS7960 bietet eine kostenoptimierte Lösung für geschützte hohe Werte. Aktuelle PWM-Motorantriebe mit sehr geringem Platzbedarf.

Technische Daten:

  • Betriebsspannung: 5,5V -  27V
  • Eingangsfrequenz (PWM) : bis 25KHz
  • BTS796 half bridge
  • Arbeitsstrom: max 43 A
  • Steuerspannung: 3.3 - 5 V
  • Kurzschluss-, Überhitzungs-, & Überspannungsschutz
  • Maße ca. 51x50x42 mm

Hier ist noch ein PDF File mit einer guten Hilfestellung zu den Teil.

Sooo, was ich dazu noch sagen kann. Ich habe das Ding getestet und es ist ein bisschen anders als meine H-Brueckenmodule, die ich bisher getestet habe. Das Teil hat ja folgende Anschluesse:
PWM Vorwaerts  / PWM Rueckwaerts
Enable Vorwaerts / Enable Rueckwaerts
Stoerung Vorwaerts /Stoerung Rueckwaerts
VCC / GND
Die dicken Klemmen B+ / B- sind Betriebsspannung Motor.
Die dicken Klemmen M+ / M- gehen zum Motor oder Lampe.
Um das Ding zu betreiben muss ich immer beide Enable Eingaenge auf High legen. Es muss VCC und GND angeschlossen sein. GND 5 Volt hat bereits eine Verbindung zu Minus(GND) Motor Betriebsspannung. Die Motor Drehrichtung in die der Motor laufen soll, muss PWM Spannung haben, die andere Richtung sollte auf GND oder PWM-”0” sein. PWM Eingang geht von 0  bis  255.

Ich habe ausser einem Motor auch mal eine 12V / 60W  Hallogen Birne angeschlossen, weil ich mehr Stromlast wollte, und das hat die Endstufe auch ohne jegliche Erwärmung getrieben. Also bei 5 Ampere blieben die Finger kalt, auch nach längerem warten.

PWM_Motor_Treiber_s-l1600

Hier habe ich mal zwei Testprogramme für diesen Treiber, die bei mir funktionieren.

Das eine mit zwei Laufrichtungen gesteuert nur mit dem Poti.Poti über die Mitte nach rechts, der Motor läuft rechts herum. Über die Mitte nach links, Motor läuft links herum. Je weiter in diese Richtung gedreht wird, desto schneller läuft der Motor.

Das zweite eine Laufrichtung, gesteuert auch mit dem Poti

Ich habe auch noch was zum Thema PWM Frequenzen. Wenn ihr einen Motor ansteuert, und der sehr laut piept solange es nicht auf Vollgas läuft, dann liegt das an der PWM Frequenz. Diese kann man beim Arduino verändern. Üblicherweise läuft diese auf 490 Hz, oder 980 Hz. Schaut dazu mal diesen Link an. Bitte dran denken, dass dieser PWM Regler nur bis 25 KHz gefahren werden soll. Vielleicht sollte man es hier nicht mit 31.300 Hz versuchen, sondern mit 3900 Hz. Wenn ihr damit trotzdem Probleme habt, dann meldet euch.

PS: Es kann auch sein, dass ein Netzteil, das die Spannung für einen PMW getrieben Verbraucher liefert, in dieser Frequenz piept. Das hat den selben Grund. Da aber hauptsächlich, wenn das Netzgerät durch den Verbraucher eine große Stromlast hat.
Hier habe ich mal das Programm mit einer Laufrichtung auf 3900Hz PWM über Pin 11 geändert. Aber Achtung!!! PWM Ausgang ist nicht mehr Pin.5 sondern Pin.11 !!! Ich habe die 3900Hz PWM auf einem Motor getestet und man hört die Frequenz, aber sie ist nicht so hervorstechend, wie die 490Hz und die 980Hz.

Ich habe jetzt mal noch das Programm mit Poti recht/links gesteuert erweitert. Mit 3900Hz PWM,  PWM Ausgang auf 11 und 12, LCD Display 4x20. Das ist hier abgelegt.

Arduino, Uno, Mega, RC3231, Schrittmotor, Treiber, RFID, DC, RC, 5 Volt, 3,3 Volt, PWM, Pin, Analog Pin, https://www.nof-schule.de/forum/