Arduino kontrollerade animatronic trä huvud (läslampa) (19 / 27 steg)
Steg 9: Kontrollera ögongloben ljuset med Arduino koden
Detta testades först med en standard LED ut kretsen.
Detta var aldrig kommer att bli tillräckligt ljust, men bekvämt kom med Arduino pack för testning.
Den full lampa skissen för Arduino är i steg 1.
Här är den ursprungliga Arduino skiss koden i blått. Detta har ursprungliga koden kommentarer och har lagt till ytterligare extra kommentarer här i normala fet text här:
/*
DEFINIERA LAMPOR
ställa in lampan pin-koder
Detta definierar som analoga PIN kommer att läsa lampspänning från indata potentiometern
CONST int lampPin = 5; förklarar den ANALOG INPUT pin-kod för signal - i
Och definierar var utdata som styr lampans ljusstyrka
CONST int ledPinEyes = 3; antal LED utgångsstiftet för ögongloben lysdioder - ut
Detta är att förklara, en variabel används av Arduino för att konvertera vlotage i till vlotage ut och initiera den till noll
int valLamp = 0; variabel att läsa analog insignal från brytare till uppsättningen av lampor
Detta är att förklara att PIN-koden är en utgång
pinMode (ledPinEyes, produktionen); / / Detta är utdata som slår på lampor på eller av
Inom den Arduino loop() funktion, funktionen lampCheck() anropas upprepade gånger för att kontrollera för potentiometer ingång och omvandlar den till lampans ljusstyrka genom att förse det med en puls bredd modulerad utgång
void lampCheck() {
Nästa rad läser spänningen i den analoga PIN 5
valLamp=analogRead();
Nästa rad är att konvertera värdet från indata och koppla den till den variabla valLamp. Arduino anger detta som ett tal mellan 0 och 1023, där 0 = 0V i och 1023 = 5V i. Det skalar sedan värdet av valLamp inom det tillåtna intervallet av utgångar som kan skickas till den digitala utgången PIN. Detta är mellan 0 och 255. Värdet används för att gälla en 5V utsignal, vilket skapar en fyrkantsvåg av varierande längd för på och av Pulse bredd modulation. Detta ger effektivt en variabel utspänning. 0 ger 0V ut spänningen stiger ut tills 255 ger 5V.
//
valLamp = karta (valLamp, 20, 1023, 0, 255);
Denna linje begränsar det till inom den tillåtna gränsen
valLamp = begränsa (valLamp, 0,255);
Och slutligen skriver värdet till produktionen stift
analogWrite (ledPinEyes, valLamp);
}
Bygga ögonglober
Ögonglober hade ett hål i varje ände. Den stora hål i ena änden är för LED och en lins att fokusera balken.
Det lilla hålet är för kontroll staven. En gummi gromett var utrustad att hålla den.
Ljus behövs för att helt kraftfull.
Normal lysdioder var inte bra, så jag var tvungen att köpa två 3w power LED.
Detta är lätt att hitta på elektronisk komponent säljarnas hemsidor.
Linserna är tagna ur en nedlagda fackla.
Till höger finns två färdiga ögonglober.