Inhaltsverzeichnis:

1602 LCD-Tastatur-Abschirmmodul mit I2C-Rucksack - Gunook
1602 LCD-Tastatur-Abschirmmodul mit I2C-Rucksack - Gunook

Video: 1602 LCD-Tastatur-Abschirmmodul mit I2C-Rucksack - Gunook

Video: 1602 LCD-Tastatur-Abschirmmodul mit I2C-Rucksack - Gunook
Video: Подключение дисплея 1602 lcd i2c. 1602 ардуино дисплей 2024, November
Anonim
1602 LCD-Tastatur-Abschirmmodul mit I2C-Rucksack
1602 LCD-Tastatur-Abschirmmodul mit I2C-Rucksack

Als Teil eines größeren Projekts wollte ich ein LCD-Display und eine Tastatur zur Navigation einiger einfacher Menüs haben. Ich werde viele der I / O-Ports des Arduino für andere Aufgaben verwenden, daher wollte ich eine I2C-Schnittstelle für das LCD. Also kaufte ich etwas Hardware, bestehend aus einem 1602 LCD Keypad Shield Modul von DFRobot und einem anonymen I2C seriellen Modul für LCDs. Ich möchte diese mit einem Arduino Nano verwenden. Dann stellte ich fest, dass es einige Herausforderungen gibt, diese Komponenten zusammenzuarbeiten – aber es ist möglich. Deshalb möchte ich meine Erfahrungen teilen und vielleicht anderen helfen.

Dieses Foto zeigt das funktionierende Steckbrett, das Meldungen auf dem LCD anzeigen und Tastendrücke identifizieren kann. Das LCD wird über die I2C-Schnittstelle gesteuert, einschließlich der LCD-Hintergrundbeleuchtung. Die Tastendrücke werden vom Arduino an Pin A0 empfangen (es kann jeder der analogen Pins sein, außer A4 und A5, die für die I2C-Schnittstelle gebunden sind).

Schritt 1: Teilebeschreibung - LCD-Tastatur-Abschirmmodul

Teilebeschreibung - LCD-Tastatur-Abschirmmodul
Teilebeschreibung - LCD-Tastatur-Abschirmmodul

Das LCD-Tastatur-Abschirmmodul besteht aus einem häufig verwendeten 1602-LCD, das auf einer Platine montiert ist, die die Tasten hält und eine Teilmenge der LCD-Anschlüsse aufnimmt und sie den Stiftleisten auf der Unterseite der Platine zur Verfügung stellt. Ich verstehe, dass dieses Board auf einem Arduino Uno oder ähnlichem montiert werden soll und das richtige Pin-Layout bietet, damit es in dieser Umgebung funktioniert. Ich habe dieses Modul bei Ebay von einem Händler in China gekauft. Die Header-Pins auf der unteren Seite (Tastatur) der Platine sind meistens beschriftet, die Pins auf der Oberseite, der LCD-Schnittstelle, sind jedoch nicht beschriftet. Die Pins auf dem LCD selbst sind jedoch beschriftet.

Schritt 2: Teilebeschreibung - I2C Serielles Modul

Teilebeschreibung - Serielles I2C-Modul
Teilebeschreibung - Serielles I2C-Modul

Das serielle Modul hat den üblichen 4-Pin-Header für I2C und einen Satz unbeschrifteter Header-Pins, die meines Wissens direkt in die Unterseite des LCD-Moduls gesteckt werden sollen. Durch das Studium der Beschriftungen auf dem LCD konnte ich die Funktionen der Pins am seriellen Modul identifizieren.

Dieses Modul basiert auf dem IC PCF8574T, der das I2C-Protokoll terminiert, hat 3 Pins zur Adresssteuerung (20 bis 27) und hat 8 digitale Ein-/Ausgangspins P0 bis P7. Laut Datenblatt des PCF8574T hat jeder I/O-Pin einen FET, um ihn für den LOW-Zustand auf Masse zu ziehen, und kann mindestens 20 mA absinken. Im High-Zustand hat es einen kurzzeitigen aktiven Pull-Up und dann einen anhaltenden Pull-Up-Strom von etwa 0,1 mA.

Bei diesem Modul werden alle digitalen I/O-Pins, außer P3, einfach auf Header-Pins geführt (rechts im Foto). Im Fall von P3 ist es mit der Basis eines Transistors verbunden (im Foto oben rechts direkt unter der Beschriftung "LED" sichtbar). Der Emitter dieses Transistors ist mit Vss (Masse) verbunden und der Kollektor ist mit dem Header-Pin 16 verbunden, wo er zur Steuerung der LCD-Hintergrundbeleuchtung verwendet werden kann. Aufgrund des Transistors ist der logische Zustand gegenüber dem in der Softwarebibliothek angenommenen umgekehrt. Das heißt, die LCD-Hintergrundbeleuchtung wird eingeschaltet, wenn der P3-Pin Low ist, und AUS, wenn der P3-Pin High ist.

