Seite 1 von 1

Integration eines akkubetriebenen LED-Strahlers in HomeMatic

Verfasst: 20.05.2019, 22:29
von Gelegenheitsbastler
Ich habe mir vor einiger Zeit einen LED-Strahler aus Fernost bestellt, weil es mir gefiel, ihn sowohl mit NiMH-Akkus als auch mit LiIOn-Zellen betreiben zu können. Leider ist der Betrieb mit 3 NiMh nicht zu empfehlen, da der Strahler damit nicht richtig hell leuchtet. Zwei 18650 hingegen lassen ihn schon ziemlich hell erstrahlen.

Weil ich neugierig war, habe ich mir die Elektronik näher angeschaut. Sie ist relativ überschaubar, weshalb ich auf die Idee kam, die Treiber für die großen LEDs (es gibt auch noch eine seitliche kleine Lampe) per HomeMatic anzusteuern. Da ein batterieoptimierter Sketch kein PWM-Signal ausgeben kann, habe ich mich dazu entschlossen, eine kleine Zusatzplatine zu entwerfen. Auf ihr werkelt ein Tiny13. Für die Anbindung an die HomeMatic habe ich meine Platine "Modular" mit LDO verwendet. Die beiden genutzten Ausgänge der Modular sind direkt auf zwei Eingänge des Tiny13 gelegt. Sofern diese beiden Eingänge auf LOW liegen, befindet sich der Tiny13 im Tiefschlaf. Er erwacht sehr kurz, wenn ein Pegelwechsel auf einem der Eingänge stattfindet und schaltet den Ausgang dann entsprechend. Programmiert habe ich die Helligkeit auf 100% und auf etwa 50%. Schaltet man beide Ausgänge gleichzeitig ein, dann blitzt die Lampe mit knapp 1 Hz.

Dadurch, dass ich den Treiber direkt ansteuere, ist die ursprüngliche Funktionalität der Lampe weiterhin gegeben. Die Nutzung mit der HomeMatic ist nur optional. Damit ich auch künftig problemlos Zugriff auf den Konfigurationstaster habe, habe ich diesen extern in das Batteriefach verlegt und in Schrumpfschlauch verpackt.

Der Stromverbrauch der beiden Platinen liegt in etwa bei 180 - 200µA und fällt damit kaum ins Gewicht.

Mein Dank gilt mal wieder Jérôme, der Softwarelegasthenikern wie mir bereitwillig hilfreich zur Seite steht!
viewtopic.php?f=76&t=50740

edit 02.06.2019:
Da ich darum gebeten wurde, hier noch weitere Infos zu dem Projekt.
Die beiden Ausgänge meiner Modular gehen auf D1 und D3 des Tiny13. Es kann auch jeder andere AVR verwendet werden, aber da der Sketch so klein ist, reicht ein Tiny13 aus. Der Ausgang D4 des Tiny geht über einen 10K Widerstand auf einen NPN. In diesem Fall ein BC817-40, der widerum auf den Eingang des LED-Treibers auf der Platine der Lampe geht. Wenn ich es richtig in Erinnerung habe, waren dort zwei Fets parallel geschaltet. Insofern ist es egal, an welchem der beiden Fets man das Kabel anlötet. Den Sketch für die Modular (oder auch einen ProMini, etc.) habe ich oben schon verlinkt, aber trotzdem noch mal angehangen. Einfach die zweite Endung (ZIP) löschen.

Die Blinkfrequenz, die über den Tiny13 vorgegeben wird, kann je nach Geschmack abgeändert oder auch ganz weg gelassen werden. Der Hardwareaufwand ist in Summe sehr überschaubar.

Code: Alles auswählen

#include <avr/sleep.h>
#include <avr/interrupt.h>

#define IN0 3
#define IN1 1
#define OUT1 4

byte Zustand_IN0;
byte Zustand_IN1;

int Frequenz1 = 100; // ms 
int Frequenz2 = 3000;
int Frequenz3 = 100;


void setup() {
  pinMode(IN0, INPUT);
  pinMode(IN1, INPUT);
  pinMode(OUT1, OUTPUT);
}

