2016-05-17 8 views
0

В библиотеке adafruit предлагается управление ЖК-дисплеем с помощью python на RPI GPIO или над расширителем gpio MCP230XX i2C. Я хочу использовать ту же идею для PCF8574. Это все об этих вещах: http://www.sainsmart.com/sainsmart-iic-i2c-twi-serial-2004-20x4-lcd-module-shield-for-arduino-uno-mega-r3.htmlКак использовать рюкзак PCF8574 i2c LCD44780 с кодом python adafruit_LCD как расширитель gpio на малине pi

Библиотека Adafruit я использую для LCD это одна: https://github.com/adafruit/Adafruit_Python_CharLCD

В Adafruit_GPIO также содержится библиотека для GPIO расширителя PCF8574 i2C. https://github.com/adafruit/Adafruit_Python_GPIO

В примерах используется только MCP230XX, но не PCF8574.

После нескольких часов попыток, я не получаю эту вещь, чтобы нормально работать с кодом adafruit.

Обратите внимание, что я нашел рабочий код, но вместо этого хочу использовать код adafruit для лучшего обслуживания и поддержки. Рабочий код это один: https://github.com/goshkis/rpi/blob/master/lcddriver.py

Вот мой текущий код:

#!/usr/bin/env python 

import time 
import Adafruit_CharLCD as LCD 
import Adafruit_GPIO.PCF8574 as PCF 

# Define PCF pins connected to the LCD. 
PCF8574T_addr = 0x27 
lcd_rs  = 0 
lcd_rw  = 1 
lcd_en  = 2 
lcd_d4  = 4 
lcd_d5  = 5 
lcd_d6  = 6 
lcd_d7  = 7 
lcd_backlight = 3 

# Define LCD column and row size for 16x2 LCD. 
lcd_columns = 16 
lcd_rows = 2 

# Initialize i2C device using its I2C address. 
gpio = PCF.PCF8574(PCF8574T_addr, busnum=1) 

# Initialize the LCD 
lcd = LCD.Adafruit_CharLCD(lcd_rs, lcd_en, lcd_d4, lcd_d5, lcd_d6, lcd_d7, 
          lcd_columns, lcd_rows, lcd_backlight, gpio=gpio) 

# Clear display and show greeting, pause 1 sec 
lcd.clear() 
lcd.set_backlight(True) 
lcd.message("Gartenwasser startet...") 
time.sleep(1) 

Вы можете обнаружить, что ошибка я сделать?

ответ

0

Вилок из этого хранилища Adafruit на GitHub показывает, как это работает: https://github.com/sylvandb/Adafruit_Python_CharLCD

рабочего пример:

import PCF_CharLCD as LCD 
lcd = LCD.PCF_CharLCD(0, address=0x27, busnum=1, cols=16, lines=2) 
+0

Параметр «линия» является «строка» в вилке, а «линия» в оригинальный Adafruit CharLCD, который я использую. Если вы хотите использовать CharLCD из вилки, вместо этого используйте «rows». –