Das 4 Digit 7-Segment Display anschließen und programmieren
Damit man den gemessenen Abstand des HC-SR04 Ultraschallsensor auslesen kann, benötigst Du das 7-Segment Display.
Das 7-Segment Display besitzt insgesamt 12 Kontakte, die auf der Rückseite, sechs oben, sechs unten jeweils verteilt sind. Dabei gehören 4 dieser Kontakte zu einer Ziffer. Die anderen 8 Kontakte die noch übrig bleiben gehören jeweils zu einem Segment und dem dazugehörigen Punkt der neben der Ziffer ist.
Die üblichen 7- Segment Anzeigen die eine oder zwei Ziffern anzeigen, steuern die Ziffern einzeln an. Bei 7- Segment Anzeigen die vier oder mehr Ziffern anzeigen ist diese Methode unmöglich, da es sonst zu einem sehr großen Kabelaufwand kommen würde. Deshalb greift man auf das sogenannte "Multiplexing" zu. Darunter versteht man, dass wenn alle Ziffern gleichzeitig angezeigt werden sollen, diese extrem schnell hintereinander angesteuert werden. Für das bloße Auge ist dies jedoch nicht sichtbar, weshalb man denkt, dass alle Ziffern gleichzeitig angesteuert werden.
Abbildung: 7-Segment Display
Quelle: BBS2 Wolfsburg
Bei den Anschlüssen CLK und DIO handelt es sich jeweils um digitale Eingänge, die die Informationen des Microcontrollers aufnehmen, bearbeiten und letztendlich umsetzen. Der Anschluss GND bedeutet nichts anderes als Ground und VCC stellt die Spannungsversorgung
für das Display sicher.
Abbildung: PINs des 7-Segment Displays
Quelle: BBS2 Wolfsburg
Das 7- Segment Display wird wie folgt an den Microcontroller angeschlossen:
VCC wird an PIN 5 V angeschlossen.
CLK wird an PIN 16 angeschlossen.
DIO wird an PIN 13 angeschlossen
GND wird an PIN GND (beliebig) angeschlossen.
Die folgenden Bilder stellen die Belegungen der PIN´s mit dem 7- Segment Display anschaulich dar:
Abbildung: Fritzing-Anordnung Ultraschallsensor mit 7-Segment Display
Quelle: BBS2 Wolfsburg
Im Folgenden zu sehen ist der Schaltplan für das Anschließen des 7- Segment Displays (bitte die Notizen beachten):
Grün - GND
Schwarz - CLK
Grau - DIO
Rot - 5 V
Abbildung: Fritzing-Schaltplan Ultraschallsensor mit 7-Segment Display
Quelle: BBS2 Wolfsburg
Zum Beginnen des Programmierens des 7- Segment Displays, muss man zunächst die Bibliothek TM1637 herunterladen:
Abbildung: Bibliotheksverwalter ArduinoIDE
Quelle: BBS2 Wolfsburg
Anschließend müssen wir die Bibliothek einfügen:
Source Code:
#include <TM1637Display.h> // Bibliothek für die 7- Segment Anzeige
#define echo 25 //Anschluss ECHO vom HC-SR04 wurde für PIN 25 festgelegt
#define trig 33 //Anschluss TRIG vom HC-SR04 wurde für PIN 33 festgelegt
#define display_clk 16 //Anschluss CLK von der 7- Segment Anzeige wurde für PIN 16 festgelegt
#define display_dio 13 //Anschluss DIO von der 7- Segment Anzeige wurde für PIN 13 festgelegt
//Entfernung als globale Variable anlegen
int entfernung = 0;
//Funktion zur Messung der Entfernung über den Ultraschallsensor HC-SR04 (mit Echo und Trigger), Einheit: cm
int getEntfernung()
{
long entfernung = 1;
long zeitx = 0;
digitalWrite (trig, LOW); //setzt den Zustand von trig auf LOW
delayMicroseconds(3); //setzt eine Pause/Unterbrechung von 3 Mikrosekunden
noInterrupts();
digitalWrite(trig, HIGH); //setzt den Zustand von trig auf HIGH
delayMicroseconds(10); //setzt eine Pause/Unterbrechung von 10 Mikrosekunden
digitalWrite(trig, LOW);
zeitx = pulseIn(echo, HIGH);
interrupts(); //unterbricht den Vorgang
zeitx = (zeitx / 2); //teilt die Zeit durch 2
entfernung = zeitx / 29.1; //teilt die Restzeit durch die Geschwindigkeit des Schalls
return (entfernung); //gibt die berechnete Entfernung zurück
}
TM1637Display display(display_clk, display_dio);
void setup()
{
pinMode(trig, OUTPUT); //
pinMode(echo, INPUT); //Legt den Eingangstyp des angegebenen PINs fest
}
void loop()
{
entfernung = getEntfernung();
//Einstellungen für die 7 Segment Anzeige
display.setBrightness(7);
display.showNumberDec(entfernung);
delay(20);
}