void sleep() 
{
    GIMSK |= _BV(PCIE);                     // Enable Pin Change Interrupts
    PCMSK |= _BV(PCINT3);                   // Use PB3 as interrupt pin
    PCMSK |= _BV(PCINT1);                   // Use PB1 as interrupt pin
    ADCSRA &= ~(1<<ADEN);                   // Testweise ADC off Befehl von anderer Webseite
    set_sleep_mode(SLEEP_MODE_PWR_DOWN);    // replaces above statement
    sleep_enable();                         // Sets the Sleep Enable bit in the MCUCR Register (SE BIT)
    sei();                                  // Enable interrupts
    sleep_cpu();                            // sleep
    cli();                                  // Disable interrupts
    PCMSK &= ~_BV(PCINT3);                  // Turn off PB3 as interrupt pin
    PCMSK &= ~_BV(PCINT1);                  // Turn off PB1 as interrupt pin
    sleep_disable();                        // Clear SE bit
    ADCSRA |= (1 << ADSC);                  // Testweise ADC off Befehl von anderer Webseite    
    sei();                                  // Enable interrupts
} 
ISR(PCINT0_vect)
{

}

void loop() {

  Zustand_IN0 = digitalRead(IN0);
  Zustand_IN1 = digitalRead(IN1);
 
  if ((Zustand_IN0 == HIGH) && (Zustand_IN1 == LOW)) {digitalWrite (OUT1, HIGH);}
  if ((Zustand_IN0 == LOW) && (Zustand_IN1 == LOW)) {digitalWrite (OUT1, LOW); sleep();}

  if ((Zustand_IN0 == LOW) && (Zustand_IN1 == HIGH)) {
    digitalWrite (OUT1, HIGH);
    delay (Frequenz1);
    digitalWrite (OUT1, LOW);
    delay (Frequenz1);   
    }
   
  if ((Zustand_IN0 == HIGH) && (Zustand_IN1 == HIGH)) {
    digitalWrite (OUT1, HIGH);
    delay (Frequenz3);
    digitalWrite (OUT1, LOW);
    delay (Frequenz2);    
    }
 
}
Geflasht habe ich den Tiny über die Arduino IDE per ISP.

Re: Integration eines akkubetriebenen LED-Strahlers in HomeMatic

Verfasst: 04.06.2020, 21:30
von MrSellars
Hallo!

ich würde gerne das Akku-Strahler-Asksinpp-Projekt nachbauen und würde gerne die notwendige Platine(n) kaufen. Wie wäre das zu realisieren?

Vielen Dank im Voraus und einen schönen Abend!

Herzlichen Gruß,

Oliver

Re: Integration eines akkubetriebenen LED-Strahlers in HomeMatic

Verfasst: 05.06.2020, 06:08
von Gelegenheitsbastler
Wenn Du ein klein wenig Ahnung von der Materie hast, sollte einem Nachbau nichts im Wege stehen. Die Geschichte mit den Platinen können wir per PN klären.

Re: Integration eines akkubetriebenen LED-Strahlers in HomeMatic

Verfasst: 05.06.2020, 06:48
von jp112sdl
Gelegenheitsbastler hat geschrieben:
20.05.2019, 22:29
Da ein batterieoptimierter Sketch kein PWM-Signal ausgeben kann,
Das stimmt nicht ganz.
viewtopic.php?f=76&t=53925&p=544393#p544393

Gelegenheitsbastler hat geschrieben:
20.05.2019, 22:29
Die Blinkfrequenz, die über den Tiny13 vorgegeben wird, kann je nach Geschmack abgeändert oder auch ganz weg gelassen werden.
Blinken kann der Aktor auch selbst. Das Intervall konfiguriert man in einer DV
viewtopic.php?t=2112#p61202

Re: Integration eines akkubetriebenen LED-Strahlers in HomeMatic

Verfasst: 05.06.2020, 07:29
von Gelegenheitsbastler
Danke für die Info. Als ich das Projekt umgesetzt habe war mir das nicht bekannt. Daher mein "Umweg" über einen zweiten µC. Das funktioniert bis heute einwandfrei, weshalb ich daran auch nichts mehr verändern werde.

Für eventuelle Nachbauer ist Deine Info aber sicherlich sehr hilfreich.

P. S.
Zum Thema PWM hatte ich seinerzeit auch noch eine passende Hardware gebaut:
viewtopic.php?f=76&t=50956&p=510840&hil ... ar#p510840