Wie kann ich folgenden Programmtext verkürzen?


hallo!

ich, 15, bin blutiger anfänger beim thema arduino.

ich habe 10 led's angeschlossen und möchte die ein paar spielereien machen lassen, unter anderem soll das licht sich von der mitte gleichzeitig zu beiden seiten weg- und wieder zurückbewegen. um die gleichzeitigkeit zu realisieren, kann ich meiner meinung nicht auf eine schleife o. ä. zurückgreifen. jetzt ist aber sehr viel text entstanden.

ich würde euch den kompletten code reinsetzen, damit ihr alles versteht.


code: [select]
int i;
int a;

void setup() {
  (i=1; i<11; i++) {
    pinmode(i, output);
  }

}

void loop() {
  hinundher();

  ausbreiten();
  ausbreiten();
 
  // delay(10000);
}


void hinundher() {
  (a=1; a<3; a++) {
 
    (i=1; i<11; i++) {
     digitalwrite(i, high);
      delay(250);
      digitalwrite(i, low);
    }

    (i=9; i>1; i--) {
      digitalwrite(i, high);
      delay(250);
      digitalwrite(i, low);
    }
  }
}


void ausbreiten() {
  digitalwrite(5, high);
  digitalwrite(6, high);
  delay(200);
  digitalwrite(5, low);
  digitalwrite(6, low);

  digitalwrite(4, high);
  digitalwrite(7, high);
  delay(200);
  digitalwrite(4, low);
  digitalwrite(7, low);

  digitalwrite(3, high);
  digitalwrite(8, high);
  delay(200);
  digitalwrite(3, low);
  digitalwrite(8, low);

  digitalwrite(2, high);
  digitalwrite(9, high);
  delay(200);
  digitalwrite(2, low);
  digitalwrite(9, low);

  digitalwrite(1, high);
  digitalwrite(10, high);
  delay(200);
  digitalwrite(1, low);
  digitalwrite(10, low);

  digitalwrite(2, high);
  digitalwrite(9, high);
  delay(200);
  digitalwrite(2, low);
  digitalwrite(9, low);

  digitalwrite(3, high);
  digitalwrite(8, high);
  delay(200);
  digitalwrite(3, low);
  digitalwrite(8, low);

  digitalwrite(4, high);
  digitalwrite(7, high);
  delay(200);
  digitalwrite(4, low);
  digitalwrite(7, low);
}




ich hoffe auch, dass ich mich klar genug ausgedrückt habe.
bitte bedenkt bei eurer antwort, ich bin ziemlicher anfänger :).


vielen dank schonmal!
adrian

du hast vergessen den output die jeweilige pinnummer zu zuweisen.
(nicht getestet)
code: [select]

         //aufruf durch leds[0,1,2,...9]
const uint8_t leds[10] = {2,3,4,5,6,7,8,9,10,11};
...
for (uint8_t zaehler = 0; zaehler < 10; zaehler++) //10 < reicht aus, da array bei 0 anfaengt.
{
  pinmode(zaheler, output);
}
...
void loop()
{
  digitalwrite(leds[0], high);

//oder mit forschleife fuer mehrere leds nach einander
  (uint8_t x = 0; x < 10; x++)
{
  digitalwrite(leds[x], high);
}
}


Arduino Forum > International > Deutsch (Moderator: uwefed) > Wie kann ich folgenden Programmtext verkürzen?


arduino

Comments

Popular posts from this blog

Error compiling for board Arduino/Genuino Uno.

Installation database is corrupt

esp8266 (nodemcu 0.9) client.write très lent ???