Programmbeispiele Arduino IDE
Completion requirements
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:
Last modified: Monday, 28 February 2022, 4:46 PM