Display/ADC-Board für Raspberry Pi

LCD-Display/ ADC-Board für Raspberry Pi

Der Raspberry Pi bietet mit seinen GPIO-Pins eine Vielzahl an Möglichkeiten Sensoren, Aktoren usw. anzuschliessen. Damit bieten sich diese an, ein LCD Display damit zu betrieben. Der Displaycontroller HD44780 ist dabei wohl einer der sehr häufig verwendet wird. Damit lassen sich Displays mit unterschiedlicher Zeilenanzahl und Zeichenanzahl pro Zeile betreiben. Was dem Raspberry Pi allerdings neben seinen vielseitig verwendbaren GPIO’s fehlt ist ein Analog-Digital Wandler (ADC). Also die Möglichkeit auch analoge Eingangssignale verarbeiten zu können. Hier gibt es mit dem MCP3008 Chip der Firma Microchip einen  weit verbreiteten Vertreter, welcher sich  einfach über den SPI-Port und Python ansteuern läßt.

Da sich Display und ADC für unterschiedliche Anwendungen und Projekte verwenden lassen habe ich ein Board erstellt, welches sich einfach über ein 40-poliges Flachbandkabel mit dem Raspberry verbinden läßt. Das Board besitzt zusätzlich noch über 8 Leds und 3 Taster welche allesamt separat angesteuert werden können.

Eigenschaften LCD-Display/ADC-Board

  • 16×2 Zeichen LCD Display (HD44780 Controller)
  • 10Bit/8Kanal ADC (MCP 3008 Microchip)
  • 8 LED
  • 3 Taster (mit pull down Widerstand)
  • nicht benötigte GPIO-Pins über Pinleiste herausgeführt
  • Leds und ADC Leitungen über Jumper aktivierbar (dadurch können die GPIO-Pins auch anders verwendet werden)
  • eigene Pinleiste für ADC-Eingänge
  • Python Softwarebeispiele für Display und ADC vorhanden
  • Schaltplan und Board mit Eagle erstellt
LCD-Display/ADC-Board

LCD-Display/ADC-Board

LCD-Display

Datenblatt: HD44780 Display Controller

Zur Ansteuerung des Displays werden insgesamt 6 GPIO-Pins benötigt. Da das Display auf dem Board im 4 Bit Modus betrieben wird, werden so 4 Datenleitungen eingespart im Vergleich zum 8 Bit Modus. Nachteil an dieser Variante ist, das die Kommunikation etwas langsamer abläuft, da die 8Bit Daten in 2 4-Bit Blöcken übertragen werden müssen. Somit werden 4 GPIO-Pins für die Datenleitungen benötigt (DB4-DB7) und 2 Leitungen dienen als Steuerleitung (RS, E). Die RS Leitung dient zur Auswahl ob Daten oder ein Befehl geschickt werden soll. Die E Leitung dient zur Erzeugung des Taktsignales für das Display. Die R/W (read/write) Leitung ist fix auf der Platine mit Masse verbunden, da wir nur Daten und Befehle zum Display senden wollen und keine Daten davon lesen werden.

Über VDD wird das Display mit Spannung (5V) versorgt. VSS wird auf Masse gelegt. Über V0 kann über den Poti R1 der Kontrast des Displays eingestellt werden.

Für die Hintergrundbeleuchtung wird der Anschluss ‚A‘ mit 5 Volt verbunden und ‚K‘ mit Masse.

Für die Datenleitungen kann ein Pegelwandler zwischen den 3,3V der GPIO-Pins und der Spannung des Displays 5V entfallen, da die 3,3V vom Display bereits bereits als digitale ‚1‘ interpretiert werden.

 

Schematic LCD-Display

 

Analog-Digital Converter

Datenblatt: MCP3008

Der Analog/Digital Converter (ADC) ist über die SPI-Schnittstelle mit dem Raspberry verbunden und benötigt damit insgesamt 4 GPIO-Leitungen. Diese Leitungen sind gleich wie bei den LEDs über einen Jumper angeschlossen. Damit ist es möglich die GPIOs auch für einen anderen Zweck zu verwenden, sollte der ADC nicht benötigt werden.

