El nostre programa consisteix en que els llums de casa, fets amb Leds, s'encenguin més o menys en funció del nivell de llum natural, rebut per un sensor fet amb LDR.
A partir d'un cert valor de llum mínim rebut pel sensor, que hem fixat en 200, els Leds s'encendran al màxim, i a partir d'un valor de llum màxim, que hem fixat en 900, s'apagaran.
Per a valors intermedis del sensor, els Leds s'encendran en proporció inversa a aquests valors.
Aquí us deixo el nostre programa:
int pinsensor = A0; int pinled = 11; int lectura, intensitat; int dia = 900; int nit = 200; void setup() { pinMode (pinled,OUTPUT); Serial.begin (9600); // per depuració } void loop() { // llegeix el valor del sensor: lectura = analogRead(pinsensor); // assigna valor a la sortida analògica: if (lectura < nit) { intensitat = 255; } else if (lectura > dia) { intensitat = 0; } else { intensitat = map (lectura, dia, nit, 0, 255); } // treu el senyal: analogWrite(pinled,intensitat); // monitorització per depuració: Serial.print ("llum natural = "); Serial.print (lectura_llum); Serial.print (" | llum artificial = "); Serial.println (llum_artificial); delay(100); }
Al vídeo podeu veure les connexions i el funcionament:
Cap comentari:
Publica un comentari a l'entrada