I'm trying that ...
-
Hello everyone,I'm trying this test ... i2cset isn't compiled using "mode i" option ... i2c block ...
# i2cdetect -y 0
works fine and give the correct i2c bus adress of the LCD -> 0x27
so i've done# i2cset -y 0 0x27 0x08 0x08 turn on the backlight # i2cset -y 0 0x27 0x08 0x00 turn off the backlight
but cant't write a block i2c command with the mode i option ...
I've got an error.
-
@Gwena56 Can you copy and paste the error message it gives? Let's see if we can debug it.
-
... i2cset -y 0 0x27 0x00 0x17 0x06 0x4F 0x5B 0x7F i
I've tried this ... but nothing done.i've found a Python Lib name Periphery but no result yet, just the backlight
The Lib at Githubi'm use this part only : i2c.py
it is very easy with Arduino or Raspi ... some lib missing ...
Some code
#!/usr/bin/python
import i2c
import pyOmega #routines uSec et mSec attente
#Open i2c-0 controller
chip = i2c.I2C("/dev/i2c-0")
chip.transfer(0x27, [i2c.I2C.Message([0x20,0x08])]) #Turn ON retro-Eclairage
sleep(5)
chip.transfer(0x27, [i2c.I2C.Message([0x20,0x00])]) #Turn OFF retro-Eclairage
chip.close()But nothing more ....
-
@Gwena56 So just to make sure I understand you correctly. You are able to turn on and off the backlight of the LED screen, but you are unable to send any other command to it. Is that correct?
Does it give out any error messages when you try to run the commands? Or is it just that nothing happens after you have run the commands?
-
Hello
With i2cset it replies incorrect mode i can use mode b or w ... But i think it's normal ... i've seen this option several times but not very often .i'm using this process to initialize LCD crystal 2x16 using a pcf8594 I2C 8bit expander port : Tech Docs
So i've tried orther method using python without smbus import...Peripheri.i2c do that.
I can only turn on/off backlight ...
Thanks for helping .... Oméga it's cool !!¡
a bit of incomplete code ...
#!/usr/bin/python
import i2c
import pyOmega
pyOmega.mSec(100)
#Open i2c-0 controller
chip = i2c.I2C("/dev/i2c-0")
##LCD PROC
def lcd_reset():
chip.transfer(0x27, [i2c.I2C.Message([0xFF])])
pyOmega.mSec(20)
chip.transfer(0x27, [i2c.I2C.Message([0x83])])
chip.transfer(0x27, [i2c.I2C.Message([0x03])])
pyOmega.mSec(15)
chip.transfer(0x27, [i2c.I2C.Message([0x83])])
chip.transfer(0x27, [i2c.I2C.Message([0x03])])
pyOmega.mSec(5)
chip.transfer(0x27, [i2c.I2C.Message([0x83])])
chip.transfer(0x27, [i2c.I2C.Message([0x03])])
pyOmega.mSec(5)
chip.transfer(0x27, [i2c.I2C.Message([0x82])])
chip.transfer(0x27, [i2c.I2C.Message([0x02])])
pyOmega.mSec(5)def lcd_init():
lcd_reset()
lcd_cmd(0x28)
lcd_cmd(0x0C)
lcd_cmd(0x06)
lcd_cmd(0x80)
lcd_cmd(0x80)def lcd_cmd(xcmd):
print xcmdlcd_cmd(0x28)