» Elektronik »Bank für das Studium von HD44780 auf niedrigem Niveau

Low Level HD44780 Studienbank



Sie haben im Programm für geschrieben Arduino so etwas wie:

lcd.print ("Hallo Welt!")


Das Board führte den Befehl gehorsam aus und der Text erschien auf dem Display. Aber wie hat ein Gerät etwas „gesagt“ und das zweite „gehört“ und „verstanden“? Dies ist so, als würde man den Künstler bitten, ein Porträt zu machen, aber nicht zu sehen, wie er daran arbeitet. Der Autor von Instructsbles unter dem Spitznamen Indoorgeek hat einen Stand entwickelt, mit dem Sie sich in den Schuhen des „lebenden Arduino“ fühlen und den HD44780 auf niedrigem Niveau steuern können. In einem der Wettbewerbe dies hausgemacht gewann den ersten Preis.

Es braucht ein kleines Detail: jedes Modul (LCD, VLI oder PMOLED) am HD44780-Controller oder kompatibel, acht Kippschalter, eine nicht verriegelnde Taste, ein Schiebeschalter, ein variabler 1-kΩ-Widerstand, eine Platine mit einer Micro-USB-Buchse und ein Gehäuse.








Von dem, was auf dem Foto nicht gezeigt ist, benötigen wir: einen Widerstand von 10 kOhm und einen Kondensator von 100 μF und mindestens 6,3 V.

Indoorgeek selbst nahm ein Modul des gebräuchlichsten Typs: LCD, 16 Zeichen pro Zeile, zwei Zeilen. Die übrigen Module haben jedoch das gleiche Steuerprinzip. Nur die Pinbelegung kann geringfügig abweichen. Seien Sie also nicht zu faul, um in das Datenblatt zu schauen.

In allen Fällen entspricht die Verbindung zum gemeinsamen Draht der logischen Null, und die Verbindung zum +5 Volt-Leistungsbus entspricht der Einheit.

Die Pins 1 und 2 dienen zur Stromversorgung des Moduls. Der erste ist immer mit einem gemeinsamen Kabel verbunden, der zweite immer mit einem Leistungsbus.

Pin 3 dient zum Einstellen des Kontrasts. Wenn eine Spannung von 0 bis 5 Volt relativ zum gemeinsamen Draht angelegt wird, ändert sich der Kontrast von Null auf Maximum.

Mit Pin 4 können Sie zwischen einem Datenregister und einem Befehlsregister wählen. Wir geben eine logische Null - das Befehlsregister (mit anderen Worten Befehle) wird ausgewählt, die Einheit ist das Datenregister.

Anweisungen können beispielsweise die folgenden sein: Initialisieren Sie den Controller, löschen Sie den Bildschirm usw. Die Daten enthalten Zeichen, die Sie auf der Anzeige anzeigen.

Sie können im Gegenteil Daten aus einem Register lesen. Dazu müssen Sie Pin 5 mit einem hohen Pegel versehen, und das Display wechselt in den Informationsausgabemodus zurück zu Ihrem Mikrocontroller. Um erneut Daten von Ihrem Mikrocontroller auf den Display-Controller zu schreiben, müssen Sie Low Level 5 an Pin 5 senden. Sehr oft wird der Lesemodus überhaupt nicht verwendet, wie zum Beispiel bei diesem hausgemachten Produkt.

Gemäß den Pins 7 bis 14 kann die Anzeige Befehle und Daten in 8-Bit-Codierung austauschen. Der niedrigste Pegel entspricht Pin 7, der höchste - 14.

Pin 6 wird zum Ansteuern benötigt.Sie setzen langsam Daten an den Pins 7 bis 14, aber während Pin 6 eine logische Null ist, reagiert das Modul überhaupt nicht darauf. Ohne den Zustand der Pins 7 bis 14 zu ändern, senden Sie dann einen Kurzzeitimpuls mit hohem Pegel an Pin 7 - und die Daten werden übertragen.

Schlussfolgerungen 15 und 16 - Ernährung der Hintergrundbeleuchtung, falls vorhanden. 15 - plus, 16 - minus.

