Allgemein | Bücher | OpenStreetMap | PC Magazin | Softwaretipps | APN-Einstellungen der wichtigsten Mobilfunkanbieter | E-Mail-Servernamen | Raspberry Pi | Unsere Partner | Warum Handbücher? | Über uns / Impressum / Datenschutz

Pollin LCD-I2C Modul am Raspberry Pi

Pinbelegung des Portexpanders PCF8574

Pinbelegung des Portexpanders PCF8574

Der Elektronikversand Pollin bietet ein preisgünstiges LCD-Modul mit I²C-Steuerung an. In Internetforen findet man diverse Fragen, dieses Modul mit dem Raspberry Pi zu betreiben. Die Antworten sind spärlich oder sehr umständlich.

Mein Artikel auf PCWelt.de zeigt eine einfache Lösung, dieses Modul mit Python am Raspberry Pi anzusteuern. Leider fehlt dort zum Verständnis das Anschlusschema des verwendeten Portexpanders PCF8574.

Der Quelltext des Programms ist bei PCWelt ebenfalls nur schwach zu erkennen und – da als Grafik dargestellt – auch nicht kopierbar.

Python-Script zur Steuerung des Pollin LCD-I2C Modul am Raspberry Pi:

#!/usr/bin/python
# -*- coding: utf-8 -*-
import time, smbus, subprocess
bus = smbus.SMBus(1)

DEVICE     = 0x27 
LCD_WIDTH  = 16
LCD_LINE_1 = 0x80
LCD_LINE_2 = 0xC0
LCD_CHR = 1
LCD_CMD = 0
LCD_RS  = 0x10
LCD_E   = 0x40
E_PULSE = 0.00005
E_DELAY = 0.00005
pause = 2

def lcd_byte(bits, mode):
  bus.write_byte(DEVICE,LCD_RS*mode+(bits>>4)+LCD_E)
  time.sleep(E_PULSE)
  bus.write_byte(DEVICE,LCD_RS*mode)
  time.sleep(E_DELAY)
  bus.write_byte(DEVICE,LCD_RS*mode+(bits&0x0F)+LCD_E)
  time.sleep(E_PULSE)
  bus.write_byte(DEVICE,LCD_RS*mode)
  time.sleep(E_DELAY)

def lcd_string(message):
  message = message.ljust(LCD_WIDTH," ")
  for i in range(LCD_WIDTH):
    lcd_byte(ord(message[i]),LCD_CHR)

def lcd_anzeige(z1, z2):
  lcd_byte(LCD_LINE_1, LCD_CMD)
  lcd_string(z1)
  lcd_byte(LCD_LINE_2, LCD_CMD)
  lcd_string(z2)

LCD_INIT = [0x33, 0x32, 0x28, 0x0C, 0x06, 0x01]
for i in LCD_INIT:
  lcd_byte(i,LCD_CMD)

while True:
  zeile1 = time.asctime()
  zeile2 = "IP:" + subprocess.check_output(["hostname","-I"])
  lcd_anzeige(zeile1, zeile2)
  time.sleep(pause)



 

Allgemein | Bücher | OpenStreetMap | PC Magazin | Softwaretipps | APN-Einstellungen der wichtigsten Mobilfunkanbieter | E-Mail-Servernamen | Raspberry Pi | Unsere Partner | Warum Handbücher? | Über uns / Impressum / Datenschutz