in diesem Thread geht es um Erweiterungen rund um den NIBObee Roboter.
Ich mache mal den Anfang und stelle ein I2C LCD Modul vor. Das Display war eigentlich für ein anderes Projekt bestimmt, ließ sich aber recht einfach für den NIBbee anpassen.
Das Display ist ein EA DOGM163-A 3x16 Zeichen Display. Angesteuert kann es über SPI oder im 4-Bit oder 8-Bit Parallelmode. Durch einen I2C Portexpander Chip PCF8574 kann es auch im 4-Bit Mode über I2C angesteuert werden. Am NIBObee liegt am Port X4 die I2C Schnittstelle und 5V Spannungsversorgung an.
wie versprochen (mit einiger Verspätung) Schaltplan und Sourcecode für das I2C LCD.
Schaltung:
Die Schaltung ist etwas komplexer,alssie sein müßte. Ich wollte mir aber bei dem Display alle Möglcihkeiten offenhalten, deshalb sind Anschlüsse für 4-Bit, SPI und I2C Mode vorhanden. Zudem gibt es noch ein paar Jumper um zwischen den verschiedenen Modi umschalten zu können. Es kann natürlich auch ein anderes LCD Modul verwendet werden. Die Initialisierung müßte dann angepasst werden.
Software:
Die Software besteht aus den I2C Routinen (hier wurden einfach die I2C Routinen vom Nibo2 benutzt) und den LCD Funktionen (Basierend auf der Arduino ChrystalDisplay Lib). Das ganze wurde als extra Lib gepackt und die makefiles entsprechend angepasst. Das Testbeispiel beruht auf dem NIBObee SelbstTest, erweitert um die LCD Ausgabe der Linien und Odometrie Sensoren.
Edit:
Achtung!!! Aus gegebenen Anlass eine Warnung für den Nachbau. Da das I2C LCD Modul ursprünglich für ein anderes Projekt vorgesehen war, stimmt die I2C Steckerbelegung nicht mit dem NIBObee Steckverbinder überein. VCC und GND sind vertauscht! Attachment wurde aktualisiert.
hiere zunächst mal die Stückliste als Reichelt Warenkorb.
Der PCF8591 von Conrad ist ein I2C A/D Wandler. Der ist hier nicht zu gebrauchen.
Zu erwähnen wäre noch, dass 2 x 10kOhm Widerstände als I2C PullUps notwendig sind. Die habe ich auf die NIBObee Platine gepackt. In der Stückliste sind jeweils 2 SMD und 2 Kohleschicht Widerstände mit dabei.
Leider gibt es bei Reichelt zur Zeit das von mir verwendete DOGM163W nicht, deshalb steht das DOGM162W in der Stückliste. Dieses hat nur 2x16 Zeichen. Bei Verwendung eines anderen Displays ist u.U. ein anderes Backlight und damit evtl andere Vorwiderstände nötig. Einige DOGM sind z.B. ohne Backlight gar nicht verwendbar. Im Zweifelsfall hilft ein Blick ins Datenblatt.
Bei Verwendung eines anderen LCDs als das hier verwendete DOGM ist zudem ein Kontrastregler (5-10kOhm Trimmer) notwendig.
Ein ähnlicher Schaltplan ohne SPI und Jumper wurde von mir schon mal für den Asuro verwendet (allerdings mit etwas anderer Belegung der Steuerleitungen).
2 Jumper müssen für den I2C Mode gesteckt werden, CSB auf GND und PSB auf 5V.
Der 3. Jumper ist für das Backlight (an/aus/Software). Ich sehe gerade, der fehlt komplett im Schaltplan.
Noch eine letzte Bitte - Wie bzw wo hast du die I2C-Pullup-Widerstände angebracht? Könntest du ev. ein Foto posten?
Jetzt muss ich mir nur noch ein PCF8574P organisieren, Conrad hat die leider nicht im Sortiment und bei Reichelt brauche ich 150€, sonst versenden die nicht nach Österreich.
Lesezeichen