LED Fiber Optic maneter lampa: Nexus maneter (3 / 14 steg)
Steg 3: Steg 3: Arduino skiss
Kolla in den Arduino skissen, jag kommenterade det en löjlig belopp. Det bör förklara alla delar av koden, och det kommer även att hjälpa förklara vilket Arduino stift ansluter till vilket utrustning stift. Om det inte finns något som du förstår, är du välkommen att kontakta mig.
Detta är den Arduino skiss, för att använda den, du måste ha IRremote.h biblioteket, de filer som har laddats upp är de IRremote.h filerna. För att skissen att arbeta, måste du hämta alla filer, sätta dem i en mapp "IRremote.h" och placera dem i din Arduino bibliotek.
Du bör kopiera och klistra in denna kod på din Arduino:
/*
* Skiss ändras av njuter av elektronik: koden baserat bort av:
* IRremote
* Version 0.1 juli, 2009
* Copyright 2009 Ken Shirriff
* Mer information finns i http://arcfn.com/2009/08/multi-protocol-infrared-...
* Min Information (om något går fel, kontakta mig gärna)
* Roberto Infante
* Student på University of South Florida
* Kemiska Engineering Department
* MakeCourse: Nexus maneter
* Detta instructable skapades enlighet projektet kravet på Makecourse vid University of South Florida (www.makecourse.com)
* Skiss kommer att använda IR-sensorn som ett styrsystem, när rätt insignalen har tagits emot * det kommer att aktivera LED RGB för att bläddra mellan blått och magenta, detta kommer att ske när dc-motor körs. *
* Det kommer att finnas två makt skenor, en med 5V löper genom, och en annan med 12V går igenom den
* 5V kommer att driva mot IR-sensorn, LED ljus, och kommer att kontrollmekanismen för transistorn
* * 12V power järnväg ska köras igenom transistorn, och power DC-motor.
* Det bör påpekas att den spänning som går genom denna makt järnväg kommer att avgöra hur snabbt den * DC-motor kommer att köra ** kan komma igång:
Strömförsörjning till DC-motor är kopplad till Arduino som så: basen av transistorn till stift 2 på Arduino
*
KODEN BÖRJAR HÄR ***
* Detta kommer att omfatta biblioteket till kontroll, och avkoda IR-sensor * /
#include
/ * IR-sensor stift är kopplade till Arduino som så: Pin 1 till Vout (stift 9 på Arduino) stift 2 till GND Pin 3 till Vcc (+ 5v power järnväg) * /
int IRpin = 9. IRrecv irrecv(IRpin); decode_results resultat.
/ * RGB LED stiften är kopplade till Arduino som så: Pin röda till stift 3 på Arduino (PMW) Pin blå till stift 5 på Arduino (PMW) Pin gröna till stift 6 på Arduino (PMW) * / int redPin = 3; int bluePin = 6; int greenPin = 5;
int redVal; int greenVal; int blueVal;
/********************************Void Setup**************************************/
void setup() {//Set upp kontrollsystemet för den motoriska pinMode (2, utgång);
Dessa kommer att startvärdena i RGB
LED redVal = 255; greenVal = 255; blueVal = 255; Update();
Detta börjar mottagaren och gör det visas på den seriella monitorn
Serial.BEGIN(9600); irrecv.enableIRIn();
}
/*************************Void Update*****************************************/
void update() {
Detta kommer att tala LED till SKIFT färger genom att vrida på blå långsamt och sedan red att göra
magenta, och sedan roterande rött av att göra blå, och slutligen stänga alla av
analogWrite (redPin, redVal);
analogWrite (greenPin, greenVal);
analogWrite (bluePin, blueVal); }
void color_morph (int-värde, int get_brighter) {//this är koden för att ändra
för (int jag = 0; jag < 255; i ++)
{
om (get_brighter) {
(* värde)--;
}
annat {
(* värde) ++;
} update();
Delay(5); Detta anger hastigheten på LED färg förändras
} }
/*********************************Main Loop*************************************/
void loop()
Denna kod kommer att avkoda vad ir remote skickar, och visar värdet på den seriella utskriftsövervakaren
{
om (irrecv.decode (& resultat))
{
Serial.println (results.value, DEC); Skriva ut följetongen "results.value"
irrecv.Resume(); Ta emot nästa värde
}
/ *** Detta är bra grejer ***
/ Detta kommer att stänga av motorn under normal aktivitet
digitalWrite (2, hög).
/ * Nu om den övre högra knappen trycks (utan att hålla det nere), då denna loop-programsats kommer att aktivera
* Om någon annan knapp är intryckt så slingan kommer att sluta * /
om (results.value == 16769565) / / här är där du sätter i din IR fjärrkontroll knapp #
{
denna loop kommer att vara den som används för att aktivera LED/Motor
digitalWrite (2, låg). LED
börja på black (alla)
color_morph (& blueVal, 1); slå på blå
color_morph (& redVal, 1); slå på rött att göra magenta
color_morph (& redVal, 0); vänden av röda
color_morph (& blueVal, 0); övergången till svart (alla off)
Fortsätta läsa IR-sensorn under slingan, som färgen ändras
om (irrecv.decode (& resultat))
{
Serial.println (results.value, DEC); Skriva ut följetongen "results.value"
irrecv.Resume(); Ta emot nästa värde
}
}
}