Smart Home Automation Forum
KC868-A8 OpenPLC Function Blocks for Digital input - Printable Version

+- Smart Home Automation Forum (https://www.kincony.com/forum)
+-- Forum: Technical Support (https://www.kincony.com/forum/forumdisplay.php?fid=20)
+--- Forum: KC868-A8 (https://www.kincony.com/forum/forumdisplay.php?fid=23)
+--- Thread: KC868-A8 OpenPLC Function Blocks for Digital input (/showthread.php?tid=9447)



KC868-A8 OpenPLC Function Blocks for Digital input - admin - 06-09-2026

Code:
#include <Arduino.h>
//#include <Wire.h>
#include <PCF8574.h>

// PCF8574 input address
#define I2C_INPUTS_ADR 0x22

PCF8574 pcf_in(I2C_INPUTS_ADR);

void setup()
{
    // ESP32 KC868 default I2C pins
    Wire.begin(4, 5); // SDA, SCL

    // Initialize PCF8574
    pcf_in.begin();

    // Configure PCF8574 pins as inputs
    pcf_in.pinMode(P0, INPUT);
    pcf_in.pinMode(P1, INPUT);
    pcf_in.pinMode(P2, INPUT);
    pcf_in.pinMode(P3, INPUT);
    pcf_in.pinMode(P4, INPUT);
    pcf_in.pinMode(P5, INPUT);
    pcf_in.pinMode(P6, INPUT);
    pcf_in.pinMode(P7, INPUT);

}

void loop()
{
    // KC868 inputs are active LOW
    IN_0 = (pcf_in.digitalRead(P0) == LOW);
    IN_1 = (pcf_in.digitalRead(P1) == LOW);
    IN_2 = (pcf_in.digitalRead(P2) == LOW);
    IN_3 = (pcf_in.digitalRead(P3) == LOW);
    IN_4 = (pcf_in.digitalRead(P4) == LOW);
    IN_5 = (pcf_in.digitalRead(P5) == LOW);
    IN_6 = (pcf_in.digitalRead(P6) == LOW);
    IN_7 = (pcf_in.digitalRead(P7) == LOW);
}