Das für indorgeek erhältliche Gehäuse hatte eine Größe von 200 x 150 x 40 Millimetern. Dieser Fall wurde von einem anderen, zerlegten hausgemachten Fall genommen, und es gab bereits Löcher darin. Der Meister hat sie im neuen Design maximal genutzt, um so wenig wie möglich zusätzliche zu tun.



Er stellte acht Kippschalter zum Ändern des Zustands der Daten- / Befehlsbusleitungen ein, einen Schalter zum Auswählen zwischen Registern (siehe oben), eine Taste zum Ansteuern, einen variablen Widerstand zum kontinuierlichen Einstellen des Kontrasts.

Die Riser-Platine mit einer Micro-USB-Buchse verfügt über praktische Stifte, mit denen sich Kabel einfach anschließen lassen. Hier werden nur zwei davon benötigt: +5 V und ein gemeinsamer Draht. Wenn Sie keine solche Platine haben und eine von irgendwo gelötete Micro-USB-Buchse zum Löten unpraktisch erscheint, können Sie einfach ein Kabel mit einem USB-Anschluss nehmen. In jedem Fall wiederholen wir nach dem Master und löten ein solches Schema:



Die Kontakte der Kippschalter, die der oberen Position entsprechen, sind indorgeek miteinander verbunden und mit einem Plus versehen. Er tat dasselbe mit den Kontakten der Kippschalter, die der unteren Position entsprachen, nur gab er ihnen ein Minus. Er verband die beweglichen Kontakte der Kippschalter nicht miteinander, sondern mit den Schlussfolgerungen der Datenbus- / Modulbefehle entsprechend dem „Gewicht“ beider (D0 - Pin 7 - niedrige Ordnung, D7 - Pin 14 - hoch). Wenn die Meister in ihrer Kindheit keine wütenden Pull-up-Widerstände gebissen hätten, könnte er einfachere Kippschalter verwenden - nicht schalten, sondern normalerweise offen.

Aber die gleichen Widerstände, aber in den Unterdrückungskreisen des Kontaktsprungs, war er nie beleidigt. Hier wird diese Schaltung benötigt, damit der Display-Controller nicht mehrere Male die Strobe-Taste drückt. Andere Steuerelemente erfordern keine Ratterunterdrückung, da sich die Daten auf den verbleibenden Zeilen beliebig oft ändern können, solange die Strobe-Impulse nicht empfangen werden. Die Hauptsache ist, die Kippschalter und den Schalter nicht mit gedrückter Taste zu berühren. Bei einem Widerstand von 10 kOhm zog der Master Pin 6 an den gemeinsamen Draht und mit der Taste an den Plusbus. Da der Widerstand der Taste beim Drücken viel geringer ist, „schleppt“ sie sich. Beim Loslassen wird sein Widerstand nahezu unendlich und der Widerstand „zieht“ ihn bereits. Ein 100-uF-Kondensator (im Diagramm nicht dargestellt), der durch ein Plus mit dem Plus-Bus und durch ein Minus mit dem Widerstand und dem sechsten Ausgang des Displays verbunden ist, unterdrückt Rattern. Es ist natürlich besser, das Rattern mit einem Schalter und einem RS-Trigger zu unterdrücken.

Am Schiebeschalter werden die Ausgänge der Festkontakte auf die gleiche Weise wie bei den Kippschaltern und dem beweglichen Schalter mit dem Ausgang des Moduls 6 verbunden. Auch hier zeigte der Entwickler erneut Angst vor Pull-up-Widerständen. Dieser Schalter wird benötigt, um zwischen den Übertragungsmodi von Befehlen (Null) und Daten (Einheit) zu wählen.

Indoorgeek verband den Ausgang des variablen Widerstands entsprechend dem minimalen Kontrast zum gemeinsamen Kabel, das Gegenteil zum Plus-Bus und die Mitte (Motor) mit dem dritten Ausgang des Moduls.

