"Tabeldreven" Tja, ja ... Som jag forstår din kunnskab, Martinblom, så kan det förslag vara långt frem i tiden. Men det kan också bare att nyt ord for "Array".
Arrays er som hus på vägen. istället for at skriva "fjärde-hus-på-vägen" så skriver du Väg[4]. Det vil inte spara något på dit program i sin nuvarende form, men det blir det senere. Lår oss åka lite frem i tid
byte Led[6] = { 2,3,4,5,6,7 } // Kommentar 1
void setup() {
for (int i=0; i<6; i++) { pinMode(Led[i],OUTPUT) ; } // kommentar 2
.... og annat setup }
void loop() {
....knap kode osv
for ( int i=0; i<8; i++) { // kommentar 3
if ( i<=5 ) digitalWrite(Led[i]HIGH) ; // kommentar 4
if ( i>=0 ) digitalWrite(Led[L],LOW) ; // ... 5
delay(50) ; // Måsta slänga delay bort ... en anden Post varför och vad som kommer istället en andan gång
} // slut på for-loop
..annan kode
}
Kommentar 1: Har reserver vi plads til 6 Led pin placeringar. Den första hetter Led[0]
, anden Led[1]
och sista Led[5]
. Om du nu har bytet runt på ledningerna 4 & 5 ved lödningen, så kan du här skriva { 2,3,5,4,6,7 }
- och resten af programmet behöver inte veta om ändringen! Det är det smarta.
Kommentar 2: "for ( ... )
" kan du slå upp. Det gör at variablen i går från-och-med 0 til-och-med 5 (mindre än 6). För varje [b]i[/b]
anropas pinMode med [nobbc]Led[i][/nobbc]
, dvs först med Led[0]
(som jo har värden 2, dvs pin2 sätts til output). Nästa omgång er det Led[1]
på tur och den sätter så pin 3, og tredje gång klarar den der feltrådning med at Led[2]
sätter pin 5 ... I övrigt - just i dette tilfälle behövs{ }
inte, men tydligere att skriva dom.
Kommentar 3: Här går i
från 0 til 7 inklusiv. Man kunne också skriva for ( int i = 0; i <=7 ; i++ )
för att göra det tydligt at vi slutar med 7, men det är en vana som C-programmer har at det oftast skriver "< högsta+1". Det passede jo fint med at Led-arrayet på storlek 6 slutade på [5] på kommentar 1.
Kommentar 4: Om du använder digitalWrite(Led[nobbc][i][/nobbc],HIGH)
och [b]i [/b]
är mera än 5 så är du utanför området af Led och det är dårligt. Så det gör vi inte. Annars så tänder vi en LED åt gången for dom första 5 omgånger med [b]i[/b]
.
Kommentar 5: Samma problem , om [b]i[/b]
bara är 1 så är i-2 lika med -1 och det går inte i Led. Eftersom [b]i [/b]
slutar på 7 så är i-2 like med 5 som högsta. Här släcker vi en LED åt gången for dom sista 5 omgångarna af [b]i[/b]
.
Det skulle gärna göra at vågen med LED kör. Du kan jo skriva ned alla värden för [b]i[/b]
og vilka LED tänns och släcks. Och så vet at ändra på i-loopens start/slut, og om du har i-1 eller i-3 så ändrar du vågens tjocklek. Med lite fantasi kan du gøra snyggare mönster.
P.S: Mit skrevna svensk er USSELT och felfyld. Jag vet det. Kan du läsa danska?