Arduino Hilfe Gesucht.

OP (Firma: hnjmf) #4216724
Lesenswert?

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
Gast #4216732
Lesenswert?

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;


}
OP (Firma: hnjmf) #4216750
Lesenswert?

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
#4216757
Lesenswert?

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++.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren