In questo progetto, utilizzi un LDR per accendere o spegnere le luci, a seconda che sia più o meno illuminata.
Per questo progetto utilizziamo un LDR. LDR è l'abbreviazione di resistore dipendente dalla luce. Ciò significa che la resistenza dipende dalla quantità di luce che splende su di esso. Più luce risplende sull'LDR, minore diventa la resistenza.
Possiamo leggere un valore dall'LDR con Arduino. In questo progetto attribuiamo valori diversi alle luci a LED. Lo facciamo in modo tale che se più luce risplende su di esso, più luci a LED si accendono. Lo facciamo con le porte logiche if else e la funzione di lettura analogica. Nella sezione di programmazione spiego cosa significano queste funzioni.
ambra.
- Livello – Principiante 30%
- Durata – 10/15 Min 30%
- Costi – € 31,24 euro completo 30%
Passaggio 1: forniture
1X Arduino UNO
1X paneboard
15 cavi jumper
Luce LED 5X
1X LDR
6 resistenze da 220 ohm
Passaggio 2: costruisci e cabla
Passaggio 3: programmazione
Dopo aver collegato tutto correttamente, puoi iniziare a programmare.
Il codice per questo progetto è piuttosto breve. Nel codice utilizziamo il lettura analogica funzione e se altrimenti porte logiche.
Usiamo la funzione analogread per leggere il valore del pin analogico. Questo è il valore del LDR. Quindi utilizziamo le porte logiche if else.
Nel momento in cui il valore corrisponde (cioè se lo è) la luce si accende con noi. Se il valore non corrisponde (cioè è altro), la luce non si accende.
//hier zetten we alle componenten op een pin
int sensor = A0;
int led1 = 2;
int led2 = 3;
int led3 = 4;
int led4 = 5;
int led5 = 6;
int Value = 0;
void setup(){
//hier zorgen we dat die pinnen een puls geven
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);
pinMode(led5, OUTPUT);
}
void loop(){
//nu zorgen we ervoor dat hij A0 leest
Value = analogRead(sensor);
delay(100);
//nu laten we het lampje aangaan
//als de waarde 110 of hoger is
if(Value >= 110){
digitalWrite(led1, HIGH);
}else{
//anders gaat hij uit
digitalWrite(led1, LOW);
}
if(Value >= 125){
digitalWrite(led2, HIGH);
}else{
digitalWrite(led2, LOW);
}
if(Value >= 140){
digitalWrite(led3, HIGH);
}else{
digitalWrite(led3, LOW);
}
if(Value >= 155){
digitalWrite(led4, HIGH);
}else{
digitalWrite(led4, LOW);
}
if(Value >= 170){
digitalWrite(led5, HIGH);
}else{
digitalWrite(led5, LOW);
}
}