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

Auf den 1µF würde ich noch bauen.

Wäre auch ein Thema für sich: die Auge-LED-Empfindung da noch rein zu programmieren.
Diese logaritmische Funktion der Anpassung für’s Auge. Müßte eigentlich noch rein…

Hat jemand da eine Formel parat?

Gruß Helmut

Hi,

Ist am Print mit drin, hab ich nur am Plan noch nicht drin…

Das wäre cool…

Ich habe dir mal diesen Code übersetzt:

program PWM_AD_WANDLER_TEST

' Declarations section
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(10000)                    ' PWM1 module mit 10KHz
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*10)/25                 ' /26 fuers 2. Hex-File
If LED_PWM_WERT <0 then LED_PWM_WERT =0  end if
If LED_PWM_WERT >99 then LED_PWM_WERT =255  end if
  select case LED_PWM_WERT

        case 0   LED_PWM_Wert = 0
        case 1   LED_PWM_Wert =21
        case 2   LED_PWM_Wert =21
        case 3   LED_PWM_Wert =22
        case 4   LED_PWM_Wert =22
        case 5   LED_PWM_Wert =23
        case 6   LED_PWM_Wert =23
        case 7   LED_PWM_Wert =24
        case 8   LED_PWM_Wert =25
        case 9   LED_PWM_Wert =25
        case 10  LED_PWM_Wert =26
        case 11  LED_PWM_Wert =27
        case 12  LED_PWM_Wert =27
        case 13  LED_PWM_Wert =28
        case 14  LED_PWM_Wert =29
        case 15  LED_PWM_Wert =29
        case 16  LED_PWM_Wert =30
        case 17  LED_PWM_Wert =31
        case 18  LED_PWM_Wert =32
        case 19  LED_PWM_Wert =33
        case 20  LED_PWM_Wert =33
        case 21  LED_PWM_Wert =34
        case 22  LED_PWM_Wert =35
        case 23  LED_PWM_Wert =36
        case 24  LED_PWM_Wert =37
        case 25  LED_PWM_Wert =38
        case 26  LED_PWM_Wert =39
        case 27  LED_PWM_Wert =40
        case 28  LED_PWM_Wert =41
        case 29  LED_PWM_Wert =42
        case 30  LED_PWM_Wert =43
        case 31  LED_PWM_Wert =44
        case 32  LED_PWM_Wert =46
        case 33  LED_PWM_Wert =47
        case 34  LED_PWM_Wert =48
        case 35  LED_PWM_Wert =49
        case 36  LED_PWM_Wert =50
        case 37  LED_PWM_Wert =52
        case 38  LED_PWM_Wert =53
        case 39  LED_PWM_Wert =55
        case 40  LED_PWM_Wert =56
        case 41  LED_PWM_Wert =57
        case 42  LED_PWM_Wert =59
        case 43  LED_PWM_Wert =60
        case 44  LED_PWM_Wert =62
        case 45  LED_PWM_Wert =64
        case 46  LED_PWM_Wert =65
        case 47  LED_PWM_Wert =67
        case 48  LED_PWM_Wert =69
        case 49  LED_PWM_Wert =71
        case 50  LED_PWM_Wert =72
        case 51  LED_PWM_Wert =74
        case 52  LED_PWM_Wert =76
        case 53  LED_PWM_Wert =78
        case 54  LED_PWM_Wert =80
        case 55  LED_PWM_Wert =82
        case 56  LED_PWM_Wert =84
        case 57  LED_PWM_Wert =87
        case 58  LED_PWM_Wert =89
        case 59  LED_PWM_Wert =91
        case 60  LED_PWM_Wert =94
        case 61  LED_PWM_Wert =96
        case 62  LED_PWM_Wert =98
        case 63  LED_PWM_Wert =101
        case 64  LED_PWM_Wert =104
        case 65  LED_PWM_Wert =106
        case 66  LED_PWM_Wert =109
        case 67  LED_PWM_Wert =112
        case 68  LED_PWM_Wert =115
        case 69  LED_PWM_Wert =118
        case 70  LED_PWM_Wert =121
        case 71  LED_PWM_Wert =124
        case 72  LED_PWM_Wert =127
        case 73  LED_PWM_Wert =131
        case 74  LED_PWM_Wert =134
        case 75  LED_PWM_Wert =138
        case 76  LED_PWM_Wert =141
        case 77  LED_PWM_Wert =145
        case 78  LED_PWM_Wert =149
        case 79  LED_PWM_Wert =152
        case 80  LED_PWM_Wert =156
        case 81  LED_PWM_Wert =161
        case 82  LED_PWM_Wert =165
        case 83  LED_PWM_Wert =169
        case 84  LED_PWM_Wert =173
        case 85  LED_PWM_Wert =178
        case 86  LED_PWM_Wert =183
        case 87  LED_PWM_Wert =187
        case 88  LED_PWM_Wert =192
        case 89  LED_PWM_Wert =197
        case 90  LED_PWM_Wert =202
        case 91  LED_PWM_Wert =208
        case 92  LED_PWM_Wert =213
        case 93  LED_PWM_Wert =219
        case 94  LED_PWM_Wert =224
        case 95  LED_PWM_Wert =230
        case 96  LED_PWM_Wert =236
        case 97  LED_PWM_Wert =242
        case 98  LED_PWM_Wert =249
        case 99  LED_PWM_Wert =255

    end select


