1. LED Laola
Als Beispiel nach dem Blinkprogramm hier das LED Laola Programm von den Anwendungsbeispielen, auf dieser Seite ist auch die Verschaltung dargestellt.

Das Programm:

void setup()
{
  randomSeed(analogRead(0));
  for (int z=1;z<7;z++)
  {  
    pinMode(z,OUTPUT);
  }
}

void randomLED(int del)
{
  int r;
  r=random(1,7);
  digitalWrite(r,HIGH);
  if (del>0)
  {
    delay(del);
  }
  else if(del==0)
  {
    do
    {
      
    }
    while(1);
  }
  digitalWrite(r,LOW);
}

void loop()
{
  int a;
  for (a=0;a<100;a++)
  {
    randomLED(50);
  }
  for (a=1;a<=100;a++)
  {
    randomLED(a*100);
  }
  randomLED(0);
}

so sieht es aus:


2. elektronischer Würfel

Für dieses Beispiel wird eine 7 Segmentanzeige benötigt, von der die erwürfelte Zahl abgelesen werden kann.

Zu beachten ist für die Programmierung die Ansteuerung der LEDs. Hier ein Bild der Pinbelegung.


Abb.: Prinzipaufbau einer 7-Segment-Anzeige; Quelle: BBS2 Wolfsburg


Das Programm:

void setup()
{
  randomSeed(analogRead(0));
  for (int z=2;z<10;z++)
  {  
    pinMode(z,OUTPUT);
  }
  pinMode(10,INPUT);
}

void wuerfel(int del)
{
   do
    {
      randomLED(del);
    }
    while(1);
}

void randomLED(int del)
{
  int r;
  r=random(1,7);
  zeigeZahl(r); //digitalWrite(r,HIGH)
  if (del>0)
  {
    delay(del);
  }
  else if(del==0)
  {
    do
    {
      
    }
    while(10==LOW);
  }
  loescheAnzeige(); //digitalWrite(r,LOW)
}

void zeigeZahl(int r)
{
 switch(r)
 {
 case 1:
  digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  break;
 case 2:
  digitalWrite(2,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(8,HIGH);
  break;
 case 3:
  digitalWrite(2,HIGH);
  digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(8,HIGH);
  break;
 case 4:
  digitalWrite(3,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(8,HIGH);  
  break;
 case 5:
  digitalWrite(2,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(8,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(5,HIGH);  
  break;
 case 6:
  digitalWrite(2,HIGH);
  digitalWrite(7,HIGH);
  digitalWrite(6,HIGH);
  digitalWrite(5,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(8,HIGH);  
  break;
 }
}

void loescheAnzeige()
{
  for (int z=2;z<10;z++)
  {  
    digitalWrite(z,LOW);
  }
}

void loop()
{
  int a;
  for (a=0;a<100;a++)
  {
    randomLED(50);
  }
  for (a=1;a<=100;a++)
  {
    randomLED(a*50);
  }
  randomLED(0);
  digitalWrite(9,HIGH);
}

So sollte es dann aussehen:


Zuletzt geändert: Montag, 28. Februar 2022, 16:46