Programmbeispiele Arduino IDE
Abschlussbedingungen
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