ich wollte einen HomeMatic Wired-Dimmer zum LED-PWM-Dimmer umbauen.
Die Idee wäre ja ganz simpel:
Der HMW-Dimmer-Atmel steuert mit einen PWM-Ausgang einen Optokoppler an.
Dieser steuert dann den eigentlichen Dimmer-Controller-Chip vom Leistungsteil an.
Ich hatte vor mit dem PWM-Signal einen BUZ71A anzusteuern…
Leider hat mir der Hersteller vom Dimmer-Chip einen Strich durch die Rechnung gemacht:
Das PWM-Signal ist bei 0% auf 0V aber der restliche Verlauf leider nicht linear
Das ist natürlich blöd, da dann die Led-Stripes bei 10% schon auf über 50% sind.
Da ich aber die Original-Steuerung behalten möchte (zwecks ansteuerung über die CCU), bräuchte ich eine Lösung aus dem „komischen“ Signalverlauf des HM-Atmel ein bauchbares Signal zu machen, mit dem ich den BUZ ansteuern kann…?
Wäre für Hilfe dankbar (vielleicht kann das Ding dann ja noch wer andere auch brauchen :p).
Da die Funk-Phasenanschnittdimmer sicher die gleiche Leistungsstufe verwenden, könnte man deren Ansteuerung sicher auch dafür verwenden.
Die Gedankenspiele basieren auf folgenden Schaltungen:
HS485-Phasenanschnittdimmer (62605-HS485D_km.pdf) (ist fast baugleich dem HMW-Dimmer)
Dimmer für Led-Module LDI1 (61889-LDI1.pdf)
Das Platinenlayout vom HMW-Dimmer wäre perfekt dafür, da man einfach nur eine neue Leistungs-Platine bauen müsste und die Steuerung (fast) 1:1 übernehmen könnte.
Hab auch ein paar Bilder mit den Signalen vom Atmel-Ausgang (0-100%) angehängt.
Hätte kein Problem damit noch einen Microcontroller dazwischen zu hängen,
mir wär aber eine „passive“ Lösung lieber da ich mich bei der Atmel-Programmiererei nicht wirklich auskenne.
Hallo,
bin auch gerade dabei das Homematic System in meine Wohnung einzubauen und bräuchte auch mehrere LED Dimmer. Keine Ahnung wieso ELV dies noch nicht für das Homematic System liefert. Für das billigere FS20 gitbts das schon.
Also selbstbauen. Bin gerade dabei mir einen Funkdimmer zu besorgen, dann baue ich den mal auseinander und schaue mir das genauer an. Kann eigentlich kein großes Problem sein, Endstufe raus und ein 12V Netzteil rein, das dann über PWM ansteuern und es sollte gehen.
Melde mich wenn ich wieder was weiß.
Was ic auch noch gebrauchen könnte, ist eine Analoges-ein und ein Analoges-Ausgangsmodul. 0-5V würden reichen, aber das wird es sicherlich auch nie geben.
Hallo Cristian, Hallo UnbekannterNr1, Baujahr73
ich weiß gar nicht ob ihr’s schon wußtet…
Bei einer normalen Dimmergeschichte werden Triac eingebaut.
Dessen Ansteuerung wird dadurch einfach, weil, wenn man den Triac zündet, er den durchgeschalteten Zustand solange beibehält, bis die Sinuswelle Nulldurchgang hat und kein Strom mehr fließt.
Das bedeutet, vereinfacht, einmal zünden, dann kann die Steuerspannung wieder weg.
Fazit: Für LED und PWM ----> ungeeignet.
Wenn überhaupt möglich, dann mit Phasenabschnitt Schaltung.
Aber auch da gibt es keine Liniearität in dem Lichtempfinden und was noch viel schlimmer ist: PWM-Frequenz ist max 100Hz, das kann das Auge schonmal als „flackerich“ empfinden.
Mein Rat, das Protokoll der Schnittstelle erkennen, sodass man mit der Homematic weiter arbeiten kann und mit eigener Hard- und Software die LED’s (mit dem Protokoll) ansteuert.
So in der Art, wie schon vorgeschlagen, PWM aus dem Phasenab- oder auch Phasenanschnitt-Homematic auslesen und davon eine eigene Steuerspannung für die „eigene PWM-Hardware“ erzeugen.
Nulldurchgang der Netzspannung erkennen, den Ansteuerzeitpunkt des Zündimpuls messen und damit eigene PWM-Hardware ansteuern.
Genau das will ich ja machen!
ABER ich kriegs einfach nicht hin aus dem Steuersignal das aus dem HM-Atmel rauskommt eines zu machen mit dem ich die PWM-Steuerung für die LEDs befeuern kann
Habs schon mit nem RC-Glied versucht um ne Steuerspannung zu kriegen.
Leider bewegt sich die nicht zwischen 0-5V sondern zwischen 2,8 - 4,3V:
Mir fehlt also ein Schaltung mit der ich aus den 2,8 - 4,3V vernünftig nen DC-Dimmer steuern kann…
Ich versuch mir schon seit meinem Ursprungs-Post die Atmel Programmiererei beizubringen um einen solchen als „Übersetzer“ zu benutzen.
Aber das will nicht so richtig, ich habs mehr mit der Hardware als mit der Software :rolleyes:
Hallo Christian,
Die Aufgabe ist:
gegeben ist ein Spannungswandler mit einem Eingang von 2,5V bis 5V.
Die Auflösung ist 10Bit (Wert=0 bis 1023) und Ufef=2,5V
Diese Auflösung ist auf einen Wert von 0 bis 255 zu bringen.
Gewünscht wird ja folgendes:
Also bei deinem 4,9Volt soll ungefähr 255 als High-Ergebniss und bei 2,7Volt ungefähr 0 als Low-Ergebniss rauskommen.
Wie beim Dreisatz:
Dabei ist das Licht/Auge empfinden nicht berücksichtigt.
Der PIC macht dann aus dem Wert ein PWM-Signal von 5kHz und der Auflösung 0-255.
Das müßte doch deinem Wunsch entsprechen?
IM habe ich nicht so die Zeit dafür.
Aber ich setze mich dran, die Parameter kann ich genau übernehmen?
Schätze es wird ein 18F258, hat 28 S-Dil als Gehäuse, viel zu groß für sowas, aber hat Ref-Eingänge und was man so braucht…
Bekommst du den verpackt?
Gruß Helmut
Edit: So könnte es funktionieren, 18f258, 8MHz
program PWM_AD_WANDLER_TEST
' Deklaration
Dim AnalogWert, Rechnung as Word
LED_PWM_WERT as byte
' ########################## Voreinstellungen:
' AD-Wandler Einstellung
' PCFG AN7 AN6 AN5 AN4 AN3 AN2 AN1 AN0 VREF+ VREF- C/R
' 1000 A A A A VREF+ VREF- A A AN3 AN2 6/2
' ReferenzSpannung an AN3 =Ub, an AN2 1/2 Ub = ca 2,5Volt
main:
' Main program
Adcon1= %00001000
CMCON = 0x07
ADC_Init() ' Initialize ADC module
' ################## für PWM ############################################
PWM1_Init(5000) ' PWM1 module mit 5KHz
LED_PWM_WERT = 0 ' current_duty erstmal zu 0
PWM1_Start() ' start PWM1
while (TRUE) ' Hauptschleife
AnalogWert = ADC_Read(0) ' Lese Analogwandler AN0
' Wert ist bei 2,5 Volt ungefähr 0
' bei 5 V ca bei 1023
' dann könnte man den Messwert durch 4 teilen und hat
' einen Wert für die PWM der LED's, regelt mit 0-255!
Rechnung = AnalogWert/4
LED_PWM_WERT = Rechnung
PWM1_Set_Duty(LED_PWM_WERT) ' Das mache ich hier
wend
end.
Der Prozessor ist zwar groß, aber hat einstellbare Ref und PWM-Modul und… ich habe ihn, zum probieren, da.
Hallo,
sitze auch gerade am RGB Controller.
Ich habe im Netz den Code gefunden :
'*******************************************************************************
' Schalter an PD.3 High = "Mood-Modus" Low = "Beleuchtungs-Modus"
' 10k-Poti an PC.0
' LED Rot an PB.1
' LED Grün an PB.2
' LED Blau an PB.3
'*******************************************************************************
$regfile = "m8def.dat"
$crystal = 8000000
Config Portb.1 = Output 'LED Rot
Config Portb.2 = Output 'LED Gruen
Config Portb.3 = Output 'LED Blau
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Compare B Pwm = Clear Up , Prescale = 1
Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Down , Prescale = 1
Enable Timer1
Enable Timer2
Start Timer1
Start Timer2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Dim Pause As Word
Dim Speed As Word
Dim Adc0 As Word
R Alias Compare1a
G Alias Compare1b
B Alias Ocr2
R = 255
G = 0
B = 0
On Int0 Beleuchtung
Enable Int0
Config Int0 = Low Level
Enable Interrupts
'*******************************************************************************
' Einstellen der Dimm-Geschwindigkeit
'*******************************************************************************
Pause = 2000
Speed = 10
'*******************************************************************************
' Mood-Modus fadet alle Farben durch
'*******************************************************************************
Mood:
Do
Incr G
Waitms Speed
Loop Until G = 255
Waitms Pause
Do
Decr R
Waitms Speed
Loop Until R = 0
Waitms Pause
Do
Incr B
Waitms Speed
Loop Until B = 255
Waitms Pause
Do
Decr G
Waitms Speed
Loop Until G = 0
Waitms Pause
Do
Incr R
Waitms Speed
Loop Until R = 255
Waitms Pause
Do
Decr B
Waitms Speed
Loop Until B = 0
Waitms Pause
Return
'*******************************************************************************
' Beleuchtungs-Modus 6 Grundfarben können mittels ADC angewählt werden
'*******************************************************************************
Beleuchtung:
Adc0 = Getadc(0)
Select Case Adc0
Case 0 To 150 :
R = 255
G = 0
B = 0
Case 151 To 300 :
R = 255
G = 255
B = 0
Case 301 To 450 :
R = 0
G = 255
B = 0
Case 451 To 600 :
R = 0
G = 255
B = 255
Case 601 To 750 :
R = 0
G = 0
B = 255
Case 751 To 900 :
R = 255
G = 0
B = 255
Case 901 To 1023 :
R = 0
G = 0
B = 0
End Select
Return
'*******************************************************************************
' Farbtabelle R G B
'*******************************************************************************
' Rot 255 0 0
' Gelb 255 255 0
' Grün 0 255 0
' Cyan 0 255 255
' Blau 0 0 255
' Magenta 255 0 255
'*******************************************************************************
Den habe ich aber schon einwenig verändert, bin dabei den Atmega per LCN anzusprechen.
Der Farbdurchlauf ist schonmal ok, die Treiberschaltung läuft im Moment noch auf Steckbrett (komme nicht dazu, es auf Lochraster zu „werfen“).
Schaltplan, gibt es noch nicht, aus dem „Kopf“ gebaut.
Auf dem Bild ist ein Atmega32, mit 3 Ausgängen auf Mosfet, RGB-Leiste, ist eine 12V Flex.
Hallo Christian,
den Elko mach’ mal auf die Eingangsseite vom Spannungsregler, die Ausgangseite kann 10µF kriegen, das reicht. Muß auch kein 7805 sein, ein 78L05 reicht. Die Leitungen zum BUZ dicker und die Ableitung zum GND auch, da fließt ein weing Strom. Die Widerstände 2,2k könnten auch 3,3k werden, du hast ja bei der Eingangssteuerspannung noch einen Vorwiderstand und einen kleinen Elko gemacht, damit da nicht soviel flackert, das ist auch gut mitgedacht. Ja die Potis sind für die Refs.
Hier gehts ja ab. Da ist man mal einige Tage beschäftigt und schon ist das Projekt fast fertig.
Sieht doch sehr gut aus
Ich hätte es auch mit deinem PIC gemacht. Aber leider ist mein Dimmer immer noch nicht da und ich kann somit die SChaltung von Homematic nicht zerlegen und den Ausgang vom ATMEL noch nicht auslesen.
@ Helmut: Das MikroebasicPro sieht ja interessant aus. Ich arbeit mit der Microchip IDE und dem ICD 2 und dem ICD3
Weißt du ob man den ICD 2 oder ICD 3 mit dem MikroeBasic Pro oder dem MikroC Pro betreiben kann?