mirror of
https://github.com/xreef/PCF8574_library.git
synced 2024-08-30 18:12:18 +00:00
54 lines
1.1 KiB
C++
54 lines
1.1 KiB
C++
/*
|
|
KeyPressed with interrupt
|
|
by Mischianti Renzo <http://www.mischianti.org>
|
|
|
|
https://www.mischianti.org/2019/01/02/pcf8574-i2c-digital-i-o-expander-fast-easy-usage/
|
|
*/
|
|
|
|
#include "Arduino.h"
|
|
#include "PCF8574.h"
|
|
|
|
// For arduino uno only pin 1 and 2 are interrupted
|
|
#define ARDUINO_UNO_INTERRUPTED_PIN 2
|
|
|
|
// Function interrupt
|
|
void keyPressedOnPCF8574();
|
|
|
|
// Set i2c address
|
|
PCF8574 pcf8574(0x39, ARDUINO_UNO_INTERRUPTED_PIN, keyPressedOnPCF8574);
|
|
unsigned long timeElapsed;
|
|
void setup()
|
|
{
|
|
Serial.begin(115200);
|
|
delay(1000);
|
|
|
|
pcf8574.pinMode(P0, OUTPUT);
|
|
pcf8574.pinMode(P1, INPUT);
|
|
Serial.print("Init pcf8574...");
|
|
if (pcf8574.begin()){
|
|
Serial.println("OK");
|
|
}else{
|
|
Serial.println("KO");
|
|
}
|
|
|
|
|
|
timeElapsed = millis();
|
|
}
|
|
|
|
bool keyPressed = false;
|
|
void loop()
|
|
{
|
|
if (keyPressed){
|
|
uint8_t val = pcf8574.digitalRead(P1);
|
|
Serial.print("READ VALUE FROM PCF ");
|
|
Serial.println(val);
|
|
keyPressed= false;
|
|
}
|
|
}
|
|
|
|
void keyPressedOnPCF8574(){
|
|
// Interrupt called (No Serial no read no wire in this function, and DEBUG disabled on PCF library)
|
|
keyPressed = true;
|
|
|
|
}
|