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);
}
Zuletzt geändert: Donnerstag, 1. Februar 2024, 11:35