Arduino Zombie detektor spel (6 / 6 steg)
Steg 6: Extra utmaning aktivitet
Bra jobb utrota zombies kadett! Som en försiktighetsåtgärd, låt oss lägga två lysdioder och två kablar med en modifierad version av koden så att du kan ha lampor slås på när en zombie upptäcks.
Ändra dina befintliga inställningar för att matcha diagrammet ovan. Du behöver en röd LED (ansluten till stift 7) och en grön lysdiod (ansluten till pin ~ 9).
Koden
Kopiera och klistra in koden nedan linjen i den Arduino IDE programvaran och ladda upp den till Arduino. Kan du hitta siffrorna för att ändra i koden nedan för att ändra känsligheten för sensorerna?
#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, produktionen);
pinMode (redLight, produktionen);
om (! beginInfraredTemperatureSensor()) {
Serial.println ("kan inte init IR temperaturgivare");
}
om (! beginLuminositySensor()) {
Serial.println ("kan inte init ljusstyrka sensor");
}
digitalWrite (greenLight, hög);
digitalWrite (redLight, hög);
readInfraredTemperature(&temp);
readLuminosity(&lum);
baselineLight = lum.lux;
baselineTemp = temp.t;
för (int x = 0; x < 100; x ++) {
readInfraredTemperature(&temp);
readLuminosity(&lum);
baselineLight += lum.lux;
baselineTemp += temp.t;
baselineLight = 2;
baselineTemp = 2;
}
digitalWrite (greenLight, låg);
digitalWrite (redLight, låg);
}
void loop(void)
{
readInfraredTemperature(&temp);
Serial.Print ("temp: \t");
Serial.println (temperatureToJSON ("infraröd", och temp));
readLuminosity(&lum);
Serial.Print ("lum: \t");
Serial.println (luminosityToJSON ("ljusstyrka", och lum));
om (lum.lux < = (baselineLight *.6)) {
om (temp.t > = (baselineTemp * 1,05)) {
digitalWrite (greenLight, hög);
digitalWrite (redLight, låg);
}
annars om (temp.t < = (baselineTemp * 1,03)) {
digitalWrite (redLight, hög);
digitalWrite (greenLight, låg);
}
annat {
digitalWrite (redLight, hög);
digitalWrite (greenLight, hög);
}
}
annars om (lum.lux > = (baselineLight *. 9)) {
digitalWrite (redLight, låg);
digitalWrite (greenLight, låg);
}
Delay(100);
}