lötzinn


Google-Suche auf MEINE-SCHALTUNG.de :





Dauerkalender


7-Segmentanzeige, 74HC4511 und Arduino


Eine Möglichkeit, die Anzahl der elektrischen Verbindungen beim Einsatz von 7-Segmentanzeigen zu reduzieren, stellen die BCD-Decoder dar. Hier kann man mit vier Verbindungen, je nach Ausführung, alle Elemente einer 7-Segment-Anzeige ansprechen. In dem Beispiel wird eine 7-Segment-Anzeige SC56-11EWA von Kingbright mit dem BCD-Decoder 74HC4511 angesteuert. Die beiden Bausteine bekommen zusätzlich als den Oberbefehlshaber Arduino Mega 2560 mit einem kleinen Steuerprogramm.

Die Pin-Belegung der 7-Segment-Anzeige SC56-11EWA sieht wie folgt aus:

sc56_11ewa

SC56-11EWA

Die Anzeige ist in der CC-Betriebsart ausgeführt. Das bedeutet, dass die Kathoden der einzelnen LEDs zusammengeschlossen sind. Sie sind an die Pins 3 und 8 ausgeführt, die an die Masse angeschlossen werden.
Der BCD-Decoder 74HC4511 empfängt über vier Leitungen (D0...D3) die Vorgaben von Arduino. Diese Vorgaben sind nichts anderes als im Dualsystem codierte Ziffern, die mit Hilfe von vier Bits dargestellt werden. Der Decoder wandelt seine Ziffer-Vorgaben intern um und belegt entsprechend seine sieben Ausgänge (a…g). Diese, verbunden mit der 7-Segment-Anzeige, bringen die Anzeige-Balken zum Leuchten. Die Eingänge an den Pins 3,4 und 5 sind Steuereingänge.

Die Pin-Belegung des Decoders 74HC4511:

74HC4511 Pin Bezeichnung

74HC4511 (Pin Bezeichnung)

Die genaue Codierung der BCD-Eingänge zeigt die folgende Tabelle:

Wahrheitstabelle

Wahrheitstabelle

Die folgende Abbildung zeigt die komplette Verschaltung der Elemente. Über die Ausgänge 40, 42, 44, 46 werden die (dual-codiert) Ziffern von Arduino zu dem BCD-Decoder weitergeleitet. Der Decoder steuert anschließend mit seinen Ausgängen a…g die 7-Segment-Anzeige. Die Widerstände R1-R7 dienen der Strombegrenzung der angesteuerten LEDs.

Schaltplan

Schaltplan

Die fertig aufgebaute Testschaltung:

Testschaltung

Testschaltung

Das Programm:


  // -----------------------------------------------------------
  // Arduino, BCD-Decoder 74HC4511, 7-Segment-Anzeige SC56-11EWA
  // -----------------------------------------------------------


  int bcd_D0 = 44;
  int bcd_D1 = 40;
  int bcd_D2 = 42;
  int bcd_D3 = 46;
  int BCD_Pin [] = { 46, 42, 40, 44 };
  int Ziffer = -1;
  int Schritt = 1;
  int i;

  void setup() {
    pinMode (bcd_D0, OUTPUT);
    pinMode (bcd_D1, OUTPUT);
    pinMode (bcd_D2, OUTPUT);
    pinMode (bcd_D3, OUTPUT);
  }

  // Hauptprogramm
  // ++++++++++++++++++++++++++
  void loop() {
    Ziffer = Ziffer + Schritt;
    Anzeige (Ziffer);
    delay (800);
    if (Ziffer == 9) { Schritt = -1; }
    if (Ziffer == 0) { Schritt = 1; }
  }

  // Unterprogramm Anzeige
  // ++++++++++++++++++++++++++
  void Anzeige (int Wert) {
    switch (Wert) {
      case 1 : {
        byte BCD_Wert [] = { 0, 0, 0, 1 };
        Ausgabe (BCD_Wert);
        break; }
      case 2 : {
        byte BCD_Wert [] = { 0, 0, 1, 0 };
        Ausgabe (BCD_Wert);
        break; }
      case 3 : {
        byte BCD_Wert [] = { 0, 0, 1, 1 };
        Ausgabe (BCD_Wert);
        break; }
      case 4 : {
        byte BCD_Wert [] = { 0, 1, 0, 0 };
        Ausgabe (BCD_Wert);
        break; }
      case 5 : {
        byte BCD_Wert [] = { 0, 1, 0, 1 };
        Ausgabe (BCD_Wert);
        break; }
      case 6 : {
        byte BCD_Wert [] = { 0, 1, 1, 0 };
        Ausgabe (BCD_Wert);
        break; }
      case 7 : {
        byte BCD_Wert [] = { 0, 1, 1, 1 };
        Ausgabe (BCD_Wert);
        break; }
      case 8 : {
        byte BCD_Wert [] = { 1, 0, 0, 0 };
        Ausgabe (BCD_Wert);
        break; }
      case 9 : {
        byte BCD_Wert [] = {1, 0, 0, 1 };
        Ausgabe (BCD_Wert);
        break; }
      case 0: {
        byte BCD_Wert [] = { 0, 0, 0, 0 };
        Ausgabe (BCD_Wert);
        break; }
    }
  }

  // Unterprogramm Ausgabe
  // ++++++++++++++++++++++++++
  void Ausgabe (byte BCD_Wert []) {
    for (i=0; i<4; i++) {
      digitalWrite (BCD_Pin [i], BCD_Wert [i]);
    }
  }
  // ----------------------------------------------------------

Auf dem Kurzvideo werden alle 10 Ziffern auf der 7-Segment-Anzeige angezeigt.

Kurzvideo


Weitere Themen:


Google-Suche auf MEINE-SCHALTUNG.de :


Home Impressum Datenschutz