Hallo liebe Z21pg-Bauer,
auch an der Displayfront hat sich etwas getan worüber ich hier berichten möchte.
Ich habe meinen NANO-Testkasten nun endlich zusammengebaut. Ein großes Akku-Fach teilt sich den Platz nun knirsch mit den RailCOM-Adapter und zwei Buchsen für Bananenstecker (hm, wenn ich jetzt so darüber nachdenke kann ich mich im Bezug auf meine Kindheit besser an die Stecker als an Bananen erinnern Schön, wenn unterm Tannenbaum eine vom Vater gebastelte Schalttafel mit BANANEN-Steckern lag - Danke Papa!
Also, fürs Display war nun kein Plarz mehr und es sollte ohnehin von oben lesbar sein, da die ganze Kiste in eine AuBox passen sollte. Das Resultat ist auf den Bildern zu sehen.
Da das von mir verwendete OLED-Display sehr klein ist (aber auch schön billig habe ich mich parallel mal nach etwas größerem umgeschaut. Das
2.42" inch 12864 OLED Display Module IIC I2C SPI Serial FOR C51 STM32
schien mir brauchbar - wenn auch etwas zu quadratisch (momentan wird nur die obere Hälfte genutzt oder die Schrift wird verzerrt). Nach dem das Teil schon etwas rumlag ging es ans Werk zuerst musste es vom voreingestellten SPI-Bus auf I2C-umgefrickelt werden.
Es muss ein Widerstand auf der Rückseite umplatziert und eine Lötbrücke hinzugefügt werden. Weiterhin musste ein zusätzlicher Reset PIN beschaltet werden. Dieser muss als erstes GND sein und dann auf VCC. Dafür verwende ich einen 10kOhm Widerstand und einen Folien-Kondensator mit 63nF von der Pollin-Platine. Es ist wichtig, das es sich dabei um einen Folien-Kondensator handelt, da ein anderer Typ wie z.b. ein Elko nicht funktioniert.
Über DC kann man die Adresse des Displays einstellen. An VSS/GND ergibt sich 60 (wie beim kleinen 0,96"-128x32-OLED). Ich habe es über den 10k vom Reset auf VCC/5V gezogen und somit auf Adresse 61. Das interpretiert meine Z21pg-Software als ein 128x64-Display und initialisiert es so automatisch.
[/url]
Nachdem sich mein "Großer" in seiner Schul-AG (ja, so was gibts noch) mit LCD-Displays am Arduino beschäftigt hat - schön mit I2C und automatischer Adresskennung - hat das dem "Alten" natürlich keine Ruhe gelassen Da die üblicherweise verwendete wire.h-Bibliothek zumindest im NANO nicht so recht funktionierte wurde die LCD-Bibliothek LiquidCrytal_I2C.cpp von wire.h an die schon verwendete OLED-Bilbliothek (AvrI2c.h) kurzerhand angepasst. Mehr oder weniger mit geschicktem Copy-and-Paste. Nun noch eine automatische Adresskennung hinein - ging so mit etwas gxxxgln - und die Texte an die verfügbaren Zeichen/Zeilen angepasst und schick ...
Es kann ein 16 Zeichen x 2 Zeilen-Display mit I2C-Adapter verwendet werden:
I2C with 1602 LCD Display Screen (blue) Board Module for Arduino
Meine Z21pg-Software erkennt das LCD an dem üblicherweise verwendeten Adressbereich (32 - 39). Beim MEGA können die OLED und LCD-Bibliotheken beide eingebunden werden. Die Erkennung erfolgt nun automatisch nach einem Start/Reset. Beim NANO hingegen muss aus Speichergründen die nichtverwendete im Quelltext auskommentiert werden, also OLED oder LCD.
Die Software liegt wo sie immer liegt (siehe Signatur)
Viele Grüße und einen schönen Advent
Uwe der jetzt weihnachtsbaumschlagen geht
PS:
Bei der ganzen Testerei ist mir aufgefallen, dass bei meiner MEGA-Originalvariante von der PG-Seite das Starten von MEGA und ESP8266
meist nicht gelingt. Das ist mir schon früher mal aufgefallen, wurde aber mit einem reflexartigen Griff zum Reset-Knopf behoben ...
Ich habe nun an 5V/GND/Reset noch einen Resetbaustein TL7757 / MC34064P-5G (C-Nr. 171336) "Quick and Dirty" auf dem MEGA
draufgelötet was Wunder bewirkt hat. Der Startvorgang läuft nun zuverlässig. Vieleicht taucht der Effekt ja bei jemandanderem auch noch auf und kann so gelöst werden.
@Andre: Ich tippe auf den Decoder - falls Du mal in der Nähe bist, mein Testkasten kann auch 9 mm