PWM1_Set_Duty(LED_PWM_WERT)        ' Das mache ich hier
wend
end.

Probiere mal aus, könnte am Anfang noch dunkler sein?

Gruß Helmut

Gruß Helmut

PWM_AD_WANDLER_TEST.zip (1.76 KB)

PWM_AD_WANDLER_TEST_26.zip (1.77 KB)

Hi,

irgendwas hats da.
Bis 50% wirds heller, bei 60% wirds wieder dunkler (ca. den wert von 30%) und geht dann wieder hoch.
Wobei die 50% etwa so hell sind wie die 90%…

Hmm,
warte mal bis Sonntagabend, ich muß es dochmal, zum probieren, hardwaremäßig aufbauen.
Hardware ist mit diesem Tool besetzt, das ist der Hammer…

Kannst du EINER-Schritte eingeben?
Ist doch 0-100%, oder?

Hast du 'ne TTL-RS232-Wandler-Geschichte da? Dann könnte ich den Wert mal per RS232 ausgeben, so zum debuggen.

Gruß Helmut

Edit: Gedanken- und Copy-Paste-Fehler, neues Hex-File 2 Treads vorher.

Hi,

Ja, 1% Schritte sind möglich.

Funktioniert viel besser…
Der untere Bereich ist jetzt um einiges angenehmer.
Aber der Sprung von 99% auf 100% is doch sehr heftig.

Hallo Cristian,
habe dir noch ein zweites Hex-File, 3 Treads vorher, rangehängt.

Sind sonst alle anderen Schritte angenehm und einigermassen passend fürs Auge?
Gruß Helmut

Hallo zusammen,

die Platinen sind da :D.
(Hat etwas länger gedauert, da ich noch ein anderes Projekt fertig machen musste, vor der Bestellung).

Zusammengebaut ist auch schon alles 2x.

Anbei die Bilder vom Originaldimmer und vom gemoddeten:

„original_1“ und „original_2“ sind vom ELV-Dimmer.
„cpu_mod“ zeigt die kleinen Änderungen die am Controller-Print nötig sind.
(Opto-Koppler raus, Brücke zur Stiftleiste, durchtrennte Leiterbahn bei der Stiftleiste)
„final“ ist der ferig gemoddete mit dem neuen „Leistungsprint“.

In der ZIP-Datei sind der „ungefähre“ Schaltplan, das von mir verwendete hex-File und das Layout-File vom Print.

