Hur man styr 8 lysdioder med arduino uno (3 / 3 steg)
Steg 3: Ladda upp koden
int ledPins [] = {2,3,4,5,6,7,8,9}. En matris att hålla PIN-koden varje LED är ansluten till
dvs är LED #0 ansluten till stift 2, LED #1, 3 och så vidare
för att lösa en rad användning ledPins [0] skulle detta motsvara 2
och ledPins [7] skulle motsvara 9
/*
* setup() - funktionen körs en gång när du slår din Arduino på
* Vi tre kontroll stiften till utgångar
*/
void setup()
{
Ange varje pin ansluten till ledde till produktionen läge (dra hög (på) eller låg (off)
för (int jag = 0; jag < 8; i ++) {//this är en loop och upprepar åtta gånger
pinMode(ledPins[i],OUTPUT); Vi används för att ange varje LED stift till utgång
} //the kod ersätter understiger
/*
* loop() - denna funktion startar efter installationen är klar och sedan upprepa
* Vi anropa en funktion som kallas oneAfterAnother(). Om du vill ha ett annorlunda beteende
* avkommentera (ta bort två snedstreck) en av de andra raderna
*/
void loop() / / kör om och om igen
{
oneAfterAnotherNoLoop(); Detta kommer att vända på varje LED ett sedan stänga varje
}
void oneAfterAnotherNoLoop() {
int fördröjningstid = 100; tid (i millisekunder) ska gå mellan lysdioder
göra mindre för snabbare växling och större för långsammare
digitalWrite (ledPins [0], hög); Vänder på LED #0 (ansluten till stift 2)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [1], hög); Vänder på LED #1 (ansluten till stift 3)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [2], hög); Vänder på LED #2 (ansluten till stift 4)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [3], hög); Tänds lysdiod #3 (ansluten till stift 5)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [4], hög); Vänder på LED #4 (ansluten till stift 6)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [5], hög); Vänder på LED #5 (ansluten till stift 7)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [6], hög); Vänder på LED #6 (ansluten till stift 8)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [7], hög); Vänder på LED #7 (ansluten till pin 9)
Delay(delayTime); Waits fördröjningstid millisekunder
Släcks varje LED
digitalWrite (ledPins [7], låg); Vänder på LED #0 (ansluten till stift 2)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [6], låg); Vänder på LED #1 (ansluten till stift 3)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [5], låg); Vänder på LED #2 (ansluten till stift 4)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [4], låg); Tänds lysdiod #3 (ansluten till stift 5)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [3], låg); Vänder på LED #4 (ansluten till stift 6)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [2], låg); Vänder på LED #5 (ansluten till stift 7)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [1], låg); Vänder på LED #6 (ansluten till stift 8)
Delay(delayTime); Waits fördröjningstid millisekunder
digitalWrite (ledPins [0], låg); Vänder på LED #7 (ansluten till pin 9)
Delay(delayTime); Waits fördröjningstid millisekunder
}
void oneAfterAnotherLoop() {
int fördröjningstid = 100; tid (i millisekunder) ska gå mellan lysdioder
göra mindre för snabbare växling och större för långsammare
Aktivera varje LED en efter den andra
för (int jag = 0; jag < = 7; i ++) {
digitalWrite (ledPins [i], hög); Vänder på LED #i varje gång detta kör jag
Delay(delayTime); får en läggas till det så upprepas med
} //8 gånger första gången jag kommer = 0 finalen
tid jag kommer att motsvara 7.
Inaktivera en efter en annan varje LED
för (int jag = 7; jag > = 0; i--) {//same som ovan men snarare än början på 0 och räkna upp
Vi börjar vid sju och räkna ner
digitalWrite (ledPins [i], låg); Släcks LED #i varje gång detta kör jag
Delay(delayTime); får en subtraheras från det så upprepas med
} //8 gånger första gången jag kommer = 7 finalen
tid det kommer att vara lika med 0
}
/*
* oneOnAtATime() - kommer ljus en ledde sedan nästa stänga av alla andra
*/
void oneOnAtATime() {
int fördröjningstid = 100; tid (i millisekunder) ska gå mellan lysdioder
göra mindre för snabbare växling och större för långsammare
för (int jag = 0; jag < = 7; i ++) {
int offLED = i - 1. Beräkna som LED vändes senaste tiden genom
IF(i == 0) {//for jag = 1 till 7 detta är jag minus 1 (dvs. om jag = 2 kommer vi att
offLED = 7. slå på LED 2 och av LED 1)
} //however om jag = 0 vi inte vill vända på led -1 (inte finns)
i stället stänga vi av LED 7, (looping runt)
digitalWrite (ledPins [i], hög); slå på LED #i
digitalWrite (ledPins [offLED], låg); stänga av lampan vi vände på förra gången
Delay(delayTime);
}
}
/*
* inAndOut() - Detta kommer att slå på de två mellersta lysdioderna då två ut
* att göra en in och ut se
*/
void inAndOut() {
int fördröjningstid = 100; tid (i millisekunder) ska gå mellan lysdioder
göra mindre för snabbare växling och större för långsammare
rinner LEDs ut från mitten
för (int jag = 0; jag < = 3; i ++) {
int offLED = i - 1. Beräkna som LED vändes senaste tiden genom
IF(i == 0) {//for jag = 1 till 7 detta är jag minus 1 (dvs. om jag = 2 kommer vi att
offLED = 3; slå på LED 2 och av LED 1)
} //however om jag = 0 vi inte vill vända på led -1 (inte finns)
i stället stänga vi av LED 7, (looping runt)
int onLED1 = 3 - i. Detta är den första lysdioden gå på dvs. Lysdiod #3 när jag = 0 och LED
#0 när jag = 3
int onLED2 = 4 + i. Detta är den första lysdioden gå på dvs. Laddningslysdiod #4 när jag = 0 och LED
#7 när jag = 3
int offLED1 = 3 - offLED; släcks LED vi vände på förra gången
int offLED2 = 4 + offLED; släcks LED vi vände på förra gången
digitalWrite (ledPins [onLED1], hög);
digitalWrite (ledPins [onLED2], hög);
digitalWrite (ledPins [offLED1], låg);
digitalWrite (ledPins [offLED2], låg);
Delay(delayTime);
}
kör lamporna i mitten
för (int jag = 3; jag > = 0; i--) {
int offLED = i + 1. Beräkna som LED vändes senaste tiden genom
IF(i == 3) {//for jag = 1 till 7 detta är jag minus 1 (dvs. om jag = 2 kommer vi att
offLED = 0; slå på LED 2 och av LED 1)
} //however om jag = 0 vi inte vill vända på led -1 (inte finns)
i stället stänga vi av LED 7, (looping runt)
int onLED1 = 3 - i. Detta är den första lysdioden gå på dvs. Lysdiod #3 när jag = 0 och LED
#0 när jag = 3
int onLED2 = 4 + i. Detta är den första lysdioden gå på dvs. Laddningslysdiod #4 när jag = 0 och LED
#7 när jag = 3
int offLED1 = 3 - offLED; släcks LED vi vände på förra gången
int offLED2 = 4 + offLED; släcks LED vi vände på förra gången
digitalWrite (ledPins [onLED1], hög);
digitalWrite (ledPins [onLED2], hög);
digitalWrite (ledPins [offLED1], låg);
digitalWrite (ledPins [offLED2], låg);
Delay(delayTime);
}
}