WLAN Dimmer

Fragen zu Schaltungen, Elektronik, Elektrik usw.

Moderator: T.Hoffmann

Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

Do, 12.04.18, 10:09

und an dem Upload per Oberfläche versuche ich mich auch mal.
Ok. Wenn Du das Beispiel auf dem 'Beginner's Guide to the ESP8266' übernehmen willst, musst Du eigentlich nur die edit seite ergänzen:

Code: Alles auswählen

  server.on("/edit.html",  HTTP_POST, []() {  // If a POST request is sent to the /edit.html address,
    server.send(200, "text/plain", ""); 
  }, handleFileUpload);                       // go to 'handleFileUpload'
(Zwischen: server.on("/saveconfig", HTTP_POST, handleSaveConfig); und server.onNotFound(handleNotFound); )
Ferner die beiden Methoden 'handleFileUpload' und 'handleNotFound' einfügen (die momentan verwendete 'handleNotFound' einfach ersetzen).
Und natürlich die edit.html (respektive edit.html.gz) in den data ordner kopieren. Damit es dann nicht zu 404 Fehlern kommt, auch noch die anderen Dateien (aber ohne die index.html und config.html respektive deren .gz Versionen).

Wegen dem Problem am Dimmbeginn: Nicht das ich wüsste. Wenn ich dazu komme, hänge ich mal mein Oszi dran.
[edit]
Kann ich bestätigen. Es ist wohl eine Art 9 Bit PWM. Es sind immer 2 Werte identisch: 0+1 (=0%), 2+3 (=0.4%), 4+5 (=0.6%) ... und am oberen Ende sind es 3 Werte (1021-1023) die ein 100% Signal liefern (die LED ist gegen + 3.3V angeschlossen - daher ist 1021-1023 = aus). Die kürzeste An oder Aus Zeit liegt bei rund 4µS. Die PWM Frequenz liegt bei knapp 1000Hz (laut meinem Oszi 997 Hz - wie genau das ist, weiß ich nicht).
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Do, 12.04.18, 18:53

Borax hat geschrieben: Kann ich bestätigen. Es ist wohl eine Art 9 Bit PWM. Es sind immer 2 Werte identisch: 0+1 (=0%), 2+3 (=0.4%), 4+5 (=0.6%) ... und am oberen Ende sind es 3 Werte (1021-1023) die ein 100% Signal liefern (die LED ist gegen + 3.3V angeschlossen - daher ist 1021-1023 = aus). Die kürzeste An oder Aus Zeit liegt bei rund 4µS. Die PWM Frequenz liegt bei knapp 1000Hz (laut meinem Oszi 997 Hz - wie genau das ist, weiß ich nicht).
Hast du die Werte 0-1023 direkt auf den Ausgang geschrieben? Die 1kHz sind wohl Standard, können aber wohl mit analogWriteFreq() geändert werden. Ob das aber einen Einfluß zusätzlichen hat?
Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

Do, 12.04.18, 21:18

Hast du die Werte 0-1023 direkt auf den Ausgang geschrieben?
Ja.
Ob das aber einen Einfluß zusätzlichen hat?
Da müsste man sich erst mal durch diverse ESP Foren durch suchen. Das hat bestimmt schon mal jemand genauer untersucht.
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Fr, 13.04.18, 06:55

Möglicherweise. Aber auch die Info, dass immer 2 Werte ein identisches Signal liefern, konnte ich so bisher nicht finden. Muss mal direkt danach suchen.
Blöd ist es allemal

Edit: es scheint wohl so. Das hier habe ich gefunden:
with default values you get the maximum that the software can do, or:

10bit@1KHz with CPU at 160MHz (~1MHz)
9bit@1KHz with CPU at 80MHz (~500KHz)
The routine will automatically downscale the range and values when 80MHz CPU is detected.
Since this is a software driver, timing isn't 100% accurate, but pulse length stays constant. Error is higher with lower values given.
Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

Fr, 13.04.18, 15:18

