ESP8266_swiss_army_board/src/libs/PCF8574/PCF8574.h
2019-05-02 17:20:52 +02:00

35 lines
750 B
C++

#ifndef PCF8574_H
#define PCF8574_H
#include <Arduino.h>
#include <Wire.h>
/***
* A very simple class to drive a PCF8574 chip
*
* Anatole SCHRAMM-HENRY -- Th3maz1ng
***/
class PCF8574
{
public:
enum Pin{P0 = 1, P1 = 2, P2 = 4, P3 = 8, P4 = 16, P5 = 32, P6 = 64, P7 = 128};
PCF8574(uint8_t address, TwoWire &twc = Wire);
boolean begin();
void pinMode(Pin pin, boolean mode = INPUT);
void digitalWrite(Pin pin, boolean mode);
boolean digitalRead(Pin pin);
void digitalReadAll(boolean array[]);
boolean getPinMode(Pin pin);
void getPinModeAll(boolean array[]);
void togglePin(Pin pin);
private:
TwoWire &_twc;
uint8_t _address;
uint8_t _pinConfig;
uint8_t _pddr;
protected:
};
#endif //PCF8574_H