Você está na página 1de 2

Teclado com protocolo I2C no ESP8266

Eletrônica

Usando CI PCF8574 e protocolo I2C poderá economizar 6 pinos do micro


controlador ao conectar um teclado 4x4, veja imagem abaixo.

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 // I2C Keypad for Arduino


2 // Venkateswara Rao.E
3 // 19-oct-2015
4 // Credits to @author Alexander Brevig
5
6 #include <Wire.h>
7 #include <Keypad_I2C.h>
8 #include <Keypad.h>
9 #define I2CADDR 0x38
10
11 const byte ROWS = 4; //four rows
12 const byte COLS = 4; //three columns
http://suadica.com/dica.php?d=412&amp;t=teclado-com-protocolo-i2c-no-esp8266
Created with PrintWhatYouLike.com
12 const byte COLS = 4; //three columns
13 char keys[ROWS][COLS] = {
14 {"1","2","3","A"},
15 {"4","5","6","B"},
16 {"7","8","9","C"},
17 {"*","0","#","D"}
18 };
19
20 // Digitran keypad, bit numbers of PCF8574 i/o port
21 byte rowPins[ROWS] = {0, 1, 2, 3}; //connect to the row pinouts of the keypad
22 byte colPins[COLS] = {4, 5, 6}; //connect to the column pinouts of the keypad
23
24 Keypad_I2C kpd( makeKeymap(keys), rowPins, colPins, ROWS, COLS, I2CADDR, PCF8574 );
25
26 void setup(){
27 Wire.begin( );
28 kpd.begin( makeKeymap(keys) );
29 Serial.begin(9600);
30 Serial.println( "start" );
31 }
32
33 void loop(){
34 char key = kpd.getKey();
35
36 if (key){
37 Serial.println(key);
38 }
39 }

https://www.hackster.io

© 2012-2020 suadica.com

http://suadica.com/dica.php?d=412&amp;t=teclado-com-protocolo-i2c-no-esp8266
Created with PrintWhatYouLike.com

Você também pode gostar