MicroPython I2C driver for the Focus LCDs FT6336U capacitive touch panel controller IC.
The driver simply requires a MicroPython I2C
object to be instantiated. Refer to your development board's schematics to establish the correct I2C pins.
from machine import I2C, Pin
I2C_SDA_PIN = const(21)
I2C_SCL_PIN = const(22)
I2C_FREQ = const(400000)
i2c_bus = I2C(sda=Pin(I2C_SDA_PIN), scl=Pin(I2C_SCL_PIN), freq=I2C_FREQ)
The FT6336U driver can then be instantiated using the I2C
object. For the simplest operation, use the touch.get_positions()
method to return the X and Y coordinates of the registered point(s). This will return a maximum of two points. If the device cannot be found, make sure that the IC is powered (for example, if it is connected to a separate power management chip).
import uFT6336U
touch = uFT6336U.FT6336U(i2c_bus)
touch.get_positions()
For best results, use the driver with the designated interrupt pin. This way, discreet code can be triggered based on newly registered points.
INTERRUPT_PIN = const(39)
def handle_interrupt(pin):
num_points = touch.get_points()
if num_points > 0:
print(touch.get_p1_x(), touch.get_p1_y())
if num_points == 2:
print(touch.get_p2_x(), touch.get_p2_y())
pir = Pin(INTERRUPT_PIN, Pin.IN)
pir.irq(trigger=Pin.IRQ_RISING, handler=handle_interrupt)