Anti mörkerseende enheten ¡¡¡CAUTION, inte säker för epilepsi eller beslag BENÄGNA individer! (4 / 5 steg)
Steg 4: belysning
Nästa steg är att lägga till några kraftfulla LED's för att göra detta blinkande faktiskt effektivt. Den blinkande effekten kallas Flimmer Vertigo och är "en obalans i hjärnan-cellernas aktivitet orsakas av exponering för lågfrekventa flimmer (eller blinkande) en relativt ljus ljus."
Vi använder Power LED , som måste behandlas annorlunda än en normal LED becasu de är verksamma på mycket högre strömmar. Det finns gott om bra Instructables om dem. För tillämpningsområdet för detta projekt kommer vi att hålla det så enkelt som möjligt. Arduino är inte kan leverera tillräckligt ström till enheten en makt ledde direkt, så vi måste använda en extern strömkälla av något slag och en transistor för att byta den. Det liknar arbetar med motorer. Också, eftersom dessa lysdioder är mycket känslig för små förändringar i spänning, så är det bäst att köra dem med en konstant aktuella förare, som vi kommer att bygga.
Referera till schematiska och bilder bifogas ovan
är ansluten till stift 9 på Arduino genom en 2.2 k motstånd att begränsa nuvarande. Sändaren är ansluten till marken och samlaren är ansluten till den negativa sidan av LED. TIP120 fungerar som en switch genom att avbryta anslutningen till marken.
PIN-koden är ansluten till + 9 volt (eller vilket batteri du använder). Utgångsstiftet är ansluten till justera stift genom ett nuvarande bemärkelse motstånd. Detta är kontrollmekanismen här. Värdet av det motståndet dikterar hur mycket ström LM317 gör genom den. Beräkningen är: R(esistance) = 1,25 (voltageReference) /I (strömmen i ampere). Om vi vill 500mA, som är en bra mängd aktuella för dessa lysdioder, skulle motståndet vara 1,25/0,5, eller 2,5 ohm. Detta är en stor artikel om LM317 som en konstant strömkälla med matematik för värmeavledning också. Vi kommer att använda 4 1/4W 10 Ohm motstånd parallellt, vilket kommer att ge oss 2,5 ohm på grund av detta.
Kontrollera att Base TIP120 är ansluten till PIN 9, och ledde variabeln sätts till 9 och sedan testa enheten igen. Det bör vara mycket obehagligt. Kom ihåg att allt du behöver göra är att sätta lamporna på att stänga av! Se bara till att du kommer ihåg där strömbrytaren är.
Detta är den sista koden:
int ledde = 9. HÖG uteffekt LED
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
}
}