I'm trying that ...



  • image20151213_193508052.jpg
    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 Github

    i'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 xcmd

    lcd_cmd(0x28)


Log in to reply
 

Looks like your connection to Community was lost, please wait while we try to reconnect.