Arduino Lektion 42: TM1638 LED Taster Shield

TM1638 LED Keypad
TM1638 LED Keypad

Das „TM1638 LED Taster Shield“ verfügt über

  • 8 LED,
  • 8 Taster, sowie
  • 2 4fach 7 Segment LED Anzeigen

Das Shield wird über einen TM1638 Chip betrieben.

TM1638 LED Keypad
TM1638 LED Keypad

Das Shield wird vormontiert geliefert, jedoch war auf der Oberseite eine weiße, schmierige, klebriege Flüssigkeit welche ich mit einem Brillenputztuch entfernen konnte.

Technische Daten des TM1638

  • Betriebsspannung 5V

Anschlussplan

Das Shield verfügt über 5 Pins welche wie folgt an den Maker UNO angeschlossen werden:

  • VCC – 5V
  • GND – GND
  • STB – digitaler PIN D8
  • CLK – digitaler PIN D9
  • DIO – digitaler PIN D10
TM1637 LED Key am Maker UNO
TM1637 LED Key am Maker UNO

Der Maker UNO verfügt über einen Piezo Buzzer welcher am digitalen Pin D8 angeschlossen ist, für diesen Aufbau musste ich also den Piezo Buzzer auf Mute stellen.

Bezug

Das Shield kann über ebay.de, amazon.de oder banggood.com für ca. 4€ bezogen werden.

Schaltung

Für den Aufbau der Schaltung verwende ich den Maker UNO und habe mir noch zusätzlich ein kleines Stativ gebaut damit das Shield in einem besseren Winkel steht.

Stativ für das TM1638 Shield
Stativ für das TM1638 Shield
TM1638 LED Key Shield am Stativ
TM1638 LED Key Shield am Stativ

Quellcode

Bibliothek

Für das Shield gibt es eine komfortable Bibliothek welche vom GitHub Repository https://github.com/rjbatista/tm1638-library geladen werden kann.

Wie eine Bibliothek der Arduino IDE hinzugefügt wird habe ich im Tutorial Arduino IDE, Einbinden einer Bibliothek erläutert.

Interaktionen mit den Tastern

Die Taster sind Binärcodiert d.h. der erste Taster hat den Code 1, der zweite die 2 der dritte die 4 usw.

Mit der Funktion „getButtons()“ erhält man nun eine Zahl und wenn zwei (oder mehr) Tasten gedrückt wurden dann erhält man eine Addierte Zahl.

Beispiel

Taste 1 (1) & Taste 2 (2) wurde zusammen gedrückt, dadurch wird nun der Wert „3“ zurück gegeben.

Interaktionen mit den LEDs

Das Shield verfügt neben den 8 Tasten auch über 8 LEDs welche einzeln angesprochen werden können.

Beispiel

Im folgenden Beispiel möchte ich nun die 8 Taster verwenden um jeweils die gegenüberliegende LED aufleuchten zu lassen.

Um alle LEDs wieder auszuschalten wird der Funktion „setLEDs()“ eine 0 übergeben.

Interaktion mit den 4fach 7 Segment LED Displays

Die 4fach 7Segment Displays können einfach mit den Funktionen aus der Bibliothek TM1638 angesprochen werden.

Es gibt neben der Bibliothek TM1638 auch die InvertedTM1638 diese manipuliert die LED Displays so das die Ausrichtung umgekehrt ist. Je nachdem wie das Display später eingebaut werden soll, kann dieses nützlich sein.

Beispiel

Bei der Ausgabe eines Textes auf dem 4fach 7Segment Display ist empfehlenswert alle Buchstaben in GROßSCHRIFT zu übergeben. (Wie in dem Beispiel zu sehen.) Es können kleine Buchstaben übergeben werden dieses ist aber nicht gerade gut zu lesen. Es werden aber bestimmte Buchstaben in kleine Buchstaben „umgewandelt“ da diese nicht anders dargestellt werden können (zbsp „T“ wird zu „t“).

Video

In diesem Video möchte ich die oben genannten Sketche einmal zeigen.