Das Etikett auf dem Transistor sagt L6, was es nach meinen Recherchen wahrscheinlich zu einem MMBC1623L6 mit einer minimalen Stromverstärkung von 200 macht. Mit 0,1 mA Basisstrom sollte er in der Lage sein, einen LOW-Zustand an seinem Kollektor (Modul Pin 16) aufrechtzuerhalten. mit mindestens 20mA Kollektorstrom.

Darüber hinaus verfügt dieses Modul über ein 10K-Potentiometer, das zwischen +5 und Masse geschaltet ist, dessen variable Leitung auf Pin 3 (dritter von unten im Foto) herausgeführt ist. Bei direktem Anschluss an das LCD steuert dieser Poti den Kontrast des LCD. Diese Funktion wird jedoch von einem separaten, ähnlichen Poti auf der LCD-Abschirmung bereitgestellt, sodass dieser Poti auf dem seriellen Modul keine Funktion hat.

Ich konnte keine Verbindung zum INT-Pin des PCF8574T finden.

AKTUALISIERUNG 22. August 2019

Wie oben erwähnt, verfügt der PCF8574 über 3 Adresssteuerpins. Diese scheinen auf Pads auf dem Rucksackbrett herausgebracht zu werden, wo sie mit A0, A1 und A2 beschriftet sind. Sie sind auf dem Foto zu sehen. Ich habe dies nicht getestet, aber es scheint fast sicher zu sein, dass durch das Überbrücken eines oder mehrerer dieser Pins mit den benachbarten Pads die I2C-Adresse über den Bereich von 20 bis 27 gesteuert werden kann. Darüber hinaus gibt es ein zweites fast identisches Gerät, das PCF8574A mit identischer Funktionalität wie PCF8574, deckt aber den Adressbereich von 0x38 bis 0x3F ab.

Die Adresse, die Ihr Gerät tatsächlich verwendet, kann mit einem I2CScanner überprüft werden. Es gibt mehrere einfache I2C-Scanner aus verschiedenen Quellen. Dieser unter https://github.com/farmerkeith/I2CScanner identifiziert auch einige der gefundenen Geräte.

Schritt 3: Verbindungen

Anschlüsse
Anschlüsse

Vielen Dank an ChaitanyaM17, der das Fritzing-Diagramm zur Verfügung gestellt hat, das die unten beschriebenen Verbindungen darstellt.

Leistung:

Das LCD-Modul hat auf der Unterseite einen Pin mit der Bezeichnung "5.0V". Rechts daneben befinden sich zwei unbeschriftete Pins, die beide geschliffen sind.

Halten Sie das serielle Modul mit der I2C-Schnittstelle am linken Ende, am unteren Rand befinden sich 16 Pins. Der erste davon ist geerdet und der zweite ist +5v. Eine andere Möglichkeit besteht darin, die unteren beiden Pins der I2C-Schnittstelle für die Stromversorgung zu verwenden, aber ich fand es bequemer, die Pins wie oben beschrieben zu verwenden.

I2C-Schnittstelle. Auf dem seriellen Modul ist der oberste Pin SCL (Takt) und geht zum Arduino A5. Der zweite Pin ist SDA (Daten) und geht an den Arduino A4.

LCD-Druckschnittstelle. Es gibt 6 Verbindungen zwischen dem seriellen Modul und der LCD-Tastaturabschirmung, alle zwischen Pins ohne Beschriftung. Ich werde sie auf dem LCD-Modul identifizieren, indem ich von rechts nach links zähle, wobei der erste Pin als 1 ist. Es gibt 2 Blöcke von 8, also gehen sie von 1 bis 16. Ich identifiziere sie auf dem seriellen I2C-Modul, indem ich von links nach zähle Richtig, davon gibt es auch 16 Stück. Außerdem gebe ich jedem Draht ein Etikett, das der äquivalente Pin auf dem Arduino ist, der normalerweise mit dieser Funktion verbunden ist, im Falle einer direkten Verbindung ohne das serielle Modul.

Die 6 Datenverbindungen sind also:

Arduino-Äquivalent // Serieller Modulstift // LCD-Tastaturmodulstift

D4 // 11 // 5 D5 // 12 // 6 D6 // 13 // 7 D7 // 14 // 8 D8 // 4 // 9D9 // 6 // 10

LCD-Hintergrundbeleuchtungssteuerung: Dies verwendet eine weitere Verbindung:

Arduino-Äquivalent // Serieller Modulstift // LCD-Tastaturmodulstift

D10 //16 // 11

Tastaturschnittstelle: Dies verwendet ein einzelnes Kabel vom LCD-Modul-Pin auf der Unterseite mit der Bezeichnung "A0" zum Pin A0 auf dem Arduino. Das war zumindest ziemlich einfach!

Schritt 4: Machen Sie den RST-Schlüssel ähnlich wie die anderen 5 Schlüssel nutzbar

Der RST kann direkt an den RESTART-Eingang des Arduino Nano angeschlossen werden.

Wenn Sie jedoch möchten, dass die RST-Taste in der Software für andere Zwecke verwendet werden kann, können Sie dies durch Anschließen eines 15K-Widerstands zwischen dem RST-Pin und dem A0-Pin an der Unterseite der LCD-Bedienfeldabschirmung erreichen.

