Arduino

Substitua botões por esse teclado capacitivo de 4 dígitos

teclado capacitivo

Quando queremos acessar um menu ou executar uma determinada função com arduino, normalmente fazemos uso de push buttons. Nesse caso, precisamos de N resistores, ferro de solda e wiring. Mas existe uma maneira muito mais simples e elegante de interagir com seu Arduino. Conheça o teclado capacitivo de 4 dígitos!

Teclado capacitivo

Infelizmente parece que tenho um certo isolamento estático e para acionar o teclado, preciso esfregar o dedo no que me resta de cabelo antes de tocar no teclado. Ele é bastante sensível, um suave toque e já faz o acionamento. E o mais legal desse teclado é que ele tem um LED de resposta para cada botão selecionado, ou seja, uma solução bonita e completa para seus projetinhos com Arduino – ou qualquer outra MCU, ou CPU. Ainda mais que nesse artigo estou utilizando ele de uma maneira um pouco diferente.

PCF8574





O PCF8574 é um expansor de IO I2C, de fácil conexão com o Arduino ou qualquer outro processador que desejar utiizá-lo, desde que ele possua suporte a I2C. Nesse projeto estou utilizando o Arduino UNO, portanto 2 pinos analógicos estão sendo utilizados para a comunicação I2C e apenas 1 pino digital, utilizado aqui para receber interrupções do PCF8574, ou seja, você pode ter até 12 teclas dispensando apenas 1 pino digital para interrupção. Essa limitação de teclas é devido ao PCF8574 suportar apenas 3 conexões, que você pode fazer simplesmente conectando um modulo PCF8574 ao outro. Claro, para obter a origem da interrupção você precisará ler todos os módulos conectados para verificar o estado ou, se utilizando apenas 2 módulos, pode utilizar os pinos 2 e 3 para as interrupções.

Se desejar detalhes mais profundos sobre esse magnífico módulo expansor, sugiro esse outro artigo. Se está procurando por um teclado maior, recomendo o desse artigo. E se precisa de informações mais detalhadas, esse sobre interrupções e timer com Arduino.

Por que utilizar interrupções?

O teclado não é de forma alguma o fluxo principal do seu código. Seu objetivo é unicamente interação com o usuário, sendo que todo o resto é trabalho do seu programa. Por esse mesmo motivo, dispensar montes de GPIO para interagir com o usuário é disperdício de recursos, uma vez que esses pinos poderiam estar sendo utilizados para periféricos do seu projeto. E por isso mesmo que é precioso o recurso desse expansor, porque você pode utilizar um Arduino UNO ou até mesmo um ESP8266-01 e ter recursos de sobra para futuras expansões!

Wiring

O wiring é a coisa mais simples do mundo para esse expansor I2C. Olhando-o pela parte de trás, você vê as definições dos pinos, que vão de J1 para o primeiro bit até o pino INT.  Conecte os pinos J1,J2,J3 e J4 aos pinos D1,D2,D3 e D4 do teclado, respectivamente. Conecte VCC e GND do teclado à saída de expansão do PCF8574. Entre o Arduino e o PCF8574 a conexão é tão simples quanto. Mas veja a tabela abaixo, é mais simples e mais rápido que colocar um desenho:

 Arduino UNO   PCF8574   Teclado 4×4
5V VCC IN
GND GND IN
Analógico 4 SDA
Analógico 5 SCL
Digital 2 INT
VCC OUT VCC
GND OUT GND
J1 D1
J2 D2
J3 D3
J4 D4

Apenas para exclarecimento, VCC OUT do PCF8574 está no slot de conexão com um segund (ou terceiro) módulo PCF8574.

Código

Para controlar esse teclado capacitivo, utilizei interrupção pelas razões descritas logo ao início do artigo. O código fica bastante enxuto, bastando fazer o seguinte:

 

Onde comprar o módulo PCF8574 e o teclado capacitivo 4×4?

O teclado capacitivo você encontra através desse link da AutoCore Robótica. Já o módulo PCF8574 vou ficar devendo porque já esgotou em todos os parceiros, cuja recomendação poderia fazer com confiança.

Uma aproximação sutil de sua digital acionará facilmente o teclado capacitivo. Estranhamente, um pressionamento intenso não responderá da mesma maneira.

Inscreva-se no nosso newsletter, alí em cima à direita e receba novos posts por email.

Siga-nos no Do bit Ao Byte no Facebook.

Prefere twitter? @DobitAoByte.

Inscreva-se no nosso canal Do bit Ao Byte Brasil no YouTube.

Nossos grupos:

Arduino BR – https://www.facebook.com/groups/microcontroladorarduinobr/
Raspberry Pi BR – https://www.facebook.com/groups/raspberrybr/
Orange Pi BR – https://www.facebook.com/groups/OrangePiBR/
Odroid BR – https://www.facebook.com/groups/odroidBR/
Sistemas Embarcados BR – https://www.facebook.com/groups/SistemasEmbarcadosBR/
MIPS BR – https://www.facebook.com/groups/MIPSBR/
Do Bit ao Byte – https://www.facebook.com/groups/dobitaobyte/

Próximo post a caminho!