Projekt: HomeMatic-Wired LED-Dimmer / bräuchte Hilfe

Hallo zusammen,

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 :frowning:

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.

Vielen Dank für eure Hilfe


EDIT:
Die Lösung gibts hier: http://www.ip-symcon.de/forum/f19/projekt-homematic-wired-led-dimmer-braeuchte-hilfe-12105/index2.html#post111162


pdf.zip (788 KB)

Signalverlauf.zip (34.8 KB)

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.

Gruß

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.

Gruß Helmut

Hallo Hemlut,

danke für die Antwort.

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 :frowning:

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:

0% 0,012V 0us
1% 2,808V 168us
2% 2,839V 170us
3% 2,866V 172us
4% 2,891V 173us
5% 2,914V 174us
6% 2,936V 176us
7% 2,954V 177us
8% 2,974V 178us
9% 2,990V 179us
10% 3,008V 180us
20% 3,110V 186us
30% 3,171V 190us
40% 3,228V 194us
50% 3,295V 198us
60% 3,360V 202us
70% 3,412V 204us
80% 3,456V 206us
90% 3,538V 212us
99% 3,720V 224us
100% 4,250V 0us

(Die us sind die Pulsbreite vom HM-Atmel-PWM).

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!
Wenn du solche Messung stabil hast, dann läßt sich doch über den AD-Wandler was machen.

Für’n PIC, wüßte ich was, Atmel… habe ich lange nicht’s mehr gemacht.

Kann es auch ein PIC werden?

Gruß Helmut

Hallo,

klaro kanns auch andere Interface-Hardware sein.
Bin für jede Hilfe dankbar :).
Ich blick mich bei der Atmel-Programmiererei einfach nicht durch.

Für Atmel und CControl hab ich das Programmier-Equipment rumliegen, hab aber auch kein Problem mir noch welches für PICs anzuschaffen :stuck_out_tongue:

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?

Gruß Helmut

Hallo,

genau das was ich vor hatte! :slight_smile:
(Ausser das 100% = 4,25V sind :rolleyes:)

Was brauch ich denn da alles an Hardware?
Welchen PIC soll ich nehmen?
Kannst du einen Programmer empfehlen?

Ich befürchte ich werde auch beim programmieren des PIC hilfe brauchen, da ich mich da sicher auch nicht wirklich durchblicken werde… :o

Vielen Dank
Christian

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. :slight_smile:

Kommt der Code dem Nahe, was du willst?

PWM_AD_WANDLER_TEST.zip (706 Bytes)

Hallo Helmut,

Viiiiiiiiieeeeelen Dank, du bist echt der Hammer :slight_smile:

Hab mir mal ein paar von den PICs bestellt, den rest der Schaltung hab ich „lagernd“.

Hättest du noch eine Empfehlung für einen Programmer für den PIC?
Bzw. welche Software nehm ich am besten zum Programmieren/Flashen?

Vom Platz her sollte es kein Problem sein, ich mach mal das Platinen-Layout bis der PIC da ist…

Hallo Christian,
die Software, die ich für die PIC’s nehme, ist MikroebasicPro für PIC.

Dein Code ist noch mit der Demoversion übersetzbar.

Wenn man nicht viel investieren will, dann ist der Sprutbrenner erste Wahl.

Aber auch in der Bucht gibt es Preiswertes.

Der Vorteil von Mikroe sind die fertigen Lib’s. Ohne Die wäre ich auch nicht auf PIC Kontroller umgestiegen…

CAN-BUS per Hand, dazu reicht mein Brain nicht… brauche ich auch nicht, gibt 'ne LIB, super Sache!

Gruß Helmut

Hallo,

die mikroBasicPro ist gar etwas teuer aber wenn für mich jetzt mal die Demo auch reicht, schau ichs mir mal an…

Als Brenner werd ich mal den nehmen: MPLAB COMPATIBLE PIC PROGRAMMER FOR 8/18/28/40 PIN DEVICES
Schaut vernünftig aus und der Preis passt eigentlich auch…

Mal schauen, vielleicht fallen mir ja noch ein paar Sachen ein die man mit nem PIC anfangen kann, dann kauf ich mir das mikroBasicPro eventuell doch :stuck_out_tongue:

Danke

Ja, kommt immer drauf an, wieviel man damit macht.

Der Vorteil von Mikroe ist: Livetime Update !

Keine Updatekosten mehr, demnächst gibt es eine TFT-LIB für Farbdisplay’s, kostet dann nichts extra.

Gruß Helmut

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.

controller.JPG

neu2.jpg

Hallo,

hab mal schnell was gebastelt:

Ist doch nicht soooo viel Platz auf dem Print, es geht sich aber aus…

Frage:
Wozu sind die 2 Potis gut?
Zur Einstellung der Referenzspannung?

Wenn ich die PICs hab, werd ich das ganze mal auf nem Lochraster zusammenfummel und wenns funktioniert den Print fertigen lassen…

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.

Gruß Helmut

Hallo,

hier das Update:

Der Spannungsregler bleibt ein TO220 da ich ungern 19V mit nem Linearregler verbrate :D. Da kommt ein Schaltregler drauf: http://www.recom-international.com/pdf/Innoline/R-78Bxx-1.0_L.pdf

Hallo Christian,
wenn es ein Schaltregler ist, dann mach mal lieber noch einen 100nF möglichst nahe am Reglerausgang.

Den Regler noch ein wenig weiter weg vom µP, wenn es geht.

Ich weiß auch nicht, was Die machen, wenn sie so wenig Last haben…

Ev. doch ein Regler für 9Volt und dahinter einen 78L05, mußt mal ins Datenblatt schauen ob da was drüber steht.

Gruß Helmut

Hier gehts ja ab. Da ist man mal einige Tage beschäftigt und schon ist das Projekt fast fertig.
Sieht doch sehr gut aus :slight_smile:
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?

Danke und Gruß

Der ICD3 unterstützt ja noch andere Prozessoren, 3Volt usw.

Den 18F können beide brennen, ich meine, Debuggen geht damit auch, aber ich habe keines von den Geräten.

Gruß Helmut