Ok. Also müsste man entweder selbst eine PWM Routine schreiben (was aber nicht gerade einfach ist - muss ja in 'Echtzeit' laufen), oder sich einfach damit abfinden. 9 Bit ist ja immerhin schon mehr als die üblichen kommerziellen PWM Dimmer machen (meist 8 Bit, teilweise auch nur 7 Bit). Und die Dimmereingänge an einer KSQ sind oft noch 'träger' und schalten schon bei weniger als 5% PWM komplett ab.
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Fr, 13.04.18, 21:37

Nun, ein Teil des Problems habe ich identifiziert: die Power-Funktion im ESP akzeptiert nur integer-Werte im Exponent. Nach umschreiben auf

Code: Alles auswählen

1.3*pow(1.069675, dimmvalue-1)
, was in etwa dasselbe macht und Einfügen einer linearen Funktion im unteren Teil sind die Stufen weg und das erste Leuchten kommt schon bei "3", nicht erst bei "18". So kann man das lassen.

Auf der Seite ist auch ein Link zu einer verbesserten PWM Routine, die wohl 5000 steps kann (bei 1kHz) oder auch 19kHz (8 Bit). Derzeit brauche ich das aber wohl nicht.

Jetzt muss ich erst mal wieder etwas Hardware machen: das neue Modul braucht eine 12V => 3.3V Versorgung, und einen "PWM Verstärker" für den Dimm-Eingang am LCM-40.
Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

Fr, 13.04.18, 23:13

Nun, ein Teil des Problems habe ich identifiziert...
Ok. Ich muss zugeben, dass ich das nie getestet habe. Aber wenn es jetzt geht, ok!
das neue Modul braucht eine 12V => 3.3V Versorgung
Da würde ich einen billigen China Step-Down Wandler nehmen. Und einen dicken Kondensator für den ESP (ich verwende da immer 1500 µF - die gab es mal günstig bei Pollin). 470µF müssten auch schon reichen, aber nicht wesentlich weniger. Der ESP zieht ziemlich hohe Stromspitzen (0.5A) beim senden. Aber zum Glück nur kurz.
und einen "PWM Verstärker" für den Dimm-Eingang am LCM-40.
Einfach einen Feld-Wald-Wiesen Transistor nehmen und als 'Open Kollektor' direkt an den Dimm-Eingang hängen. Ging bei mir problemlos.
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Sa, 14.04.18, 08:30

Genau so sieht die Planung aus, nur mit der Auslegung des Kondensator war ich mir noch nicht sicher.
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Sa, 16.06.18, 11:38

Borax hat geschrieben: Ich habe aber keine Ahnung wie das auf einem iPhone aussieht...
Eine, oder vielleicht eher zwei Fragen noch dazu. Auf meinem 6er Iphone klappt das problemlos. Hast du eine Ahnung, warum ich auf einem 4er immer nur eine horizontale Ausrichtung des sliders bekomme?
Ich habe auch schon probiert, am PC mit den Fensterbreiten und -höhen zu spielen, bei ca. 50/50 scheint er zu flippen. Aber einstellen kann man da nichts, oder?


Nachtrag: Habe jetzt die 12V vom Hilfsausgang und Dim +/- mit Optokoppler getrennt, zur Potentialtrennung. Der C/E des Optos direkt an den Dimmeingang. Beim Einschalten, solange der ESP hochläuft, habe ich dann aber noch keinen Dimmwert am Dimmeingang des LCM anliegen. Wie kann ich die ~0,2sek "HELL" vermeiden?
Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

So, 17.06.18, 21:37

