Synth(MIDI)-styrda ljuseffekter, påbörjat projekt, uppskattar feedback

"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 :slight_smile:

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?