mankut80 / AskSinPP_HM-LC-Dim1L-CV

0 stars 0 forks source link

Dimmer Signal Output 7 #1

Open ivo-int opened 1 week ago

ivo-int commented 1 week ago

Hallo Ich habe ihre Schaltung nachgebaut. Da ich mit der Software nicht so bewandert bin, benötige ich etwas Hilfe.

Den Sketch habe ich von ihnen übernommen und die nötigen Anpassungen gemäss ihrer Beschreibung vorgenommen.

Problem: Bei mir ist der Dimmer Output Pin 7 immer 0VDC. Wenn ich dort 3,3VDC anlege, wird die AC-Seite 100% ausgesteuert. Über die WebUi kann ich den Dimmer steuern aber der Ausgang Pin 7 wird nicht angesteuert.

Ich gehe davon aus, dass bei ihnen der Dimmer funktioniert. Wo könnte der Fehler bei mir liegen? Haben die Fuse Bits einen Einfluss?

mankut80 commented 1 week ago

Hallo,

Vorsicht bei dem Versuch, die 3.3V "hart" an den Ausgang des Arduinos zu legen. Wenn dieser seinen Ausgang auf 0V haben will, fließt ein unzulässig hoher Strom, der zu dessen Zerstörung führen kann.

Das Problem könnte auch am Nulldurchgangsdetektor liegen.

Aber zuerst würde ich den Ausgang per Software auf Dauer-An stellen und schauen, ob die Last einschaltet. Probieren Sie mal testweise, im Sketch die Zeile if(!phaseCut.isrunning()) digitalWrite(DIMMERPIN, false);

durch digitalWrite(DIMMERPIN, true);

zu ersetzen.

Dann sollte die Last auf jeden Fall eingeschaltet sein und der Beweis ist erbracht, dass der Ausgang funktioniert. Sollte das nicht funktionieren, könnte es sein, dass der Ausgangspin defekt ist und sie auf einen anderen, freien Pin wechseln müssen (z.B. D6). Das wird dann leider eine ziemliche Frickelei, ist aber machbar.

Dann würde ich noch nach dem Nulldurchgangsdetektor schauen. Schließen Sie am Optokoppler U1 Pin3 und Pin4 kurz und schauen Sie, ob die Last einschaltet. Wenn das funktioniert, prüfen Sie nochmal genau die Bauteilauswahl von R1, R2, D1-D4, Q1 und Q2.

Ein Oszilloskop wäre sehr hilfreich um den Nulldurchgangsdetektor zu prüfen, haben Sie eines zur Verfügung?

17.10.2024 09:52:46 ivo-int @.***>:

Hallo Ich habe ihre Schaltung nachgebaut. Da ich mit der Software nicht so bewandert bin, benötige ich etwas Hilfe.

Den Sketch habe ich von ihnen übernommen und die nötigen Anpassungen gemäss ihrer Beschreibung vorgenommen.

Problem: Bei mir ist der Dimmer Output Pin 7 immer 0VDC. Wenn ich dort 3,3VDC anlege, wird die AC-Seite 100% ausgesteuert. Über die WebUi kann ich den Dimmer steuern aber der Ausgang Pin 7 wird nicht angesteuert.

Ich gehe davon aus, dass bei ihnen der Dimmer funktioniert. Wo könnte der Fehler bei mir liegen? Haben die Fuse Bits einen Einfluss?

