Umgebungslicht-Sensor (Ambient Light Sensor)

Wir lesen die Werte des Umgebungslichtsensors (ALS TEMT6000) mit dem Arduino und steuern eine RGB-LED, die abhängig vom Umgebungslicht ihre Farbe ändert.
Materialien:

Video:

Hardware:
Baue zuerst folgendes auf deiner Steckplatine, ohne das Arduino-Board zu verbinden:

Drei 220 Ohm Widerstände zu jedem Anode (Pluspol)

Kathode zum Minuspol mit einem Kabel

Wähle drei digitale Ausgänge (Pins) für die drei Anoden (rot, grün, blau). Merke dir deine Auswahl. Wir benutzen:
D4 für rot, D3 für grün und D2 für blau.
Der Umgebungslichtsensor TEMT6000 hat drei Beinchen:

Verbinde das VCC mit dem 5V-Pin im Arduino. Verbinde das GND auf irgendeinen GND-Pin im Arduino. Verbinde den TEMT6000-SIG mit einem Analog-Eingang (z.B. Pin A0) im Arduino.

Code:

Du musst dein Programm an die ALS-Werte, die du im Serial Monitor (Seriellmonitor) abliest, anpassen. Mach schatten auf den Umgebungslichtsensor (ALS) und schau wie der ALS-Wert sich verändert:

Beispiel:
Die RGB-LED leuchtet rot wenn es sehr hell ist:
wenn der ALS-Wert > normal_AL ist.
Die RGB-LED leuchtet grün, wenn ein bisschen schatten auf den Sensor kommt:
wenn der ALS-Wert zwischen dark_AL und normal_AL ist.
Die RGB-LED leuchtet weiß, wenn es dunkel ist:
wenn der ALS-Wert < dark_AL ist.

/*************************************
****** Ambient Light Sensor **********
****** MStronik.blog *****************/
#define ALS_pin  A0
/*#define Led_pinB 2
#define Led_pinG 3
#define Led_pinR 4*/
int Led_pinB = 2;
int Led_pinG = 3;
int Led_pinR = 4;
int dark_AL = 20; // change this value according with your ALS reading, when it is dark in the room
int normal_AL = 100;// change this value according with your ALS reading, when there is normal light in the room
int  bright_AL = 600;// change this value according with your ALS reading, when it is too bright
void setup() {
  pinMode(ALS_pin, INPUT);
  pinMode(Led_pinB, OUTPUT);
  pinMode(Led_pinG, OUTPUT);
  pinMode(Led_pinR, OUTPUT);
  Serial.begin(9600);
  digitalWrite(Led_pinB, LOW);
  digitalWrite(Led_pinG, LOW);
  digitalWrite(Led_pinR, LOW);
}

void loop() {
  float valueSensor = analogRead(ALS_pin);//read the ALS value
  Serial.print("ALS wert: ");
  Serial.println(valueSensor);
  delay(500);
  if((valueSensor < dark_AL )&&(valueSensor >0 ))
  {
    digitalWrite(Led_pinB,HIGH);
    digitalWrite(Led_pinG,HIGH);
    digitalWrite(Led_pinR,HIGH);
    }
  else if((valueSensor >= dark_AL)&&(valueSensor < normal_AL))
  {
    digitalWrite(Led_pinB,LOW);
    digitalWrite(Led_pinG,HIGH);
    digitalWrite(Led_pinR,LOW);
    }
  else  
    {
      digitalWrite(Led_pinB,LOW);
      digitalWrite(Led_pinG,LOW);
      digitalWrite(Led_pinR,HIGH);
      }
}

Download the code here:

https://github.com/Magdalena73/ALS_RGB

1 Kommentar

Hinterlasse einen Kommentar

Diese Seite verwendet Akismet, um Spam zu reduzieren. Erfahre, wie deine Kommentardaten verarbeitet werden..