Hallo Liebes forum ich bin bei Arduino noch relatife neu und brauche hilfe. zunächst einmal zu meinen projekt. ich möchte mir ein LED cube bauen und disen über Arduino ansteuern da ich aber noch nicht so weit bin mit Programieren habe ich vor erstmal verschiedene zwischen projete zu machen um es zu lehrenen. zuerst einmal einmal die ansteuerung von 10 LEDs Dann 10X5 LED matrix Led cube 3x3x3 oder 5x5x5 Habe jetzt folgenes problem da ich später die led matrix im program 2d darstellen will Z.B L0000000000 L0000000000 L0000000000 L0000000000 L0000000000 nun habe ich ein bischen probiert und es soweit hinbekommen das ich in der loop zb L0010011011 schreibe und diese auch angezeit bekomme auf der led aber nur wen ich vorher L1000000 benant hab. also void loop() { L0000000(100); L0001000(100); L0011100(100); L0111110(100); L1111111(100); L0111110(100); L0011100(100); L0011100(100); L0001000(100); } void L1000000(int Zeit) { int i = 0; while (i<Zeit) { digitalWrite(13,HIGH); delay(5); digitalWrite(13,LOW); delay(5); i = i + 1; } } möchte jetzt aber nich für jede fariante das schreiben müssen das währ zu viel. Gibt es da für eine lösung oder eine möglichkeit das besser zu machen als so? wichtig ist erst mal nur das ich den sketch für die zwischen projete weiter ausbauen kann also von d1 zu d2 und dann d3. Hoffe ihr könnt mir da helfen. und bitte keine sachen wie machs auf admega ic oder so mag bei arduino bleiben. liebe grüße und danke
:
Verschoben durch User
Das hat ja nichts mit Arduino zu tun du kannst einfach nicht Programmieren
Finde du hast einen unübersichtlichen Ansatz gewählt Würde es in Pseudo Code so machen Timerschleife: { zalhl++ if Zahl >10 zahl=0 } Void main { if zahl == 1 Muster 1 ausgeben; if zahl == 2 Muster 2 ausgeben; if zahl == 3 Muster 3 ausgeben; if zahl == 4 Muster 4 ausgeben; if zahl == 5 Muster 5 ausgeben; USW if zahl == 10 Muster 10 ausgeben; }
genau und daher auch die frage wie ich es anstelle oder besservorgehe dabei und ich kann kleidere sachen schon machen so die anfänger sachen aber das reicht ja anscheinent nicht für daher benötige ich hilfe oder tips
Shin N. schrieb: > benötige ich hilfe oder tips Robert L. schrieb: > Das hat ja nichts mit Arduino zu tun > du kannst einfach nicht Programmieren OK war zwar schon ein Tip aber vielleicht versteckt, also: http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/c-kurs o.ä.
beim ersten zwischen projekt sind die 10 leds alle + an pin 13,12,11,10 usw. masse zusammen beim zweiten kommen dan noch trasistoren dazu so das ich erstmal bei dier kleinen LED matix 15 pins brauche.
Joachim B. schrieb: > Shin N. schrieb: >> benötige ich hilfe oder tips > > Robert L. schrieb: >> Das hat ja nichts mit Arduino zu tun >> du kannst einfach nicht Programmieren > > OK war zwar schon ein Tip aber vielleicht versteckt, also: > http://userpage.fu-berlin.de/~ram/pub/pub_jf47ht81Ht/c-kurs > > o.ä. ja genau möchte aber nicht c+ lernen sonder die sprache für arduino die sind nicht 100% gleich
Shin N. schrieb: > ja genau möchte aber nicht c+ lernen sonder die sprache für arduino die > sind nicht 100% gleich wo siehst du Unterschiede?
Shin N. schrieb: > beim ersten zwischen projekt sind die 10 leds alle + an pin 13,12,11,10 > usw. masse zusammen Versuche es mal mit dieser Funktion:
1 | //Untested
|
2 | void ledOut(uint16_t leds, int time) |
3 | {
|
4 | digitalWrite(13, leds & (1 << 9) ? HIGH : LOW); |
5 | digitalWrite(12, leds & (1 << 8) ? HIGH : LOW); |
6 | digitalWrite(11, leds & (1 << 7) ? HIGH : LOW); |
7 | digitalWrite(10, leds & (1 << 6) ? HIGH : LOW); |
8 | digitalWrite( 9, leds & (1 << 5) ? HIGH : LOW); |
9 | digitalWrite( 8, leds & (1 << 4) ? HIGH : LOW); |
10 | digitalWrite( 7, leds & (1 << 3) ? HIGH : LOW); |
11 | digitalWrite( 6, leds & (1 << 2) ? HIGH : LOW); |
12 | digitalWrite( 5, leds & (1 << 1) ? HIGH : LOW); |
13 | digitalWrite( 4, leds & (1 << 0) ? HIGH : LOW); |
14 | |
15 | while(time--) |
16 | delay(10); |
17 | }
|
18 | |
19 | //Usage:
|
20 | void loop() |
21 | {
|
22 | ledOut(0b0000000, 100); |
23 | ledOut(0b0001000, 100); |
24 | ledOut(0b0011100, 100); |
25 | ledOut(0b0111110, 100); |
26 | ledOut(0b1111111, 100); |
27 | ledOut(0b0111110, 100); |
28 | ledOut(0b0011100, 100); |
29 | ledOut(0b0011100, 100); |
30 | ledOut(0b0001000, 100); |
31 | }
|
Shin N. schrieb: > ja genau möchte aber nicht c+ lernen sonder die sprache für arduino die > sind nicht 100% gleich Aduino ist C++.
:
Bearbeitet durch User
Max H. schrieb: > while(time--) > delay(10); dies delay Klamotten im Hauptprogramm sind einfach Bullshit. Lernt Timer zu programieren
Düsendieb schrieb: > Max H. schrieb: >> while(time--) >> delay(10); > > dies delay Klamotten im Hauptprogramm sind einfach Bullshit. > Lernt Timer zu programieren Das lassen wir besser erstmal, wenn schon so einfache Sachen ein Problem sind.
Dann warten wir mal ab, bis er versucht, das Beispiel für das Multiplexen zu verwenden
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.