VRef - ist jetzt wieder an Pin 4.
Und an beide VRefs hab ich noch 100nF gegen GND gehängt, zwecks glättung.
Manchmal ist das Datenblatt doch recht Hilfreich :p.
Und man glaubt es kaum, jetzt funktioniert es!
Ein Problem hab ich aber noch:
Ich bekomm die VRef - nur max. auf 2,5V
Bräuchte aber 3,4V.
Ohne PIC in der Schaltung kann ich die 3,4V einstellen aber sobald der PIC drin ist bricht die Spannung auf 0,9V zusammen und ich kann nur bis 2,5V nachregeln.
Sobald ich das Poti einen Hauch weiter dreh, springt mir die Spannung auf 5V.
Hast du eine Idee was das sein könnte?
EDIT: Hi,
hat sich erledigt!
Das Poti war defekt -> getauscht und schon gehts :rolleyes:
= Das ganze funktioniert jetzt.
Danke für deine Bemühungen, ich werd jetzt mal das Print-Layout anpassen und mal welche fertigen lassen…
Hab noch was rausgefunden:
Es macht einen Unterschied welcher Poti/Wiederstand-Spannungsteiler wo dranhängt!
Es funktioniert nur wenn man die Pins 3/4 „vertauscht“.
Also dein Schaltplan geht nur wenn man Pin 3/4 vertauscht…
Ganz erklären kann ich mir das nicht, sind ja eigentlich beide gleich aufgebaut, nur einer „zieht“ gegen Masse der andere gegen 5V.
Wurscht, es geht…
Wegen der 200mV müsst ich dann nochmal mitn Oszi ran…
Ich habs mehrmals probiert.
Wen ich den Spannungsteiler mit den 3k3 richtung +5V an Pin 4 und
den Spannungsteiler mit den 3k3 richtung GND an Pin 5 hab, gehts nicht.
Da ich den VRef- dann nur max. auf 1V raufkrieg.
Tausch ich die Pins gehts einwandfrei.
Hab gestern noch die Schaltung zusammengeklickt und den Print geändert.
Für meine Zwecke gleich mit „fixen“ Refs.
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…
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?
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%…
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
An dieser Stelle noch mal vielen Dank an Helmut für die Unterstützung
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?