Kontrollera flera lysdioder med en Arduino Uno. (9 / 11 steg)
Steg 9: Klistra in koden nedan på en öppen arduino "skiss".
Obs: De rader som börjar med / / är kommentar avsnitt, de används bara för att förklara koden och de inte bidra till den faktiska koden!
int ledPins [] = {2,3,4,5,6,7,8,9}.
Den första delen av en matris är index 0.
Vi har satt värdet "2" i index 0, "3" i index 1, etc.
Det definitiva indexet i matrisen ovan är 7, som innehåller
värdet "9".
Vi använder värdena i den här matrisen för att ange pin-koder
att åtta lysdioderna är kopplad till. LED 0 är ansluten till
stift 2, LED 1 är ansluten till stift 3, etc.
void setup()
{
heltal index;
I denna skiss, ska vi använda "for() loopar" steg variabler från
ett värde till en annan, och utföra en uppsättning instruktioner för
varje steg. For() loopar är ett mycket praktiskt sätt att få nummer till
räkna upp eller ner.
Varje for() loop har tre uttalanden åtskilda av
semikolon (;):
// 1. Något att göra innan du börjar
// 2. Ett test att utföra; så länge det är sant, hålla looping
// 3. Något att göra efter varje slinga (ökning en variabel)
Här kommer vi att använda en for() slinga för att initiera alla LED stift
utgångarna. Det är mycket lättare än att skriva åtta separata
uttalanden att göra samma sak.
Denna for() loop gör index = 0, då springa pinMode()
uppgift inom parentes. Det kommer att sedan göra samma sak
för index = 2, index = 3, etc. hela vägen till index = 7.
för (index = 0; index < = 7; index ++)
{
pinMode(ledPins[index],OUTPUT);
ledPins [index] skall ersättas med värdet i matrisen.
LedPins [0] är till exempel 2
}
}
void loop()
{
Denna loop() kräver funktioner som vi har skrivit ytterligare nedan.
Vi har inaktiverat några av dessa genom att kommentera dem ut (att sätta
"/ /" framför dem). Prova olika LED-displayer, ta bort
den "/ /" framför de som du skulle vilja springa och lägga till "/ /"
framför dem du behöver inte att kommentera ut (och inaktivera) de
linjerna.
oneAfterAnotherNoLoop(); Tänds alla lampor i sin tur
}
/*
oneAfterAnotherNoLoop()
Denna funktion kommer att lysa en LED, delay fördröjningstid, sedan ljus
Nästa ledde, och upprepa tills alla lampor är på. Det kommer sedan
stänga av dem i omvänd ordning.
Denna funktion använder inte en for() slinga. Vi har gjort det den hårda vägen
att visa dig hur mycket lättare livet kan vara när du använder for() loopar.
Ta en titt på oneAfterAnotherLoop() längre ned, som
exakt samma sak med mycket mindre att skriva.
*/
void oneAfterAnotherNoLoop()
{
int fördröjningstid = 100; / / tid (millisekunder) ska gå mellan lysdioder
göra detta mindre för snabbare växling
Aktivera alla lampor:
digitalWrite (ledPins [0], hög); Vänder på LED #0 (pin 2)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [1], hög); Vänder på LED #1 (pin 3)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [2], hög); Vänder på LED #2 (PIN-kod 4)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [3], hög); Tänds lysdiod #3 (pin 5)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [4], hög); Vänder på LED #4 (PIN-kod 6)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [5], hög); Vänder på LED #5 (PIN-kod 7)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [6], hög); Vänder på LED #6 (PIN-kod 8)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [7], hög); Vänder på LED #7 (PIN-kod 9)
Delay(delayTime); vänta fördröjningstid millisekunder
stänga av alla lampor:
digitalWrite (ledPins [7], låg); Stänga av LED #7 (PIN-kod 9)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [6], låg); Stänga av LED #6 (PIN-kod 8)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [5], låg); Stänga av LED #5 (PIN-kod 7)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [4], låg); Stänga av LED #4 (PIN-kod 6)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [3], låg); Stänga av lysdiod #3 (pin 5)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [2], låg); Stänga av LED #2 (PIN-kod 4)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [1], låg); Stänga av LED #1 (pin 3)
Delay(delayTime); vänta fördröjningstid millisekunder
digitalWrite (ledPins [0], låg); Stänga av LED #0 (pin 2)
Delay(delayTime); vänta fördröjningstid millisekunder
}