Skip to content
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Prev Previous commit
Next Next commit
SPI working, I2C not.
  • Loading branch information
kattni committed Nov 20, 2018
commit 95a9f14c8d2518ac0610068903a25b2f6b1e3b2d
24 changes: 5 additions & 19 deletions adafruit_character_lcd/character_lcd.py
Original file line number Diff line number Diff line change
Expand Up @@ -531,14 +531,8 @@ class Character_LCD_Mono(Character_LCD):

"""
# pylint: disable-msg=too-many-arguments
def __init__(self, rs, en, d4, d5, d6, d7, columns, lines,
def __init__(self, rs, en, db4, db5, db6, db7, columns, lines,
backlight_pin=None, backlight_inverted=False):
reset = rs
enable = en
db4 = d4
db5 = d5
db6 = d6
db7 = d7

# Backlight pin and inversion
self.backlight_pin = backlight_pin
Expand All @@ -548,10 +542,8 @@ def __init__(self, rs, en, d4, d5, d6, d7, columns, lines,
if backlight_pin is not None:
self.backlight_pin.direction = digitalio.Direction.OUTPUT
if backlight_inverted:
self.backlight_pin.value = 0 # Turn inverted backlight on
else:
self.backlight_pin.value = 1 # Turn backlight on
super().__init__(reset, enable, db4, db5, db6, db7, columns, lines)
self.backlight_pin.value = not backlight_inverted # Turn backlight on
super().__init__(rs, en, db4, db5, db6, db7, columns, lines)
# pylint: enable-msg=too-many-arguments

@property
Expand Down Expand Up @@ -611,13 +603,7 @@ class Character_LCD_RGB(Character_LCD):

"""
# pylint: disable-msg=too-many-arguments
def __init__(self, rs, en, d4, d5, d6, d7, columns, lines, red, green, blue, read_write=None):
reset = rs
enable = en
db4 = d4
db5 = d5
db6 = d6
db7 = d7
def __init__(self, rs, en, db4, db5, db6, db7, columns, lines, red, green, blue, read_write=None):

# Define read_write (rw) pin
self.read_write = read_write
Expand All @@ -643,7 +629,7 @@ def __init__(self, rs, en, d4, d5, d6, d7, columns, lines, red, green, blue, rea
)

self._color = [0, 0, 0]
super().__init__(reset, enable, db4, db5, db6, db7, columns, lines)
super().__init__(rs, en, db4, db5, db6, db7, columns, lines)

@property
def color(self):
Expand Down
36 changes: 36 additions & 0 deletions adafruit_character_lcd/mono_i2c.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
from adafruit_character_lcd.character_lcd import Character_LCD_Mono


class Character_LCD_I2C(Character_LCD_Mono):
"""Character LCD connected to I2C/SPI backpack using its I2C connection.
This is a subclass of Character_LCD and implements all of the same
functions and functionality.

To use, import and initialise as follows:

.. code-block:: python

import board
import busio
import adafruit_character_lcd.character_lcd_mono as character_lcd

i2c = busio.I2C(board.SCL, board.SDA)
lcd = character_lcd.Character_LCD_I2C(i2c, 16, 2)
"""
def __init__(self, i2c, columns, lines, backlight_inverted=False):
"""Initialize character LCD connected to backpack using I2C connection
on the specified I2C bus with the specified number of columns and
lines on the display. Optionally specify if backlight is inverted.
"""
import adafruit_mcp230xx
self._mcp = adafruit_mcp230xx.MCP23008(i2c)
reset = self._mcp.get_pin(1)
enable = self._mcp.get_pin(2)
db4 = self._mcp.get_pin(3)
db5 = self._mcp.get_pin(4)
db6 = self._mcp.get_pin(5)
db7 = self._mcp.get_pin(6)
backlight_pin = self._mcp.get_pin(7)
self.backlight_inverted = backlight_inverted
super().__init__(reset, enable, db4, db5, db6, db7, columns, lines,
backlight_pin=backlight_pin, backlight_inverted=backlight_inverted)
42 changes: 42 additions & 0 deletions adafruit_character_lcd/mono_spi.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
from adafruit_character_lcd.character_lcd import Character_LCD_Mono


class Character_LCD_SPI(Character_LCD_Mono):
"""Character LCD connected to I2C/SPI backpack using its SPI connection.
This is a subclass of Character_LCD and implements all of the same
functions and functionality.

To use, import and initialise as follows:

.. code-block:: python

import board
import busio
import digitalio
import adafruit_character_lcd.character_lcd_mono as character_lcd

spi = busio.SPI(board.SCK, MOSI=board.MOSI)
latch = digitalio.DigitalInOut(board.D5)
lcd = character_lcd.Character_LCD_SPI(spi, latch, 16, 2)
"""

def __init__(self, spi, latch, columns, lines, backlight_inverted=False):
# pylint: disable=too-many-arguments
"""Initialize character LCD connected to backpack using SPI connection
on the specified SPI bus and latch line with the specified number of
columns and lines on the display. Optionally specify if backlight is
inverted.
"""
# pylint: enable=too-many-arguments
import adafruit_74hc595
self._shift_register = adafruit_74hc595.ShiftRegister74HC595(spi, latch)
reset = self._shift_register.get_pin(1)
enable = self._shift_register.get_pin(2)
db4 = self._shift_register.get_pin(6)
db5 = self._shift_register.get_pin(5)
db6 = self._shift_register.get_pin(4)
db7 = self._shift_register.get_pin(3)
backlight_pin = self._shift_register.get_pin(7)
self.backlight_inverted = backlight_inverted
super().__init__(reset, enable, db4, db5, db6, db7, columns, lines,
backlight_pin=backlight_pin, backlight_inverted=backlight_inverted)