Der ADC hat eine Auflösung von 10 Bit und wird mit einer Referenzspannung von 3,3 V versorgt.

Durch die 10 Bit ergibt sich insgesamt 1024 Spannungswerten zwischen 0 – 3,3V.

2^10 = 1024 (Wertebereich 0….1023)

Auflösung Bit: 3,3V/1023 = 3,22mV

 

Schematic ADC

Leds

Das Board besitzt insgesamt 8 rote SMD-Leds welche über einen Vorwiderstand (zur Strombegrenzung) und einen Jumper an die GPIO-Pins angeschlossen sind. Die Jumper dienen dazu, falls die GPIO-Pins der LEDs für einen anderen Zweck verwendet werden sollen, die LEDs zu ‚deaktivieren‘. Somit können diese GPIO-Pins auch als Eingang verwendet werden. Im Bild rechts ist der Teil des Stromlaufplanes zu sehen, welcher den LED-Teil darstellt. Die LEDs haben eine Durchflußspannung von 1,85V bei 3mA Strom. Dadurch ergibt sich für die Vorwiderstände R5-R12 ein Wert von 470 Ohm.

R = (3,3V – 1,85V) / 3mA = 483Ohm (470 Ohm gewählt)

Ist der GPIO-Ping ‚High‘ so gibt er eine Spannung von 3,3V aus.

Schematic Leds

Taster

Neben den oben beschriebenen LEDs zur Ausgabe besitzt das Board zusätzlich noch 3 Taster welche zum Ausführen von div. Aktionen verwendet werden können. Die Taster sind an die GPIO-Pins 5,6,12 über einen Pull-Down Widerstand (100kOhm) angeschlossen. Die Widerständen dienen dazu, den Pegel des jeweiligen GPIO-Pins aus einen definierten Pegel (Low, 0Volt) zu setzen. Wird der Taster betätigt, so wird der GPIO-Pin auf „High“ Pegel (3,3V) gezogen. Das Bild rechts zeigt den Teil des Stromlaufplanes.

Schematic Taster

Anschlüsse

Der 40 polige Anschluß SV1 auf der linken Seite der Platine dient dazu, über ein Flachbandkabel die GPIO-Pins des Raspberry Pi anzuschliessen.

Alle verbleibenden nicht verwendeten Pins des Raspberry sind über SV2 zugänglich. (die GPIOs der Leds sind hier ebenfalls herausgeführt).

Über SV3 werden die 8 Kanäle des ADC sowie jeweils eine Masseleitung pro Kanal herausgeführt.

Über einfache Kabel (Male-Female Anschlüsse) können die einzelnen Pins damit abgegriffen und mit einem Experimentierboard verbunden werden.

Anschlüsse

 

 

Software

Stromlaufplan: LCD-Display/ADC-Board Schematic

Das Board kann ganz einfach über die Programmiersprache Python angesprochen werden.

Sourcecode: display-adc-board_pythonSource_V1.0

Lade den Source auf deinen Raspberry und entpacke das Zip-File. Darin befinden sich insgesamt 3 Python Scripte.

hd44780.py: beinhaltet die Funktionen zur Ansteuerung des Displays.

mcp3008.py: beinhaltet die Funktionen zur Ansteuerung des ADC.

boardtest.py: ist ein kleines Testscript mit dem alle Komponenten des Board getestet werden können.

 

Da ich immer wieder mal Anfragen bekomme ob das LCD-Display/ADC-Board auch zu kaufen ist, bitte ich dich bei Interesse mir einfach eine Email zu schreiben.  Das Board kann inklusive Bauteile (nicht bestückt) über mich bezogen werden. (natürlich mit Rechnung). Preis € 25.

Solltest Du Fragen zum Board oder der Software haben, so hinterlasse mir einfach einen Kommentar zu diesem Beitrag oder schicke mir eine EMail auf oben genannten Adresse.

 

 

Recent Posts

Leave a Comment