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.
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
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)
(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
Post a Comment