Étape 6: Activité de défi supplémentaire
Super boulot déraciner le cadet de zombies ! Par précaution, nous allons ajouter deux LED et deux fils avec une version modifiée du code afin que vous puissiez avoir des lumières s’allume lorsqu’un zombie est détecté.
Modifier votre configuration existante pour faire correspondre le schéma ci-dessus. Vous aurez besoin d’une LED rouge (relié à la broche 7) et une LED verte (relié à la broche 9 ~).
Le Code
Copiez et collez le code ci-dessous la ligne dans le logiciel Arduino IDE et transférez-le sur l’Arduino. Vous trouverez les numéros de changer dans le code ci-dessous pour modifier la sensibilité des capteurs ?
#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); }