Hallo, ich bastel gerade mit dem Arduino ein Lauflicht. Da habe ich folgenden Code gefunden: Passt der Code so? Weil funktionieren möchte es nicht. Vllt habe ich ja auch nur was falsch gesteckt. Könnte jemand sich den Code anschauen? int pin[8] = {2, 3, 4, 5, 6, 7, 8, 9}; int zaehler; int zeit = 50; void setup() { for(zaehler = 2;zaehler<10;zaehler++){ pinMode(zaehler, OUTPUT); } } void loop() { for(zaehler = 1;zaehler<11;zaehler++){ digitalWrite(zaehler, LOW); delay(zeit / 2); digitalWrite(zaehler + 1, HIGH); delay(zeit / 2); digitalWrite(zaehler + 2, HIGH); delay(zeit / 2); digitalWrite(zaehler + 3, HIGH); delay(zeit / 2); } }
> zaehler + 3
kann zu 13 werden, und das willst du sicherlich nicht.
Mein Tipp:
Wenn du ihn gefunden hast, dann tue ihn wieder dahin zurück.
Ansonsten bietet er schon das Potential, dass man ihn reparieren könnte.
Dazu würde gehören, dass man das Array mit den Pins entweder nutzt, oder
entsorgt.
ja im Netz gefunden. Das mit dem Array hat mich auch irgendwie verwundert. Wenn ich es richtig sehe wird es doch gar nicht benutzt oder? Kann ich die Zeile also komplett löschen. Wie bekomme ich das mit der 13 in Griff?
Peter21 schrieb: > ich bastel gerade mit dem Arduino ein Lauflicht. Hab ich auch schon - ohne Mikrocontroller - als ich 11 Jahre alt war. > Da habe ich folgenden Code gefunden: Passt der Code so? Weil > funktionieren möchte es nicht. Vllt habe ich ja auch nur was falsch > gesteckt. Kannst du denn die LEDs einzeln leuchten lassen? > Könnte jemand sich den Code anschauen? Und dann? Pippifax-Code. Dir fehlen Grundlagen.
* in setup() initialisierst du von Pin 2 bis 9 * in loop() läuft deine Schleife von 1 bis 10 bzw. 13 * ‚zeit‘ wird auf 50 gesetzt, und dann munter halbiert o_O - ich würde ‚zeit‘ mal höher setzen, 25ms sind vielleicht bissel kurz - for-Schleife in loop() analog zur Schleife in setup() machen - simpelste Lösung für die ‚zaehler + 1‘ etc. Konstrukte: jeweils hinter ein if() setzen, das auf zaehler<10 prüft
Ich habe das Beispiel mal gebürstet, und hoffentlich alle Läuse und Flöhe entfernt.... Vielleicht kannste ja was damit anfangen.
1 | const byte leds[] = {2, 3, 4, 5, 6, 7, 8, 9}; |
2 | const unsigned long leuchtdauer = 50UL; |
3 | |
4 | byte index = 0; // index der leuchtenden LED |
5 | |
6 | void setup() |
7 | {
|
8 | for(byte led:leds) pinMode(led,OUTPUT); |
9 | }
|
10 | |
11 | void loop() |
12 | {
|
13 | digitalWrite(leds[index],HIGH); |
14 | delay(leuchtdauer); |
15 | digitalWrite(leds[index],LOW); |
16 | index++; // eine led weiter schalten |
17 | index %= sizeof(leds); // wrap around |
18 | }
|
ungetestet Schätze aber mal, das das Lauflicht läuft.
STK500-Besitzer schrieb: > Pippifax-Code. > Dir fehlen Grundlagen. Beitrag "(Warum) ist das Forum (so) anfängerfeindlich?"
Arduino F. schrieb: > const byte leds[] = {2, 3, 4, 5, 6, 7, 8, 9}; Mach doch KITT, mit const byte leds[] = {2, 3, 4, 5, 6, 7, 8, 9, 8, 7, 6, 5, 4, 3}; (Alternativ, als erhöhte Schwirigkeitsstufe, mit einem Flag und IF (conditional) increment / decrement... :)
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.