Compri HX Steuerung


Google-Suche auf MEINE-SCHALTUNG.de :





Online Rechner

Chronik

Dauerkalender


Hausnummer-Beleuchtung
(mit Fotowiderstand und Arduino)


Ein Fotowiderstand (bezeichnet auch als LDR:Light Dependent Resistor) ändert seinen Widerstand in Abhängigkeit von Lichteinstrahlung. Damit ist das Geheimnis dieses Bauelementes schon mal gelüftet. Je mehr Licht auf einen Fotowiderstand fällt, desto kleiner wird sein Widerstand. Eine klassische Anwendung eines Fotowiderstandes ist ein Dämmerungsschalter, der abhängig vom Tageslicht z.B. eine Straßenbeleuchtung ein- bzw. ausschaltet. In der folgenden Schaltung wird abhängig von der Lichteinstrahlung eine Hausnummer-Beleuchtung gesteuert.

Fotowiderstand

Fotowiderstand

Hausnummer-Beleuchtung

Hausnummer-Beleuchtung

Der Fotowiderstand ändert seinen Widerstand im Bereich von ca. 100 Ohm bis zu mehreren MOhm. Er wird hier zusammen in Reihe mit einem festen Widerstand (R2 = 10k) verschaltet und bildet mit ihm einen Spannungsteiler. Je nach Lichteinstrahlung ändert der Fotowiderstand seinen Widerstand. Folglich liefert der Spannungsteiler jeweils eine andere Spannung. Da der Spannungsteiler mit 5 V eingespeist ist, kann das Signal direkt an Arduino weiter geleitet werden. Die entsprechende Verbindung geht an Anschluss A4 (analoger Eingang) des Arduino.

Zur Kontrolle kann man die am analogen Eingang ausgelesenen Werte im IDE-Monitor anzeigen lassen. In diesem Fall pendeln die Werte im Bereich von 550 (dunkel) bis 980 (hell). Der maximale Wert, der bei 5V geliefert wird, beträgt 1023.

In dem Sketch wird das Signal ausgewertet und die Hausnummer-Beleuchtung entweder ein- oder ausgeschaltet. Für die Beleuchtung verwenden wir die 8x8 RGB- Matrix, die mehrfarbige Beleuchtung zulässt.

Die Schaltung enthält noch weitere zusätzliche Komponenten. Die Rolle der Sonne, die im Normalfall fürs Tageslicht zuständig ist, übernimmt die Leuchtdiode LD2. Mit dem Potenziometer P1 kann man das Tageslicht simulieren. Je nach Einstellung des Potenziometers leuchtet sie voll auf oder wird fast ganz ausgeschaltet. Um Außeneinflüsse zu begrenzen, werden so die Leuchtdiode LD2 als auch der Fotowiderstand mit einer „Verdunkelungshülse“ verdeckt.

Tageslicht-Simulation

Tageslicht-Simulation

Anordnung der Elemente

Anordnung der Elemente mit Abdeckung

Zusätzlich enthält die Schaltung die Leuchtdiode LD1 mit dem Vorwiderstand R3. Diese Erweiterung soll als Beispiel für die Überwachung der Funktionalität des Sensors dienen. In dem Fall, wo der Fotowiderstand z.B. zerstört wird, geht die rote LD1 an.

Schaltplan

Schaltplan

Testschaltung

Testschaltung

Das Programm (Sketch)

Das Programm untersucht in bestimmten Zeitabständen den analogen Eingang A4, liest den aktuellen Wert aus und vergleicht ihn mit Vorgaben, die für diese Schaltung festgelegt wurden.
Ist der ausgelesene Wert größer-gleich 750 (hell) wird die Hausnummer-Beleuchtung ausgeschaltet. Ist der Wert größer 750 (dunkel) geht die Beleuchtung an. Die zweite Grenze, die 500 beträgt, dient der Überwachung des Sensors. Wenn sein Widerstand zu stark ansteigt (Sensor defekt oder fehlt ganz), geht die rote Störung-Leuchtdiode an. Man könnte den Sensor zusätzlich noch auf Kurzschluss untersuchen und ggf. auch eine Störung melden.

Die Steuerung der RGB-Matrix übernimmt eine Komposition aus drei For-Schleifen, die miteinander verschachtelt sind. Die erste Schleife (i) bezieht sich auf die aktuelle Farbe der Matrix, die für alle Pixel stets gleich bleibt. Die zweite Schleife (j) beschäftigt sich mit der Helligkeit der einzelnen Matrix-Pixel. Die dritte (k) schließlich durchläuft alle Pixel, die aktiviert werden sollen. Ihre Nummern sind in der Liste Pixel[] zusammengefasst.

Für die Ansteuerung der Matrix wird die Bibliothek „Adafruit_NeoPixel.h“ verwendet, die mit Hilfe des Bibliotheken-Verwalters installiert werden kann.

// ********************************************************************************
// Hausnummer - Beleuchtung
// mit Fotowiderstand und 8x8 RGB-Matrix
// Arduino Nano, IDE 1.8.12
// ********************************************************************************

#include <Adafruit_NeoPixel.h>
#ifdef __AVR__
 #include <avr/power.h> 
#endif

#define LED_PIN    3
#define LED_COUNT 64

Adafruit_NeoPixel strip(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
int Signal_Pin = A4;
int Error_LED = 2;

int i;
int Pixel [] = { 2,3,4,5,
                 9,10,13,14,
                 17,18,21,22,
                 25,26,29,30,
                 34,35,36,37,38,
                 45,46,
                 49,50,53,54,
                 58,59,60,61 };
int Farbe [3][3] = { {255,0,0}, {0,255,0}, {0,0,255} };

void Ausgabe ( int i, int j ) {      // Farbige Pixel an ..........................
    for (int k=0; k<32; k++) {        
        strip.setBrightness(j);      // Helligkeit ................................
        strip.show();
        strip.setPixelColor(Pixel [k], Farbe [i][0], Farbe [i][1], Farbe [i][2]); }
    delay(5);
}

void setup() {
    strip.begin();           
    strip.show();            
    strip.setBrightness(50); 
    strip.clear();
    pinMode(Error_LED, OUTPUT);
}

void loop() {

    int AnalogWert = analogRead(Signal_Pin);
                                   // Hausnummer anzeigen .........................
    if (AnalogWert < 750) {
        for (i=0; i<3; i++) {             
            strip.clear();
            for (int j=0; j<50; j++) {  Ausgabe (i,j); }
            for (int j=50; j>0; j--) { Ausgabe (i,j); } } 
     } else {                      // Lampe aus ...................................
       strip.show();
       strip.clear(); }
        
    if (AnalogWert < 500) {        // Störung, rote LED an ........................
        digitalWrite(Error_LED, HIGH);
    } else {
        digitalWrite(Error_LED, LOW); }
    delay (1000);
}
// -----------------------------------------------------------
    

Kurzvideo

Kurzvideo: Hausnummer-Beleuchtung mit Fotowiderstand


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz