Home

Awesome

Erriez TTP229 touch sensitive keypad library for Arduino

Build Status

This is an TTP229 touch sensitive library for Arduino.

TTP229

Library features

Design notes

Examples

Getting started

#include <ErriezTTP229.h>

// TTP229 pin defines
#if defined(ARDUINO_ARCH_AVR)
#define TTP229_SDO_PIN     2  // SDO to interrupt pin 2 (INT0) or pin 3 (INT1)
#define TTP229_SCL_PIN     3  // SCL to any DIGITAL IO pin
#elif defined(ARDUINO_ARCH_ESP8266)
#define TTP229_SDO_PIN    D1  // Interrupt pin
#define TTP229_SCL_PIN    D2  // Any pin
#elif defined(ARDUINO_ARCH_ESP32)
#define TTP229_SDO_PIN     16  // Keep GPIO0 low during programming
#define TTP229_SCL_PIN     4
#else
#error "May work, but not tested on this target"
#endif

// Create keypad object
ErriezTTP229 ttp229;


#if defined(ARDUINO_ARCH_ESP8266) || defined(ARDUINO_ARCH_ESP32)
ICACHE_RAM_ATTR
#endif
void keyChange()
{
    // A key press changed
    ttp229.keyChange = true;
}

void setup()
{
    // Initialize serial
    Serial.begin(115200);
    while (!Serial) {
        ;
    }
    Serial.begin(115200);
    Serial.println(F("\nErriez TTP229 single 16-keys keypad example"));

    // Initialize keypad with interrupt
    ttp229.begin(TTP229_SCL_PIN, TTP229_SDO_PIN);

    // Initialize interrupt pin on SD0
    attachInterrupt(digitalPinToInterrupt(TTP229_SDO_PIN), keyChange, FALLING);
}

void loop()
{
    // Print key
    if (ttp229.keyChange) {
        Serial.println(ttp229.GetKey16());
        ttp229.keyChange = false;
    }
}

Library dependencies

Hardware

Arduino UNO
Arduino UNO

ESP8266
Arduino ESP8266

ESP32
Arduino ESP32

DUE
Arduino DUE

Library installation

Please refer to the Wiki page.

Other Arduino Libraries and Sketches from Erriez