— Reply to this email directly, view it on GitHub[https://github.com/mankut80/AskSinPP_HM-LC-Dim1L-CV/issues/1], or unsubscribe[https://github.com/notifications/unsubscribe-auth/BDW3K2T465ZMJMDFTNNLZMTZ35UEZAVCNFSM6AAAAABQDDWBQGVHI2DSMVQWIX3LMV43ASLTON2WKOZSGU4TGOJSHAZDOOI]. You are receiving this because you are subscribed to this thread. [Verfolgungsbild][https://github.com/notifications/beacon/BDW3K2THJSAPWM64TJLCBRLZ35UEZA5CNFSM6AAAAABQDDWBQGWGG33NNVSW45C7OR4XAZNFJFZXG5LFVJRW63LNMVXHIX3JMTHJVHBUK4.gif]

ivo-int commented 1 week ago

Hallo

Ich danke Ihnen recht herzlich für die schnelle Rückmeldung.

Die Dimmer Ausgabe im Loop habe ich Testweise aus kommentiert und eine Neue mit "digitalWrite(DIMMERPIN, true);" eingefügt.

Da ändert sich nichts.

Den Arduino Pin überprüfte ich mit einem simplen Blink-Sketch. Hier konnte ich eine Ausgangspannung messen. Da ich den ProMini gesockelt verbaut ist, ersetzte ich diesen durch einen Neuen.

Gleiches Ergebnis, nichts.

Die Überbrückung des Nulldurchgangsmelders änderte auch nichts. Die Bauteile habe ich auch überprüft, diese sind korrekt und die Dioden richtig eingebaut.

Nein ein Oszilloskop besitze ich noch nicht. Ich überlege mir schon länger eins anzuschaffen.

Im Moment bin ich immer noch überzeugt, dass es ein Unterschied in der Software geben muss. Welche AskSinPP Version setzen sie ein? Ich habe bei mir aktuell 5.0.2 installiert.

Freundliche Grüsse Ivo

mankut80 commented 1 week ago

Ich habe bei mir die 5.0.3 im Einsatz.

Was mich irritiert ist, dass Ausgang D7 nachweislich mit einem Blink-Test-Sketch funktioniert. Haben Sie mal probiert, diesen Blink-Sketch auf dem eingebauten Arduino laufen zu lassen?

Um nochmals auf den Nulldurchgangsdetektor zu kommen: meine vorherige Aussage, diesen könne man überbrücken, ist Quatsch. Die Software reagiert nur auf eine Signalflanke, ein dauerhaftes Brücken bringt also nichts (siehe Phasecut.cpp von Asksinpp).

Was auch noch interessant wäre: wie hoch ist denn, mit einem Multimeter gemessen, der Widerstand von D7 auf GND? Der sollte im Megaohmbereich liegen. Dieselbe Messung mit der Diodenprüfung, (+) an D7 und (-) an GND sollte ca. 0.9V ergeben.

Für Vergleichszwecke habe ich mein komplettes Softwarepaket in eine ZIP-Datei gepackt. Aber nicht irritiert sein, was eventuell seltsame Dateipfade angeht, ich arbeite unter Linux mit VS-Code und PlatformIO. https://maschmid.next-cloud.org/index.php/s/JJQFAABLoqk74Zb

Im Verzeichnis .pio/build/pro8MHZatmega328/ ist auch die Firmwaredatei (*.hex) zu finden die so 1:1 auf meinem Gerät läuft.

Viel Erfolg bei der weiteren Fehlersuche

ivo-int commented 3 days ago

Ich habe jetzt auch 5.0.3 installiert.

Der KO ist da und ich konnte den 0 Durchgangsdetektor messen. siehe Bild 0 Detetektor auf Eingang 3 100Hz, 10ms das passt dann bei 50Hz Netzfrequenz

Ist möglicherweise der Impuls zu kurz?

von D7 nach Masse = Durchlassspannung 1,03V und 14,8M Ohm

Ich habe mit KO auch den Ausgang 7 gemessen. Da ändert sich nichts. Im Sketch habe ich auch einmal 6 definiert selbes Ergebnis.

Die HEX Datei von ihnen habe ich geladen. Konnte das Gerät nicht anmelden. Ist ihre INO Datei auch im ZIP-Verzeichnis?

mankut80 commented 3 days ago

Das ist allerdings alles seltsam.

Messen

nochmaliger Test im Code

Wenn Sie im INO-File in der ersten Zeile innerhalb des void setup()-Blocks: pinMode(7,OUTPUT); digitalWrite(7,1); delay(10000); eintragen, wird der Ausgang dann für 10s eingeschaltet oder bleibt er dann auch auf 0V?

Unterschied platformIO / Arduino IDE

Da ich mit platformIO gearbeitet habe, besitze ich kein INO-File, sondern eine main.cpp. Diese ist unter /src/main.cpp zu finden. Im Normalfall reicht es, diese Version in *.ino umzubenennen, was ich für dieses Github-Repo getan habe. Mir fällt allerdings gerade auf, dass die Zeile 40:

include

für die Arduino-IDE unnötig ist. Oder vielleicht sogar störend?! Versuchen Sie mal, diese Zeile zu entfernen.

HEX-File:

in meinem HEX-File ist eine abweichende Konfiguration für die Trägerfrequenz des CC1101 enthalten, deshalb bekommen Sie bei sich vermutlich keine Verbindung zustande. Im Anhang habe ich meine Version nochmals kompiliert und vorher die Frequenzänderung auskommentiert. Funktioniert es mit dieser Version? firmware_pro8MHzatmega328.hex.zip

ivo-int commented 3 days ago

Vorweg Mit ihrer neuen HEX hat das Anlernen und der Dimmer korrekt funktioniert.

Test mit Code Das Einschalten hat funktioniert. Nur hat er nicht mehr ausgeschaltet.

Problemsuche Dann muss etwas mit dem IDE Compiler falsch laufen. Bis jetzt arbeitete ich mit der IDE 1.8.13. Jetzt stellt sich mir die Frage, ob ein Wechsel auf 2.0 nötig wird? Im Moment bin ich etwas Ratlos.

ivo-int commented 2 days ago

Fehler gefunden

Analyse Ich habe die Unterschiede von meinen zu ihren Dateien gesucht. PhaseCut.cpp; PhaseCut.h; PWM.h

Hier gibt es weitere Unterschiede.

PhaseCut.cpp In Zeile 113 habe ich folgende Anpassung vorgenommen: `// Anpassung für Phasenanschnitt Dimmer MANKUT

// TCCR2B |= (1 << WGM21) | (1 << CS20) | (1 << CS21) | (1 << CS22) ; // Enable/start CTC and set prescaler to 1024

TCCR2B |= (1 << CS20) | (1 << CS21) | (1 << CS22) ; // Enable/start CTC and set prescaler to 1024`

PhaseCut.h `#ifndef PHASECUTMODE // #define PHASECUTMODE 0 // Angepasst für Phasenanschnitt Dimmer

define PHASECUTMODE 1

endif

ifndef ZEROPIN

// #define ZEROPIN 2 // Angepasst für Phasenanschnitt Dimmer

define ZEROPIN 3

endif`

Unklar Mir ist noch Unklar, aus welchem Grund die Definitionen von "ZEROPIN" und "PHASECUTMODE" im Sketch nicht übernommen werden?

mankut80 commented 2 days ago

Ach Herrje, das ist mir jetzt wirklich unangenehm. Mir fällt jetzt wieder ein, dass ich diese Änderungen selbst vorgenommen habe. Weil ich aber im Laufe der Realisierung so viel herumprobiert habe, bis das Gerät funktioniert hat, habe ich das vergessen und es deswegen nicht mit in der Readme angegeben. Das werde ich in der nächsten Zeit noch nachholen.

Auch mir ist unklar (und war es damals schon) warum die beiden "#define ZEROPIN" und "#define PHASECUTMODE" in der main.cpp keine Gültigkeit innerhalb der danach inkludierten phasecut.h haben.

Vielen Dank für die Recherche und entschuldigen Sie die Unannehmlichkeiten. Es freut mich, dass es jetzt klappt und ein Nachbau existiert :-)