Paso 6: Actividad de desafío adicional
Gran trabajo erradicar el cadete de zombies! Como medida de precaución, vamos a añadir dos LEDs y dos alambres con una versión modificada del código para que puedan tener las luces enciende cuando se detecta un zombie.
Modificar la configuración existente para que coincidan con el diagrama de arriba. Vas a necesitar un LED rojo (conectado al pin 7) y un LED verde (conectado al pin ~ 9).
El código de
Copia y pega el código debajo de la línea en el software de Arduino IDE y subirlo a la Arduino. ¿Puedes encontrar los números a cambiar en el código siguiente para cambiar la sensibilidad de los sensores?
#include <Arduion.h>#include <Wire.h> #include <ArdusatSDK.h>luminosity_t lum; temperature_t temp;int baselineTemp = 0; int baselineLight = 0;int greenLight = 7; int redLight = 9;void setup(void) { Serial.begin(9600); pinMode(greenLight, OUTPUT); pinMode(redLight, OUTPUT); if (!beginInfraredTemperatureSensor()) { Serial.println("can't init IR temperature sensor"); } if (!beginLuminositySensor()) { Serial.println("can't init luminosity sensor"); } digitalWrite(greenLight, HIGH); digitalWrite(redLight, HIGH); readInfraredTemperature(&temp); readLuminosity(&lum); baselineLight = lum.lux; baselineTemp = temp.t; for(int x = 0; x < 100; x++) { readInfraredTemperature(&temp); readLuminosity(&lum); baselineLight += lum.lux; baselineTemp += temp.t; baselineLight /= 2; baselineTemp /= 2; } digitalWrite(greenLight, LOW); digitalWrite(redLight, LOW); }void loop(void) { readInfraredTemperature(&temp); Serial.print("temp: \t"); Serial.println(temperatureToJSON("infared", &temp)); readLuminosity(&lum); Serial.print("lum: \t"); Serial.println(luminosityToJSON("luminosity", &lum)); if( lum.lux <= (baselineLight * .6) ) { if( temp.t >= (baselineTemp * 1.05 )) { digitalWrite( greenLight, HIGH ); digitalWrite( redLight, LOW ); } else if ( temp.t <= (baselineTemp * 1.03) ) { digitalWrite( redLight, HIGH ); digitalWrite( greenLight, LOW ); } else { digitalWrite( redLight, HIGH ); digitalWrite( greenLight, HIGH ); } } else if ( lum.lux >= (baselineLight *.9) ) { digitalWrite( redLight, LOW ); digitalWrite( greenLight, LOW ); } delay(100); }