O CI PCF8574 é um expansor de portas I2C de 8 bits que permite o controle de até 8 portas utilizando apenas 2 pinos do microcontrolador. É ideal para projetos onde o microcontrolador tem um número limitado de portas disponíveis.
O PCF8574 funciona com tensões entre 2.5 e 6V, e os pinos A0, A1 e A2 definem o endereço utilizado para comunicação I2C. As 8 portas podem ser configuradas como entrada ou saída e os pinos da interface I2C (SDA e SCL) necessitam de resistores pull-up.
O teclado matricial usado neste exemplo é compatível com Arduíno, pic, avr, raspberry pi, ESP8266, ESP32 entre outros microcontroladores.
Possui uma membrana autoadesiva na parte traseira do teclado. Utiliza até no máximo 8 pinos do microcontrolador.
O teclado tem 4x4 teclas ou seja 16 teclas ao todo, ideal para sistemas de segurança e controle de entrada de dados.
Opera em até 24V (DC), 30mA, 700mW.
Esquema de Ligação:
Código Fonte:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 | // I2C Keypad for Arduino // Venkateswara Rao.E // 19-oct-2015 // Credits to @author Alexander Brevig #include <Wire.h> #include <Keypad_I2C.h> #include <Keypad.h> #define I2CADDR 0x38 const byte ROWS = 4; //four rows const byte COLS = 4; //three columns char keys[ROWS][COLS] = { {"1","2","3","A"}, {"4","5","6","B"}, {"7","8","9","C"}, {"*","0","#","D"} }; // Digitran keypad, bit numbers of PCF8574 i/o port byte rowPins[ROWS] = {0, 1, 2, 3}; //connect to the row pinouts of the keypad byte colPins[COLS] = {4, 5, 6}; //connect to the column pinouts of the keypad Keypad_I2C kpd( makeKeymap(keys), rowPins, colPins, ROWS, COLS, I2CADDR, PCF8574 ); void setup(){ Wire.begin( ); kpd.begin( makeKeymap(keys) ); Serial.begin(9600); Serial.println( "start" ); } void loop(){ char key = kpd.getKey(); if (key){ Serial.println(key); } } |