
Proyecto de Iluminación Nocturna
Nuestros robots ya pueden diferenciar entre noche y día. Podemos usar esto a nuestra ventaja al combinarlo con detección de movimiento para controlar una luz.
Requisitos:
- Computadora (mac)
- Arduino UNO o equivalente.
- Foto-transistor
- Detector de Movimiento PIR
- LED
- Resistor de 1kOhm
- Breadboard
- Arduino IDE (https://www.arduino.cc/en/Main/Software)
Ya aprendimos a usar el detector de movimiento PIR. Ahora combinemos el PIR con el sensor de iluminación para controlar una LED. Hagamos las conexiones así:

Ahora estudiemos el código, el cual es bastante sencillo por cierto. Lo importante es la lógica:
[code] //PIR
int ledPin = 10;
int pirPin = 9;
int pirVal = 0;
int photoTr = 0;
//Timing parameters
boolean motionDetectedFlag;
unsigned long initialiseSensorTimestamp;
long previousMillis = 0;
long interval = 1000;
void setup() {
Serial.begin(9600);
pinMode (pirPin, INPUT);
pinMode (ledPin, OUTPUT);
}
void loop() {
//if PIR motion is detected && illum is below x value
pirVal = digitalRead(pirPin);
Serial.print(“PIR: “);
Serial.println(pirVal);
photoTr = analogRead(A0);
Serial.print(“Illum: “);
Serial.println(photoTr);
if (pirVal == 1) { //if pirPin is 1…
//Test Illum
if (photoTr < 5) { //if photoTr is larger than 100…
Serial.println(“Illum is also low”);
digitalWrite(ledPin,HIGH); //light up the LED!
delay(15000); //leave it on for 15 seconds
digitalWrite(ledPin,LOW); //light up the LED!
} //end of photoTr
} //end of pir if
delay(1000); //delay loop for 1 whole second
}[/code]
Lo que hacemos es probar si se combinan las factores iluminación baja (<5) y detección de movimiento por parte del PIR (valor==1). Si esto sucede, queremos escribir un voltaje alto a nuestra LED y dejarla así durante 15 segundos para hacer lo que tenemos que hacer. Luego de 15 segundos la LED se apaga y la detección reincia con el loop().

Como podemos ver, es fácil que cada vez nuestros robots se hacen mas habilidosos, inteligentes!