Dies funktioniert wie folgt: Es gibt einen 2K-Widerstand zwischen +5V und der rechten Taste. Dann eine Kette von zunehmend größeren Widerständen für jede der anderen Tasten (330R bis UP-Taste, 620R bis DOWN-Taste, 1K bis LINKS-Taste und 3K3 bis SELECT-Taste. Alle Tasten (einschließlich der RST-Taste) verbinden sich mit Bei Anschluss an einen 10 Bit A/D-Wandler (wie beim Arduino Nano A0) liefern sie ungefähr folgende Werte:

Rechts = 0; Hoch = 100; Unten = 260; Links = 410; Wählen Sie = 640.

Mit dem 15 k Widerstand gegen RST liefert er etwa 850.

Die Software verwendet Werte um die Mittelpunkte zwischen diesen Werten, um zu entscheiden, welche Taste gedrückt wurde.

Schritt 5: Software

Nützliche Software ist natürlich eine Übung für den Leser. Um Ihnen jedoch den Einstieg zu erleichtern, können Sie sich meine Testsoftware ansehen. Ich habe die NewLiquidCrystal-Bibliothek verwendet, die Unterstützung für die I2C-Schnittstelle enthält. Es hat alles funktioniert, sobald ich die Bibliotheken richtig installiert habe.

Der Hauptpunkt war, die Polarität der Befehle Backlight OFF und ON umzukehren (aufgrund des Transistors auf dem I2C-Modul, wie im Abschnitt Teilebeschreibung erläutert).

AKTUALISIERUNG 22. August 2019

Sollten Sie Probleme damit haben, dass das LCD-Display nicht funktioniert, überprüfen Sie bitte die I2C-Adresse Ihres seriellen Rucksacks mit einem I2C-Scanner. Ein geeigneter Scanner ist angeschlossen. Passen Sie dann ggf. den ersten Parameter in der Anweisung an

LiquidCrystal_I2C lcd(0x27, 2, 1, 0, 4, 5, 6, 7);

Schritt 6: Überprüfung und Diskussion

Wie Sie sehen können, habe ich die wichtigsten Funktionen zum Laufen gebracht.

Meine nächste Absicht ist, dies als Teil eines anderen Projekts in eine Projektbox zu legen. Nachdem ich diesen Weg eingeschlagen hatte, erfuhr ich jedoch, dass es noch eine andere Schwierigkeit gibt, mit der ich nicht gerechnet hatte.

Die Schwierigkeit besteht darin, dass dieses LCD-Tastaturmodul nicht für den Einbau in eine Box eingerichtet ist. Jede Art von Kiste. Die Tasten der 6 Tasten liegen deutlich unter der Ebene des LCD-Bildschirms, so dass bei einer Montage des Moduls in einer Box (zB im Deckel) mit der Oberseite der LCD-Platine bündig mit der Unterseite des Deckels die Oberseiten der Tasten befinden sich ca. 7 mm unterhalb der Deckeloberkante.

Mögliche Lösungen sind:

a) Lass es zu. Zugangslöcher in den Deckel bohren und mit einem Werkzeug (zB einer abgeschnittenen Stricknadel mit passendem Durchmesser) die Knöpfe drücken.

b) Entfernen Sie das LCD von der Modulplatine und führen Sie eine Operation an der Tastatur durch, damit die beiden Komponenten unabhängig voneinander am Deckel der Projektbox befestigt werden können (ich denke, es kann immer noch ein Problem mit zu kurzen Tasten geben)

c) Entfernen Sie die vorhandenen Tasten und ersetzen Sie sie durch höhere Tasten. Die neuen Tasten müssen ca. 13 mm hoch sein, damit sie durch den Deckel der Projektbox bedient werden können). Ersatztastenschalter sind in verschiedenen Höhen erhältlich, einschließlich 13 mm.

d) Entsorgen Sie das LCD-Tastaturschildmodul und verwenden Sie separate LCD- und Tastatureinheiten (dh beginnen Sie von vorne). Es gibt eine breite Palette von Tastatureinheiten, aber ich habe keine mit dem gleichen 6-Tasten-Layout wie bei diesem Modul gesehen (dh Auswählen, Links, Auf, Ab, Rechts, Neustart). Es ist vielleicht kein großes Problem, aber einer der Gründe, warum ich mit diesem Modul angefangen habe, war, dass ich dachte, dass dieses Tastenlayout das ist, was ich wollte.

Ich plane, mit Lösung c) oben zu gehen, und sehen, wie ich vorgehe.

Ein weiterer Informationsschnipsel, der von Interesse sein könnte:

Bei eingeschalteter Hintergrundbeleuchtung beträgt der Stromverbrauch dieses Projekts: Arduino Nano 21,5 ma; Serielles Modul 3,6 ma; LCD-Modul 27,5 mA; Insgesamt 52 mA.

Bei ausgeschalteter Hintergrundbeleuchtung beträgt der Stromverbrauch dieses Projekts: Arduino Nano 21,5 ma; Serielles Modul 4,6 ma; LCD-Modul 9,8 mA; Insgesamt 36 mA.

Empfohlen: