Example of how to use the Touch class of the Machine module:
from machine import Touch from machine import Timer import time class TouchPad: def __init__(self, pin, name): self.touch = Touch(pin) self.last_press = 0 self.name = name self.pressed = False def ispressed(self): if self.touch.read() < (self.touch.init_value() * 2 / 3): self.pressed = True else: self.pressed = False return self.pressed def just_pressed(self): now = time.ticks_ms() if now - self.last_press < 500: return True else: return False def set_press(self): self.last_press = time.ticks_ms() class TouchController: def __init__(self, pads): self.pads = pads for pad in self.pads: pad.touch.init_value(1500) def check(self, alarm): for pad in self.pads: if pad.ispressed() and not pad.just_pressed(): pad.set_press() if pad.name == 'Right': if tleft.just_pressed(): print('Swipe right') else: print('{} pressed'.format(pad.name)) elif pad.name == 'Left': if tright.just_pressed(): print('Swipe left') else: print('{} pressed'.format(pad.name)) elif pad.name == 'Up': if tbott.just_pressed(): print('Swipe up') else: print('{} pressed'.format(pad.name)) elif pad.name == 'Bottom': if tupp.just_pressed(): print('Swipe down') else: print('{} pressed'.format(pad.name)) tleft = TouchPad('P4', 'Left') tright = TouchPad('P8', 'Right') tbott = TouchPad('P9', 'Bottom') tupp = TouchPad('P23', 'Up') # initialize the touch controller touch_controller = TouchController(pads=[tleft, tright, tbott, tupp]) # enable the alarm to check the status Timer.Alarm(touch_controller.check, ms=10, periodic=True)