Dimmer AC ohne Delay

Hallo,
Ich versuche jetzt schon seit ein paar Tagen einen Dimmer für AC Lampen programmieren.
Ich habe auch ein paar Dimmer gefunden, die jedoch nur mit delays funktionieren, wodurch ich aber immer nur eine Lampe richtig dimmen kann.
Hab es selbst versucht ohne delays:
bool zero_cross = 0;
unsigned long zeromicros = 0;
unsigned long offmicros = 0;
int AC_LOAD = 3; // Output to Opto Triac pin
int dimming = 128;

void setup()
{
pinMode(AC_LOAD, OUTPUT);
attachInterrupt(0, zero_cross_detect, CHANGE);
}

void loop() {

int dimtime = (75*dimming);
int einschalten = micros() - zeromicros;
int ausschalten = micros() - offmicros;
if (zero_cross == 1) {
if ( einschalten >= dimtime) {
digitalWrite(AC_LOAD, HIGH);
zeromicros = 0;
offmicros = micros();
}
if (ausschalten >= 100) {
digitalWrite(AC_LOAD, LOW);
offmicros = 0;
zero_cross = 0;
}
}
dimming = 80;
}

void zero_cross_detect() { // If zero crossing is detected
zero_cross = 1;
zeromicros = micros();
}

Jedoch flackert die Lampe so nur anstatt richtig zu Dimmen.
Freue mich sehr über Hilfe.
LG

Welche Lampe hast Du?
Die meisten LED Lampen und Leuchtstoffröhren (Sparlampen) sind nicht dimmbar.
Grüße Uwe

Fehlt da nicht mindestens ein Volatile?
Und das mit dem atomar auslesen, sehe ich da auch nicht.

Die Lampen sind dimmbar mit einem Programm wo delays drin sind funktioniert es ja

Volatile und atomar ? Was ist das bin leider nicht so im Thema drin😅

Sei kreativ und finde es heraus. Ist nur halb so schwer wie die Programmierung eines Dimmers.

Suchmaschinen existieren.

Gruß Tommy

Hallo,
dann zeig uns doch mal den Sketch mit delay() dann können wir besser sehen ob Du das richtig umgesetzt hast.
Heinz

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.