Hast du eine Ahnung, warum ich auf einem 4er immer nur eine horizontale Ausrichtung des sliders bekomme?
Nein. Wie ganz am Anfang schon mal gesagt, hab ich von iPhones nicht die geringste Ahnung.
Wie kann ich die ~0,2sek "HELL" vermeiden?
Kondensator (am Dimmeingang des LCMs) ? Änderungen des Dimmwertes sind dann zwar auch nicht mehr so schnell, aber vielleicht ist das gar nicht so auffällig. Oder den Dimmeingang des LCM mit einem Transistor auf Masse ziehen, der seinen Basisstrom direkt vom 12V Ausgang bekommt (über einen sehr großen Widerstand). Zusätzlich die Basis dieses Transistors mit einem kleinen Widerstand an einen Pin des ESP hängen, der dann auf Low gesetzt wird (wenn der ESP 'richtig' läuft). Dadurch wird der Transistor wieder hochohmig und 'stört' nicht mehr.
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Mo, 18.06.18, 07:35

Die Idee mit dem Kondensator probiere ich mal, ob der sich mit der PWM verträgt wird man sehen.

Laut Datenblatt des LCM sollte ich 12V Masse und Dim - nicht verbinden, keine Ahnung was für ein Potentialunterschied zwischen denen besteht, deshalb auch der Opto. Zusätzliche Bauteile wie den vorgeschlagenen Transistor sehe ich deshalb erstmal kritisch.

Bzgl. Des IPhones muss ich mich wohl doch einlesen, was das sein könnte 8)
Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

Mo, 18.06.18, 08:26

keine Ahnung was für ein Potentialunterschied zwischen denen besteht
Wundert mich. Ich habe das LCM ja auch mit einer ähnlichen 'Konstruktion' am Laufen. Und da war/ist Dim- und 12V Masse intern verbunden (selbst nachgemessen). Vielleicht haben die inzwischen aber das Schaltungs-Design geändert. Du kannst aber auch mit dem Transistor den Optokoppler ansteuern. Müsste genauso gehen.
Bzgl. Des IPhones muss ich mich wohl doch einlesen, was das sein könnte
Yep. Kann man da vielleicht auch einen alternativen Browser (z.B. Firefox) verwenden? Wie gesagt, von Apple hab ich keine Ahnung.
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Sa, 23.06.18, 18:39

So, das Software Problem konnte ich lösen:

"iOS safari still requires browser prefixes for transform

Duplicate all of your transforms and add a -webkit- prefixed version before

Example

Code: Alles auswählen

.deg0 { 
    -webkit-transform: translate(5.2em);
    transform: translate(5.2em);
}
"
Das gilt wohl nur für mein altes 4er, nicht für das 6er :)

Allerdings hat mein erster Versuch, an den Eingang des Optos parallel zum Ausgang des ESP ein 1k Widerstand auf 3V3 zu legen nichts gebracht. Langwierige Basteleien sind gerade leider etwas blöd, da die Lampe schon "live" ist 8)
Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

Sa, 23.06.18, 23:12

das Software Problem konnte ich lösen
Sehr gut!
Allerdings hat mein erster Versuch, an den Eingang des Optos parallel zum Ausgang des ESP ein 1k Widerstand auf 3V3 zu legen nichts gebracht.
Nicht auf 3.3V sondern (z.B. über 22K) gleich an die 12V (damit der Opto ausschaltet, sobald das LCM Strom liefert).
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

So, 24.06.18, 09:13

Borax hat geschrieben: Nicht auf 3.3V sondern (z.B. über 22K) gleich an die 12V (damit der Opto ausschaltet, sobald das LCM Strom liefert).
Und das quittiert der ESP nicht mit Ableben? Bin mit dem "da darf an die Eingänge nur 3V3 vielleicht etwas übervorsichtig.
Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

Mo, 25.06.18, 08:33

Keine Sorge. Wenn Du den Eingang des Optos über einen hinreichend großen Widerstand an 12V hängst, kann dort die Spannung nie über 1.25V steigen, weil ja die IR-LED im Optokoppler bei dieser Spannung gut leitet. Nur wenn die IR-LED im Optokoppler durch brennt, kann dort die Spannung höher werden. Das wiederum kann bei einem hinreichend großen Vorwiderstand aber auch nicht passieren ;) Ob 22K reichen (oder ob der Widerstand doch etwas kleiner sein muss) hängt vom Optokoppler ab. Bei 22K und 12V hast Du etwa 0.5mA für die IR-LED im Optokoppler. Wie gut dann der Fototransistor durch schaltet (sprich ob das reicht um den Dimm-Eingang des LCM auf Masse zu ziehen) musst Du testen.
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Mi, 27.06.18, 22:02

Borax hat geschrieben:Keine Sorge. Wenn Du den Eingang des Optos über einen hinreichend großen Widerstand an 12V hängst, kann dort die Spannung nie über 1.25V steigen, weil ja die IR-LED im Optokoppler bei dieser Spannung gut leitet.
Stimmt, etwas zu übervorsichtig :oops:

Habe es jetzt mit Widerständen an 12V direkt an den Eingang des Optos versucht: 10k, nur noch 0,1s statt 0,3s helles aufleuchten. Bei 4k7 oder weniger funktioniert die Dimmung nicht mehr. So geht es also nicht.

Dann dachte ich, ich skizziere mir das in LSpice, aber ich finde keine Möglichkeit einen undefinierten/offenen Ausgang des ESP zu modellieren, so in etwa sieht der aktuelle Stand aus:
Bildschirmfoto vom 2018-06-27.png
Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

Do, 28.06.18, 07:57

ber ich finde keine Möglichkeit einen undefinierten/offenen Ausgang des ESP zu modellieren
Musst Du ja auch nicht. Ein undefinierter/offener Ausgang ist ja nur ein sehr hochohmiger Widerstand. Prinzipiell könntest Du den mit einem N-Fet simulieren, dessen Gate auf Masse liegt.
Bei 4k7 oder weniger funktioniert die Dimmung nicht mehr. So geht es also nicht.
Ok. Aber der Einschalt-Lichtpuls ist dann weg? Dann muss es eben ein entsprecchend niedriger Widerstand sein, der aber noch über einen Transistor geschaltet wird. Und wenn der ESP 'richtig' läuft wird der Transistor hochohmig geschaltet.
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Do, 28.06.18, 17:49

Borax hat geschrieben: Musst Du ja auch nicht. Ein undefinierter/offener Ausgang ist ja nur ein sehr hochohmiger Widerstand. Prinzipiell könntest Du den mit einem N-Fet simulieren, dessen Gate auf Masse liegt.
Das hatte ich oben ja versucht, und hatte nicht geklappt. Etwas weiter kam ich, durch Verwendung eines nmos. (Eines der) Probleme wird sein, dass in Realität der ESP Ausgang nicht nur STromquelle, sondern auch Senke ist. Das übersteigt meine LTSpice Fähigkeiten.
Ok. Aber der Einschalt-Lichtpuls ist dann weg? Dann muss es eben ein entsprecchend niedriger Widerstand sein, der aber noch über einen Transistor geschaltet wird. Und wenn der ESP 'richtig' läuft wird der Transistor hochohmig geschaltet.
Ja, Lampe bleibt dunkel (niedriger Widerstand) , bzw. es gibt ein wildes Geblinke, vermutlich weil sich die beiden Stromläufe ins Gehege kommen.

Aber so müsste es ja dann funktionieren, oder lieber Vorwiderstand ans Gate?
Bildschirmfoto vom 2018-06-28 18-43-16.png
Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

Do, 28.06.18, 22:05