Rein rechnerisch sollten die Leiterbahnen auf der Ausgangsseite etwa 3A verkraften.
Die Stiftleiste zwischen den Prints (für die Sicherung) kann auch max. 3A ab.
Der IRF kann ja sowieso locker 25A ab…

Praxis-Test folgt demnächst :stuck_out_tongue:

An dieser Stelle noch mal vielen Dank an Helmut für die Unterstützung :slight_smile:

DC-Dimmer.zip (24 KB)

Hast du denn mit der Leuchtwirkung in dem gewünschten Bereich jetzt Erfolg gehabt?
Gruß Helmut

Hi,

hab jetzt das, glaub ich, vorletzte File von Dir genommen.
Da ist der Bereich bis ca. 90% angenehm verteilt und der „Sprung“ dann auf die 100% stört nicht.

Hallo alle zusammen. Leider habe ich erst jetzt das schöne Projekt entdeckt, ich bin ja erst seit ein paar Tagen ein HomeMatic Benutzer :c)

Ich will das Thema mal wieder hoch holen. Habt Ihr den Dimmer dann erfolgreich zum laufen gebracht?

Diese ganze A/D Wandler Geschichte sieht mir recht labil aus. Warum wird nicht einfach die Pulsweite des Atmega Ausgangs gemessen und mit einer kleinen Umberechnung in einem kleinen Prozessor ein eigener PWM Ausgang ausgegeben.

Damit könnte man die original Platine des HM Dimmers behalten, die Endstufe leicht moidifizieren,kleinen Prozessor zur Pulsbreitenwandlung dazu und fertig, so wie es der Threadstarter sich das ursprünglich vorstellte?

Ein HM-PWM-Dimmer für 12 und 24 V ist fürs nächste Heft 05/2011 angekündigt. Erscheint ab Ende September.

Gruß
Bruno

Mach mal einen Vorschlag.

Gruß Helmut

Hallo,

Ja, funktionieren einwandfrei :smiley:

diesen Post hast du schon gelesen, oder?

Genau so wurde es gelöst… :wink:

Hallo,

bin zwecks Urlaub gerade nicht in Reichweite des aktuellen ELV-Journals und auf der Homepage steht noch nix…
Wird das ein Funk oder Wired Dimmer?

Ich befürchte mal Funk :frowning:

Du hast Dir Platinen machen lassen… Meine Strategie wäre gewesen:

Originalplatine weiter verwenden, Endstufe raus werfen, vom Atmel Ausgang auf einen kleinen Prozessor Eingang. Vom kleinen Prozessor Ausgang auf einen Transistor, den Transistor an die Stelle löten, wo vorher der Thyristor war, fertig. nur der kleine Prozessor hätte keinen sauberen Platz gehabt, den könnte man in SMD halten und irgendwo flach dazu kleben.

Hardwaretechnisch kleiner Aufwand. Softwaretechnisch hätte ich die vom Atmel ausgegebene Pulsweite einfach eingemessen und in eigene Pulsweite umgerechnet und ausgegeben.

Aber wenn es wirklich bald einen HM PWM Dimmer geben sollte, dann ärgere ich mich richtig dass ich mir gerade den Chromoflex III mit USB Sender bestellt habe.

:wink:
So ähnlich?
Oder so?

Gruß Helmut

Yo, genau… Das Bild habe ich schon mal gesehen. Hast du dem Atmel die Nullphasenerkennung weg genommen? Evtl gibt er dann gar kein Puls mehr aus.

Nööh,
der hatte nie Eine…

Gruß Helmut

Das Teil kommt in Heft 05/2011, Ende September 2011. Für weitere Dateils müsste ich die Glaskugel befragen, aber die ist zur Reparatur. :cool:

Kannst das Projekt Urlaub also in Ruhe abschließen … :smiley:

Gruß
Bruno