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:
- Steckplatine
- Ambient Light Sensor TEMT6000 (Umgebungslicht-Sensor)
- RGB-LED
- Widerstände (220Ω)
- Arduino UNO
- Kabel
- 9V Batterie + Batteriestecker
Video:
Hardware:
Baue zuerst folgendes auf deiner Steckplatine, ohne das Arduino-Board zu verbinden:
Drei 220 Ohm Widerstände zu jedem Anode (Pluspol)
![](https://mstronik.blog/wp-content/uploads/2021/07/220resistor-2.jpg?w=300)
![](https://mstronik.blog/wp-content/uploads/2021/06/rgb_led.jpg?w=624)
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:
![](https://mstronik.blog/wp-content/uploads/2021/06/als_front.jpg?w=121)
![](https://mstronik.blog/wp-content/uploads/2021/06/als_back.jpg?w=113)
![](https://mstronik.blog/wp-content/uploads/2021/06/als_fr.jpg?w=98)
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.
![](https://mstronik.blog/wp-content/uploads/2021/06/als_arduino.jpg?w=1024)
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:
![](https://mstronik.blog/wp-content/uploads/2021/06/serialmonitor.jpg?w=841)
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:
1 Kommentar