Schlussfolgerungen 1, 5 und 16 (jeweils minus Strom, Schreiben / Lesen und minus Hintergrundbeleuchtung), wenn der Master an ein gemeinsames Kabel angeschlossen ist, wird der Aufnahmemodus ständig ausgewählt. Schlussfolgerungen 2 und 15 (plus Strom und plus Hintergrundbeleuchtung) schloss er an den Fünf-Volt-Bus an. Ein Strombegrenzungswiderstand durch die LEDs der Hintergrundbeleuchtung ist im Anzeigemodul integriert.

Wenn Sie das alles gesammelt haben, jetzt vor Ihnen - so etwas:



Das Indoorgeek auf der Vorderseite wurde so gestaltet, dass Sie dasselbe tun können:



Sie können die HD44780-Controller-Befehle und deren Steuerung lernen Datenblatt. Sie können auch vorgefertigte Skriptbeispiele für sehen Simulator. Für den Anfang werden wir die Schritte hinter Indoorgeek wiederholen, um HALLO!

Schalten Sie das Gerät ein. Die Hintergrundbeleuchtung leuchtet auf. Stellen Sie den Schiebeschalter auf die Position, die der logischen Null entspricht, damit die Anzeige in den Modus zum Empfangen von Befehlen wechselt. Stellen Sie mit den Tumblern die Binärzahl 00001111 auf dem Befehls- / Datenbus ein und drücken Sie kurz die Strobe-Taste. Dieser Befehl bedeutet: Schalten Sie das Display ein, machen Sie den Cursor sichtbar und blinken Sie, was passieren wird. Auf die gleiche Weise geben wir den Befehl 00110000 aus. Dies bedeutet: Daten im 8-Bit-Format empfangen, erste Zeile und Schriftart 5 x 8 Pixel auswählen. Visuell wird nichts passieren, aber irgendwo innerhalb des Display-Controllers werden die notwendigen Schalter auftreten. Sie können Daten übertragen. Wir verschieben den Schiebeschalter in die Position, die der logischen Einheit entspricht. Jetzt ist das Anzeigemodul bereit, sie zu akzeptieren. Stellen Sie den ASCII-Code des Buchstabens H ein, d. H. 01001000, schalten Sie die Kippschalter am Bus um und drücken Sie die Strobe-Taste. Der entsprechende Buchstabe wird auf dem Bildschirm angezeigt und der Cursor bewegt sich um eine Position nach rechts. In ähnlicher Weise übergeben wir die Buchstaben E, L, L, O und ein Ausrufezeichen: 01000101, 01001100, 01001100, 01001111, 00100001. Wenn Sie dasselbe getan haben, spielt es keine Rolle, auf dem gerade montierten Stand oder im Simulator die HELLO-Inschrift zu sehen ! So:



So haben Sie verstanden, wie viel Arduino tut, um nur wenige Zeichen anzuzeigen. Und es gibt Teams, die komplexere Aktionen ausführen, die Sie beherrschen und interessante Effekte erzielen, nicht standardmäßige Charaktere definieren können ...

Ihr Ausflug in die "Küche" der Arduino-Bibliothek LiquidCrystal fängt gerade erst an und macht Spaß!
7.5
7.5
7.5

Kommentar hinzufügen

    • lächelnlächeltxaxaokweiß nichtYahoonea
      ChefKratzerDummkopfjaja-jaaggressivGeheimnis
      Entschuldigungtanzendance2Tanz3VerzeihungHilfeGetränke
      hör aufFreundegutgut gutpfeifenOhnmachtZunge
      RauchklatschenCrayerklärenspöttischdon-t_mentionherunterladen
      Hitzeärgerlichlach1mdaTreffenMoskingnegativ
      not_iPopcornbestrafenlesenerschreckenAngstSuche
      verspottendankedasto_clueumnikakutstimme zu
      schlechtbeeeblack_eyeblum3errötenprahlenLangeweile
      zensiertAngenehmheitsecret2drohenSiegyusun_bespectacled
      shokrespektlolvorgezogenWillkommenKrutoyya_za
      ya_dobryiHelferne_huliganne_othodiFludVerbotschließen

Wir empfehlen Ihnen zu lesen:

Gib es für das Smartphone ...