Hallo Gemeinde,
ich möchte Euch hier mein erstes µC-Projekt vorstellen. Auch weil der
eine oder andere entscheidende Tip hier aus dem Forum kam.
Für Kritik und evtl. sogar Lob bin ich natürlich dankbar. Am meissten
interresiert mich eigentlich was Ihr zum Code sagt. Ich bin ja sehr
zufrieden damit. ;-)
Schaltung funktioniert momentan (fast) tadellos mit 2 Kanälen, die
anderen 4 werde ich heute Abend noch nachrüsten.
Ich habe seit ca. einem halben Jahr ein Arduino-Uno Board. Vor 2 Monaten
habe ich angefangen die Arduino-Libs wegzulassen und mich mit dem
'echten' Atmel zu befassen. Herrausgekommen ist diese Projekt.
Kurze Zusammenfassung:
1
Funktionsbeschreibung:
2
-kurzer Tastendruck Kanal an/aus
3
-solange Taste gedrückt -> Kanal dimmt von min. nach max. und zurück
4
5
NullDurchgangserkennung:
6
-Alle Bauteile stammen aus 'was-gerade-da-war-Bastelkiste'.
7
-R9 dient dazu das Signal leicht nach 'links' oder 'rechts' zu verschieben um den optimalen R-Wert zu bestimmen.
8
9
Dimmerschaltung:
10
-Snubber fehlt noch
11
-wenn ich dimme und ich bin bei ca. 90%Helligkeit dann zündet der Triac plöztlich voll durch und ich habe im 'Dimmbild' einen kleinen Helligkeitsprung drin. Vom Programm kommt das aber nicht.
12
13
µC-Programm:
14
-die 'Sprache', die ich relativ gut behersche heist 'BASH' ;-)
15
-ich habe vorher noch nicht wirklich in C programmiert
16
-die Bezeichnung 'Atmel328p' kenne ich seit 2 Monaten
17
-mit der generierten Codegrösse (786 bytes) bin ich zufrieden
Den Gleichrichter vor dem OK kann ich verstehen. Aber was mir komisch
vorkommt ist die Verwendung des MOC3043 in einer
Phasenanschnittsteuerung. Der Bursche ist ein "Zero Voltage Crossing
Triac driver". Das bedeutet: wenn du nicht selbst gerade in direkter
Nähe des Nulldurchgangs einschaltest, wird der MOC3043 erst beim
nächsten Nulldurchgang der Netzspannung triggern. (Parameter im
Datenblatt ist "Inhibit Voltage".)
Damit kannst du ein solid state relais bauen, mit dem der µC eine
Netzlast schaltet. Aber wie ein Phasenanschnitt-Dimmer damit
funktionieren soll, ist mir ein Rätsel.
zum 'Gleichrichter':
Da hab ich mich wohl verzeichnet. Hatte die Schltung vorhin gerade nicht
zur Hand und hab sie schnell aus dem Kopf gekritzelt. Ist soo natürlich
nicht richtig, sorry...
Achim S. schrieb:> Aber wie ein Phasenanschnitt-Dimmer damit> funktionieren soll, ist mir ein Rätsel.
Naja, ich habe ja geschrieben 'was gerade da war' und was anderes hatte
ich eben nicht in meiner Kiste gefunden. Funktioniert aber so - erstmal.
Man kann den sicher noch durch einen anderen OK austauschen.
mike schrieb:> Funktioniert aber so - erstmal.
das ist schön, aber verstehen kann ich es nicht. Wieviel Strom schickst
du denn durch die LED des Optokopplers? Die spezifizierten 5mA oder
evtl. viel mehr? (Anders gefragt: wie ist denn die Versorgungsspannung
des µC und wie groß ist der Vorwiderstand zur LED.)
Bei sehr großen Strömen könnte ich mir vorstellen, dass der Optotriac
auch außerhalb des Nulldurchgangs schaltet, aber richtig gesund wäre das
(für den MOC4043 und für IO-Ports des µC) wahrscheinlich nicht. Das
könnte vielleicht auch der Grund dafür sein, dass du bei bestimmten
DIMM-Stellungen (90%) einen Helligkeitssprung hast.
André Menzel schrieb:> Verstehen würde ich dort auch ein Gleichrichter.......> Aber das ist KEIN Gleichrichter.....!
oh stimmt: dann verstehe ich den Nicht-Gleichrichter auch nicht mehr
Achim S. schrieb:> (Anders gefragt: wie ist denn die Versorgungsspannung> des µC und wie groß ist der Vorwiderstand zur LED.)
Gut, das ich daran erinnert werde. Den wollte ich schon lange mal
einzeichnen. Momentan läuft das Board auf 5V und bis jetzt hat auf
meiner Testplatine der MOC ohne Vor-R gehalten. Werde Ihn gleich mit
einzeichnen. 1K sollte reichen.
mike schrieb:> nulldurchgang.png
Die Schaltung ist ein ziemlicher Stromschlucker.
Hier ist eine Alternative mit deutlich weniger Aufwand, Verlustleistung
und Phasenverschiebung:
http://www.dextrel.net/diyzerocrosser.htm
Wolfgang schrieb:> Die Schaltung ist ein ziemlicher Stromschlucker.
Mh, 0,2mA (gemessen) erscheinen mir jetzt nicht gerade als
Stromschlucker...?
Wenn ich mich nicht verrechnet habe, sind das ca. 0.05 Watt - halte ich
für Verträglich. Andere Meinungen?
mike schrieb:> Mh, 0,2mA (gemessen) erscheinen mir jetzt nicht gerade als> Stromschlucker...?
Das ist allenfalls der Abschaltstrom, aber nicht der mittlere. Mit 0,2mA
läßt sich der 74LS132 in der Schaltung nämlich nicht steuern?
Der 4N25 ist mit einem minimalen CTR von 20% angegeben, d.h. man kommt
auf einen garantierten CE-Strom von 40µA. An den 10kΩ ergibt das einen
garantierten Spannungshub von 0,4V. Der 74LS132 hat dagegen schon eine
Hysterese von 0,8V.
mike schrieb:> Momentan läuft das Board auf 5V und bis jetzt hat auf> meiner Testplatine der MOC ohne Vor-R gehalten.
ok, das erklärt es. Von Betrieb der LED ohne Vorwiderstand muss ich dir
dringend abraten (dazu gibts ja hier massenweise Diskussionen) Du lebst
aktuell von der Stromlimitierung der µC-IOs (man könnte auch schreiben:
du schließt den Treiber des µC kurz). Bei 5V Versorgung liefert dein
ATMega an der LED des MOC3043 irgendwas in der Größenordnung von 100mA
(Das Datenblatt des ATMega hört bei 80mA auf. Die werden bei 3V Spannung
an der Last erreicht, du gehst noch mal 1,5V weiter). Das ist mehr, als
der MOC3043 verträgt. Und das ist viel mehr, als dein µC gefahrlos
liefern kann. Selbst wenn es mit zwei Kanälen noch halbwegs zu
funktionieren scheint, wird der µC bei 6 Kanälen über kurz oder lang
kaputt gehen.
Da du viel mehr Strom durch den MOC3043 schickst als die vorgesehenen
5mA greift dessen zero crossing detection nicht: er triggert auch, wenn
die Netzspannung gerade nicht im Nulldurchgang ist. Dafür schaltet er
bei langen Einschaltdauern gar nicht mehr aus (deshalb wahrscheinlich
deine Beobachtung "bei ca. 90%Helligkeit dann zündet der Triac plöztlich
voll durch").
Baue dringend einen passenden Vorwiderstand ein. Dann wird die
Phasenanschnittsteuerung mit dem MOC3043 erst mal nicht mehr
funktionieren, weil die ICs innerhalb ihrer Spezifikation betrieben
werden. Dann tausche den MOC3043 gegen einen entsprechenden Baustein
ohne zero crossing detection aus, und die ganze Schaltung wird dauerhaft
so funktionieren, wie sie soll.
mike schrieb:> 1K sollte reichen
Beim MOC3043 sollte am Widerstand bei 5mA die Spannung 5V-1,5V=3,5V
abfallen. Das wären dann 700Ohm, 1kOhm liegt nicht so ganz weit daneben.
mike schrieb:> 0,2mA (gemessen) erscheinen mir jetzt nicht gerade als
Stromschlucker...?
Bei der Messung kleiner Ströme an der Netzspannung, misst man gerne mal
falsche Werte (hattest du das Messgerät auf AC-Kopplung?) Da würde ich
einfach rechnen:
230V / 248kOhm = 0,93mA
Das ergibt für die Nulldurchgangserkennung vor dem Optokoppler ca. 0,2W.
Von der Leistung her ist das nicht all zu wild, aber du erkaufst dir die
niedrige Leistung durch eine schwache Ansteuerung des OK. Deshalb wird
die Nulldurchgangserkennung ungenau und muss von Hand über R9
abgeglichen werden.
Ich persönlich finde die Nulldurchgangserkennung sehr elegant, die
ArnoR mal hier vorgestellt hat (auch wenn sie bei der einen Halbwelle
etwas heikel von der Transistorauswahl abhängt):
ArnoR schrieb:
Aber auch dazu gibt es hier eine ganze Reihe von Diskussionen...
mike schrieb:> Wenn ich mich nicht verrechnet habe, sind das ca. 0.05 Watt - halte ich> für Verträglich. Andere Meinungen?
Es geht nicht
Die 0,05W scheinen mir etwas niedrig angesetzt. Bei einer Netzspannung
von 230V_eff bekomme ich als Leistung an 248kΩ einen Wert von 213mW
heraus. Dabei reicht der Strom aber nicht, um vernünftige Signale am
Optokoppler herauszubekommen (Last durch 74LS132 nicht berücksichtigt).
Bei der Originalschaltung nulldurchgang.png steuert der Optokoppler
nichtmal vernünftig durch (Out2).
Die Schaltung von diyzerocrosser.htm (Out1) liefert bei wesentlich
geringerer Leistung an den Widerständen ein sauberes kräftiges Signal,
dessen fallende Flanke ohne weitere Aufbereitung als Triggersignal für
den µC benutzt werden kann. Wenn man den 230V-Spannungsteiler einen
Faktor 2 hochohmiger aufbau, rutscht die Flanke dichter an den
Nulldurchgang und die Leistung halbiert sich noch mal - ohne Einbuße bei
der Signalqualität.
Anzumerken wäre noch, das sich als Optotriac hier der MOC3053 anbietet,
ohne ZC Detektor und gut geeignet für die 240 Volt Netzspannung. Der MOC
3041/43 ist hier wg. der lediglich bei 400V liegenden
Spannungsfestigkeit sehr knapp bemessen. Das der ZC Detektor hier fehl
am Platz ist, wurde ja schon erwähnt.
http://www.mikrocontroller.net/articles/TRIAC