Modius - Techblog

  • Ansible
  • Docker
  • DevOps
  • Gastautor werden
  • Newsletter abonnieren
  • Über Mich
  • Kontakt

Arduino – 4fach 7-Segmentanzeige mit Schieberegister

Veröffentlicht am 17. Oktober 2014 von Christian Piazzi 3 Kommentare , Aktualisiert am 1. Mai 2020
Geschätzte Lesezeit: 51 Sekunden

Heute gibt es mal ein Tutorial, wie ihr mit Schieberegistern 7 Segment Anzeigen befüllen könnt. Dafür haben wir vier 7 Segment Anzeigen hintereinander, um z.b. einen vierstelligen Code ausgeben zu können.

Material

Für diese Tutorial benötigen wir die folgenden Teile:

  • Arduino UNO R3 (Link zum Shop)
  • Breadboard
  • 4x 7 Segment Display Größe 13mm 
  • 4x 74HC595
  • 8x 1.5k Ω Widerstand
  • diverse Kabel

Aufbau:

Schieberegister_Aufbau_01

Wir beginnen damit, den Arduino mit dem Breadboard zu verbinden. Anschließend stecken wir die 74HC595 und die Anzeigen auf des Breadboard. Nun werden die 74HC595 untereinander und mit dem Arduino verbunden. Zu guter letzt müssen wir noch die Widerstände auf das Board stecken, damit die Segment Anzeigen nicht die vollen 5V abbekommen.

Nun werden die 74HC595 mit den 7 Segment Anzeigen verbunden.

Schieberegister_Aufbau_02

Für alle, die nicht gerne mit den Zeichnungen von Fritzing arbeiten, habe ich hier auch noch einen normalen Schaltplan.

Schieberegister_Schaltplan

Damit hätten wir dann den Aufbau schon einmal abgeschlossen.

Code:

Hier nun der Code, auf den Anzeigen auch Zahlen auszugeben. Der Code ist nicht von mir selber und der Ersteller wollte anonym bleiben.

Aber falls es fragen gibt könnt ihr diese gerne unter den Artikel schreiben oder die Mailadresse verwenden die im Quellcode angegeben ist.

Arduino
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
/*
  Schieberegister 74HC595
  Campers death
  o.t.h.campers-death@gmx.net
*/
const unsigned int clockPin = 12; // toggeln während der Datenübertragung
const unsigned int latchPin = 13; // vor dem Senden der Daten an den IC auf LOW ziehen, danach wieder HIGH
const unsigned int dataPin1 = 11; // an den seriellen Eingang des IC; jeweils 1 Byte übertragen
/*Segments
    - a -
   |     |
   f     b
   |     |
    - g -
   |     |
   e     c
   |     |
    - d -   dp
    
Bit-order for shift register:
dp g  f  a  b  c  d  e
*/
 
//definition of displayable numbers:
byte number[]={0b00111111,0b00001100,0b01011011,0b01011110,0b01101100,0b01110110,0b01110111,0b00011100,0b01111111,0b01111110};
//definition of special states
byte cycle[] ={0b00010000,0b00001000,0b00000100,0b00000010,0b00000001,0b00100000,};
byte waiting = 0b00010010;
 
byte zero = 0b00111111;
byte one = 0b00001100;
byte two = 0b01011011;
byte three = 0b01011110;
byte four = 0b01101100;
byte five = 0b01110110;
byte six = 0b01110111;
byte seven = 0b00011100;
byte eight = 0b01111111;
byte nine = 0b01111110;
byte dec = 0b10000000;
 
 
void setup() {
  pinMode(clockPin, OUTPUT);
  pinMode(latchPin, OUTPUT);
  pinMode(dataPin1, OUTPUT);
 
  
}
void loop() {
  for(int i = 0; i <= 5; i++){//for loop to count up to 9 from zero
  digitalWrite(latchPin, LOW);
  // Datenübertragung: das Byte wird von rechts 2^0 nach links 2^7 codiert (least significant bit first)
  
  shiftOut(dataPin1, clockPin, MSBFIRST, number[1]);
  shiftOut(dataPin1, clockPin, MSBFIRST, number[1]);
  shiftOut(dataPin1, clockPin, MSBFIRST, number[1]);
  shiftOut(dataPin1, clockPin, MSBFIRST, number[1]);
  delay(80);
  digitalWrite(latchPin, HIGH);
    }
  //shiftOut(dataPin2, clockPin, MSBFIRST, three);
  //shiftOut(dataPin1, clockPin, MSBFIRST, four);
  
}

Kategorie: Mikrokontroller Tags: 7 Segment Display, 74HC595, Arduino, Arduino UNO R3, Mikrokontroller, Schieberegister

Über Christian Piazzi

Ich blogge hier über alles, was mir so in meinem ITler Altag über den Weg läuft =)
Man findet mich privat bei Google+ und Twitter

Kommentare

  1. Philipp meint

    9. Februar 2019 um 19:41

    Sehr gute Anleitung!
    Für wie viel Volt muss die Segment Anzeige sein? Ich finde welche mit 4.7V, 2.1V, 1.95,…

    Antworten
    • Campers death meint

      12. Februar 2019 um 14:40

      Hallo,
      in diesem Beispiel werden 7-Segementanzeigen von Knightbright verwendet (genauer die sc65-11). Die haben eine Nennspannung von 3,3V und eine Maximalspannung von 4,7V.
      Empfehlen würde ich dir die mit 4,7V wenn du keine mit 5V findest. Wichtig ist das die eine gemeinsame Kathode haben, sonst wird die Schaltung wie oben so nicht funktionieren.

      Antworten
  2. Sascha meint

    2. Januar 2022 um 01:01

    Kann man damit auch Uhr machen?

    Antworten

Schreibe einen Kommentar Antworten abbrechen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Kategorien

  • Linux
  • Internet, Bloggen & Co
  • Programmierung
  • Sicherheit
  • Netzwerk & Co
  • Mikrokontroller
  • Windows

Beliebte Artikel

  • Docker Container – anzeigen, starten, stoppen und löschen
  • Nextcloud https mit self-signed Zertifikat einrichten
  • ioBroker auf dem Raspberry Pi installieren und konfigurieren
  • Soft- und Hardlinks unter Linux
  • Arten von Betriebssystemen

Neueste Kommentare

  • Docker Compose Guide - Modius - Techblog bei Docker Compose – Automatisiertes starten von Microservices
  • Keksiminer bei Minecraft Bukkit Server – dynmap installieren und konfigurieren
  • Thorben bei Nextcloud https mit self-signed Zertifikat einrichten
  • Sepp bei Automatisierte Dokumentation von Python Projekten mit sphinx
  • Sascha bei Arduino – 4fach 7-Segmentanzeige mit Schieberegister

Werbung

Archive

Kontakt, Datenschutz und Impressum

  • Kontakt
  • Datenschutz
  • Impressum

Schlagwörter

Anleitung Ansible Apache Apple App Store Automatisierung Blogparade C++ Centos CentOS7 centos 7 Container Datenbank DevOps Docker Dr. Racket Dr. Scheme funktional Gastartikel Google HowTo httpd Icinga2 Icinga 2 Installation itsm Linux Minecraft Monitoring mooc MySQL owncloud PHP Plugin Programmierung python Raspberry Pi Schritt für Schritt Server Sicherheit Tutorial Ubuntu Update Windows Wordpress

Copyright © 2023 · Outreach Pro on Genesis Framework · WordPress · Anmelden