Anti mörkerseende enheten ¡¡¡CAUTION, inte säker för epilepsi eller beslag BENÄGNA individer! (3 / 5 steg)
Steg 3: Kombinera sensorerna och Test
Nästa kommer att vi kombinera dessa två saker vi har anslutit för att skapa en mer intelligent interaktion. Vi vill att IR avkänning för att starta när Sensor för omgivande ljus faller nedan är medianvärdet, låt oss säga 300. Och vi vill ha IR att utlösa när det stiger över sitt låga värde, låt oss säga 80, att ge det en liten frihetsgrader.
int ledde = 13. Vi använder den inbyggda LED som ett test
int IRsensorPin = 2; Infraröd Sensor stift
int IRsense = 0; IR-Sensor värde
int brightnessPin = 3; Omgivande ljusstyrka Pin
int ljusstyrka; Omgivande ljus värde
float period. Lagra vår puls bredd Period
flyta hertz = 9. Frekvensen av blinkande
flyta bredd = 0,2; PWM med våra flashning
float onTime, offTime; Hållare för faktiska fördröjningstider
void setup() {
pinMode ledde (, OUTPUT); Ange Power LED
Serial.BEGIN(9600); Starta följetong
period = (1/hertz) * 1000; konvertera Hertz till millisekund fördröjningstider
onTime = period * bredd. beräkna tid
offTime = period * abs(1-width); beräkna Off tid
}
void loop() {
ljusstyrka = analogRead(brightnessPin); Läs omgivande ljusnivå
Serial.Print ("B:"); Serial.println(Brightness); skriva ut värdet för DEBUG
IF(Brightness < 300) {//start IR avkänning om omgivande ljusnivån är under denna nivå
IRsense = analogRead(IRsensorPin); Läs IR-sensor
Serial.Print ("IR:"); Serial.println(IRsense); skriva ut värdet för DEBUG
IF(IRsense > 80) {//if IR sensorn känner IR-ljus
Vertigo(); Flash Light
}
annat digitalWrite (ledde, låg); om inte, hålla LED av
}
}
void vertigo() {//Flash LED
bool blinkande = 1; en hållare för delstaten blinkande (sant eller falskt)
While(Flashing == 1) {//if blinkande stämmer
Flash LED till förutbestämd kurs
digitalWrite (ledde, högt);
Delay(onTime);
digitalWrite (ledde, låg);
Delay(offTime);
IF(analogRead(brightnessPin) < 300) blinkande = 1; om omgivande ljus nivåer upphov (dvs. du slå på en ljus) vända blinkande false
annars blinkar = 0; om de inte... fortsätter att blinka
}
}
Försök den ute! Få en IR-ljuskälla (night vision, fjärrkontroll, IR ljusdioder, ljus... etc), Släck ljuset och prova skiner det på sensorn. Titta på de seriella monitorerna för att se till att allt är utlösande OK, justera värdena som behövs.