SX1509 mit OneButton

Hallo,

ich habe einen Teensy 3.5, welchen ich mit einem SX1509 Board erweitert habe, da ich noch ein paar Digitale Anschlüsse benötigte.
An dem SX1509 Board von Sparfunk, haben ich mehrere Taster angebracht.
Diese würde ich nun gerne mit der OneButton Library auslesen.
Leider fehlt mir das wissen, wie ich mit der OneButton Library auf die Pins vom SX1509 zugreifen kann.

Mein aktueller Code:

#include <Wire.h> // Include the I2C library (required)
#include <SparkFunSX1509.h> // Include SX1509 library
#include <OneButton.h>

SX1509 io; // Create an SX1509 object

const int SX1509_BTN_PIN0 = 0; 
const int SX1509_BTN_PIN1 = 1;
const int SX1509_BTN_PIN2 = 2;

OneButton BTN_Taster_0(SX1509_BTN_PIN0, true);

void setup() {
  Wire.begin();
  Serial.begin(9600);
  pinMode(13, OUTPUT); 
  digitalWrite(13, LOW);
  if (!io.begin(0x3E))
  {
    // If we failed to communicate, turn the pin 13 LED on
    digitalWrite(13, HIGH);
    while (1);
  }
  io.pinMode(SX1509_BTN_PIN0, INPUT_PULLUP);
  io.pinMode(SX1509_BTN_PIN1, INPUT_PULLUP);
  io.pinMode(SX1509_BTN_PIN2, INPUT_PULLUP);
  BTN_Taster_0.attachLongPressStart(SX1509_BTN_PIN0_func);
  BTN_Taster_0.setPressTicks(50);
}

void loop() {
  BTN_Taster_0.tick();
  
  if (io.digitalRead(SX1509_BTN_PIN0) == LOW)
  {
    Serial.println("Taster 0");
  }
  if (io.digitalRead(SX1509_BTN_PIN1) == LOW)
  {
    Serial.println("Taster 1");
  }
    if (io.digitalRead(SX1509_BTN_PIN2) == LOW)
  {
    Serial.println("Taster 2");
  }
}

void SX1509_BTN_PIN0_func(){
  Serial.println("OneButton Taster 0");
}

Mit meinem aktuellen Code, greif ich auf den Normalen Pin 0 zu.
Wie bekomme ich es hin das er auf den Pin 0 vom SX1509 Board zugreifet?

Über eurer Hilfe wäre ich sehr dankbar.

Mit freundlichen Grüßen
Flammel1007

Gar nicht!

Das ist zwar die Antwort die ich vermutet habe, aber die höre/lese ich nur ungerne :slight_smile:

Ich würde mich nach SX1509 I/O Expander Breakout Hookup Guide richten.

schau dir das Keypad beispiel an.
Schließe deine Buttons entsprechend an, dann hast das debouncing schon direkt vom chip+SX1509 library.

Du könntest der Lib einen Umbau angedeihen lassen.
Einen massiven Umbau.

Und das magst du sicherlich auch nicht!
Denn, wenn du das könntest, hättest du dir deine Frage selber beantworten können.

Da geb ich dir zu 100% recht :slight_smile: