Jetzt werden zwei Siebensegmentanzeigen gesteuert und dieser Artikel zeigt wie es geht…
Vorbereitungen:
Für dieses Projekt brauchen wir folgende Bauteile für den Schaltungsaufbau:
- Steckboard
- Kabelset für Entwicklerboards
- 560 Ohm Widerstände (16x)
- Schieberegister 74 HC595 (2x)
- Siebensegmentanzeige mit gemeinsamer Kathode (2x)
Schaltungsaufbau:
Der Schaltungsaufbau für dieses Projekt ist etwas komplexer und soll hier nicht zu detailliert beschrieben werden. Datenpins und Taktpins der Schieberegister sind untereinander un dmit dem Arduino verbunden. Die Datenleitung läuft vom Digitalpin 6 des Arduinos zum ersten Schieberegister und dann von dessen Pin 9 zu Pin 14 des zweiten Schieberegisters.
Programmierung:
#define DATA 6
#define LATCH 8
#define CLOCK 10
void setup()
{
pinMode(LATCH, OUTPUT);
pinMode(CLOCK, OUTPUT);
pinMode(DATA, OUTPUT);
}
int digits[] ={252, 96, 218, 242, 102, 182, 190, 224, 254, 246, 238, 62, 156, 122, 158, 142};
void displayNumber(int n)
{
int left, right=0;
if (n< 10)
{
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, LSBFIRST, digits[n]);
shiftOut(DATA, CLOCK, LSBFIRST, 0);
digitalWrite(LATCH, HIGH);
}
else if (n>= 10)
{
right = n % 10;
left = n / 10;
digitalWrite(LATCH, LOW);
shiftOut(DATA, CLOCK, LSBFIRST, digits[right]);
shiftOut(DATA, CLOCK, LSBFIRST, digits[left]);
digitalWrite(LATCH, HIGH);
}
}
void loop()
{
int i;
for (i = 0; i<100; i++)
{
displayNumber(i);
delay(100);
}
}