8 Charater LED anzeigen an einer ESP32 mit TM1638 Led&Buttons
Beschreibung:
Der folgende Code bringt die erste und letzte LED einer TM1638 LED&KEY anzeige zum leuchen
Der Arduino/ESP32 Code dient als Code Beispiel zum Betrieb der LED-Platine an einer ESP32
Beispiel Anwendung:
Betrieb einer Button-Platine / Modul an einem ESP32 nodeMCU Board
Bauteile:
Board: ESP32 nodeMCU DevBoard/DevKit
LED and Key: LED&KEY TM1638 Modul
Arduino IDE, Arduino
https://amzn.to/2wOkFBK 8-Bit LED + 8-Bit Digital Rohr +8- Bit Key TM1638 Modul + Kabel (5,72 Euro)
Laut Anleitung des TM1638 und ESP32 nodeMCU
Anschluss PINS ESP32 -> TM1638
G4->STB
G16->CLK
G17->DIO
GND->GND
3V3->VSS
Arduino IDE Code
Diese Code einfach in die Arduino IDE eingeben, den Code kompilieren und auf die ESP32 nodeMCU übertagen
#include "wiring_shift_mod.h"
#define CLOCK_TYPE CLOCK_INVERT #define CLOCK_DELAY_US 1
const int strobe_pin = 4; const int clock_pin = 16; const int data_pin = 17;
void setup() { pinMode(strobe_pin, OUTPUT); pinMode(clock_pin, OUTPUT); pinMode(data_pin, OUTPUT);
sendCommand(0x8f); // activate reset(); }
void loop() { sendCommand(0x44); // set single address
digitalWrite(strobe_pin, LOW); shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, 0xc0); // 1st digit shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, 0xff); digitalWrite(strobe_pin, HIGH);
digitalWrite(strobe_pin, LOW); shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, 0xc5); // 3rd LED shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, 0x01); digitalWrite(strobe_pin, HIGH);
digitalWrite(strobe_pin, LOW); shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, 0xcb); // 3rd LED shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, 0x01); digitalWrite(strobe_pin, HIGH);
digitalWrite(strobe_pin, LOW); shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, 0xce); // last digit shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, 0xff); digitalWrite(strobe_pin, HIGH); }
void sendCommand(uint8_t value) { digitalWrite(strobe_pin, LOW); shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, value); digitalWrite(strobe_pin, HIGH); }
void reset() { sendCommand(0x40); // set auto increment mode digitalWrite(strobe_pin, LOW); shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, 0xc0); // set starting address to 0 for(uint8_t i = 0; i < 16; i++) { shiftOutMod(data_pin, clock_pin, LSBFIRST, CLOCK_TYPE, CLOCK_DELAY_US, 0x00); } digitalWrite(strobe_pin, HIGH); } |
Link to GitHub MartyMacGyver
TM1638-demos-and-examples
Arduino IDE
Erweitern der Arduino Library
Damit die Zeile
#include "wiring_shift_mod.h"
Gelesen werden kann, muss man die Arduino Librarys
erweitern.
hierzu geht man bei Arduino IDE Programm auf ->Menü->File->Preferences
Und öffnet den Pfad zu Sketchbook location
Arduino Library erweitern
Die Library-Dateien sind im Anhang
Wiring_shift_mod.cpp und wiring_shift_mod.h
Im Verzeichnis %Documents%\Arduino\libraries
Bezugsquellen:
https://amzn.to/3cfCZCA 3 Stück von AZDelivery 3 x ESP32 NodeMCU Module WLAN WiFi Development Board mit CP2102 (Nachfolgermodell zum ESP8266) 24,99 Euro
https://amzn.to/2wGkyYR 1x Stück: AZDelivery ESP32 NodeMCU Module WLAN WiFi Development Board mit CP2102 für 9,79 Euro
https://amzn.to/2KaC1eQ AZDelivery HD44780 2004 LCD Display grün Bundle 4x20 Zeichen mit I2C Schnittstelle für Arduino
https://amzn.to/2wKzzJc AZDelivery HD44780 2004 LCD Display Bundle 4x20 Zeichen mit I2C Schnittstelle für Arduino