Die LED an der Position 1 war bei meinem Shield defekt somit musste ich diese austauschen.

Beispiel 1 – Temperatur, Luftfeuchtigkeit

Es soll über die Auswahl eines Taster verschiedene Werte der Sensoren auf den 4fach 7Segement LED Anzeigen angezeigt werden.

Die Werte der Sensoren sollen wie folgt angezeigt werden:

  • te. 25
  • hu. 60

Als Sensor verwende ich den DHT11 Sensor welchen ich schon im Tutorial Arduino Lektion 6: Sensor DHT11, Temperatur und relative Luftfeuchtigkeit messen beschrieben habe.

Aufbau

Der DHT11 Sensor wird über den digitalen PIN D4 angeschlossen.

DHT11 Sensor & TM1638 am Maker UNO
DHT11 Sensor & TM1638 am Maker UNO

 

Aufbau der Schaltung - DHT11 Sensor & TM1638 Shield am Maker UNO
Aufbau der Schaltung – DHT11 Sensor & TM1638 Shield am Maker UNO

Quellcode

Da der DHT11 Sensor die Temperatur „nur“ auf 1°C genau wiedergibt wandle ich den eigentlichen double (Gleitkommazahl) in ein Integer um somit wird mir die hier unnötige Nachkommastelle abgeschnitten.

Video

Beispiel 2 – Gedächnisstrainer

Ziel dieses Spieles ist es eine vorgegebene Reihenfolge von aufleuchtenden LEDs über die Tasten wiederzugeben wiederzugeben. Die beiden 4fach 7 Segment Displays dienen hierbei um die Leben sowie die Punkte zu zählen.

Aufbau

Für dieses Beispiel verwende ich den Maker UNO welchen ich bereits im gleichnamigen Tutorial Maker UNO – Überblick und Test beschrieben habe. Ein Vorteil dieses Microcontrollers ist es, das dieser einen Piezo Buzzer sowie einen Taster (fest verbaut) mit bringt somit wird für diese Schaltung nur das TM1638 Shield benötigt.

TM1637 LED Key am Maker UNO
TM1637 LED Key am Maker UNO

Wenn du dieses Beispiel mit einem „normalen“ Arduino UNO nachbauen möchtest, benötigst du:

  • einen Taster
  • einen 120 kOhm Widerstand
  • einen Piezo Buzzer
Gedächnistraining am Arduino UNO mit dem Shield TM1638
Gedächnistraining am Arduino UNO mit dem Shield TM1638

In dieser Schaltung habe ich den Piezo Buzzer auf den digitalen Pin 8 und den Taster auf den digitalen Pin 2 gelegt, dieses sind auch die gleichen Pins auf welchem beim Maker UNO die Bauteile geschaltet sind.

Im Quellcode ist jedoch darauf zu achten das hier der INPUT_PULLUP entfällt da dieses durch den 120 kOhm Widerstand gelöst wurde.

 

Quellcode

Video

 

Beispiel 3 – Uhrzeit

In diesem Beispiel möchte ich die Uhrzeit auf dem Display wiedergeben. Leider verfügt das 4fach 7Segment LED Display „nur“ über einen Punkt und kein Doppelpunkt. Daher wird der Punkt als trenner genutzt.

Für dieses Beispiel wird neben einem Arduino UNO kompatiblen Microcontroller und dem TM1638 Shield auch ein DS3231 benötigt. Die RealTimeClock DS3231 habe ich im Tutorial Arduino Lektion 17: RealTimeClock RTC DS3231 bereits behandelt.

Aufbau

TM1638 mit RTC DS3231
TM1638 mit RTC DS3231
TM1638 mit RTC DS3231 - Schaltung
TM1638 mit RTC DS3231 – Schaltung

Quellcode

Als Trennzeichen für die Uhrzeit konnte ich hier nur (Bauartbedingt) einen Punkt statt ein Doppelpunkt nutzen.

Video

 

Verwandte Beiträge

Ersten Kommentar schreiben

Antworten

Deine E-Mail-Adresse wird nicht veröffentlicht.


*