dass in Realität der ESP Ausgang nicht nur STromquelle, sondern auch Senke ist.
Ja. Aber im undefinierten Zustand sollte der ESP Ausgang sich ja noch wie ein Eingang verhalten (also rein als hochohmiger Widerstand). Erst nach der Definition des ESP-Pins als Output ist er als Totem-Pole Ausgang entweder niederohmig mit GND oder VCC 'verbunden'. Zumindest die AVR µCs verhalten sich so. Beim ESP habe ich das noch nicht überprüft... Möglicherweise verhalten sich die Pins im undefinierten Zustand tatsächlich 'undefiniert'. Wäre nicht der erste ESP-Nachteil. Was mir auch schon 'Ärger' gemacht hat ist das Fehlen eines Schmitt-Trigger-Eingangs wenn man einen Pin als Eingang verwendet. Bei einer bestimmten Spannung toggelt der in sehr schneller Folge hin und her. Das 'verhindert' auch die Verwendung eines RC Filters (z.B. zum Taster-Entprellen).
Aber so müsste es ja dann funktionieren
So sehe ich das auch. Aber:
lieber Vorwiderstand ans Gate?
Nein, aber eine Zenerdiode (oder LED) zwischen Gate und Masse, die dafür sorgt, dass die Spannung am Gate von M1 nicht größer als 3.3V werden kann. Weil sonst ist ja ein Pin des ESP über 100K an 12V angeschlossen.
Oder einen NPN Bipolar-Transistor nehmen (BC547C o.ä.). Durch dessen Basis-Emitter-Diode wird dann die Spannung an diesem Pin auch auf max. 2V begrenzt (1.25V von der IR-Diode + 0.7V BE-Strecke). In diesem Fall aber noch einen (kleinen) Basis-Vorwiderstand zwischen ESP-Pin und Basis verwenden (z.B. 470 Ohm).
Ich bin auch nicht sicher, ob der BS170 ein geeigneter Transistor dafür ist. Seine 'typische' Gate Threshold Voltage beträgt zwar angeblich 2V, was gerade so reichen würde: 3.3V - 1.25V (von der IR.Diode) ergibt 2V. Im Datenblatt sind aber nur Kurven ab 4V GS-Spannung angegeben. Da würde ich Dir eher die IRLML-Typen empfehlen (z.B.: https://www.reichelt.de/MOSFETs/IRLML-2 ... ARCH=IRLML ). Die haben bei 2V GS-Spannung schon weniger als 1 Ohm Rds...

[EDIT]
Das geht so überhaupt nicht! Du verwendest hier N-Mosfets quasi in einer 'Emitterfolger-Schaltung'. Das geht aber nicht, weil ja zwischen Gate und Source keine 'echte' Verbindung besteht (das Potential an Source ist nur über die zunächst hochohmige IR-LED mit GND verbunden, hängt also quasi 'in der Luft' - so lässt sich die Gate-Source Kapazität also schlecht laden...). Wenn Du in der LT-Spice Simulation mal 'Start external DC supply voltages at 0V' aktivierst, wirst Du sehen was ich meine...
Mit Bipolar-Transistoren geht es:
OptoKoppler_LCM_Schalter1.png
V3 und V5 sind nur zur Simulation. Ist jetzt sehr nah an Deinen Plan angelehnt. Geht vmtl. wesentlich einfacher (ESP-Pin2 direkt über 100 Ohm auf die IR-Díode; Basis von Q1 direkt über 470 Ohm an den ESP-Pin2 - aber so lässt sich das nicht simulieren).
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Fr, 29.06.18, 18:56

OK. Zurück auf Anfang und neu überdacht. Dabei kam folgende Schaltung heraus. Der ESP schält nun nicht mehr selber, sondern verhindert nur noch, dass der Widerstand den Opto schaltet.
Einwände?
Bildschirmfoto vom 2018-06-29 19-46-29.png
Bildschirmfoto vom 2018-06-29 19-46-29.png (12.85 KiB) 2750 mal betrachtet
Borax
Star-Admin
Star-Admin
Beiträge: 10164
Registriert: Mo, 10.09.07, 16:28

Fr, 29.06.18, 21:42

Keine Einwände. :D
dieterr
Ultra-User
Ultra-User
Beiträge: 773
Registriert: Mo, 04.01.16, 18:16

Sa, 30.06.18, 21:15

Hardware funktioniert :D Leider hat der ESP beim Start noch etwas Schluckauf - ein kurzes Blinken wie beim Start einer Neonröhre bevor er sauber läuft. Kann sein, dass die Stromversorgung nicht ideal ist. Aber zu Sicherheit werde ich der der Software wohl sagen, dass sie ein paar Zyklen warten muss. Zum Glück läuft das OTA-Update, da kann die Hardware an Ort und Stelle bleiben.
Antworten