Ir para o conteúdo principal

Pinos de Toque Capacitivo

A capacitância pode ser definida, basicamente, como a capacidade de um corpo de armazenar energia elétrica. Dessa maneira, os pinos de toque capacitivo detectam a mudança na capacitância de um elemento. Esses pinos, podem ser utilizados por toque, e até mesmo, pela aproximação de um dedo.

Neste exemplo, vamos fazer um “interruptor” por aproximação e, aprender como usar o módulo responsável pelos pinos de toque capacitivo. Ademais, veremos como ajustar a sensibilidade desse recurso.

Materiais necessários

  • 1 Placa Franzininho WiFi com CircuitPython;
  • 1 Protoboard;
  • 1 LED;
  • 1 resistor de 220 Ω ou 330 Ω;
  • Jumpers.

Circuito

Realize a seguinte montagem para este projeto. No lugar do “sensor” de toque capacitivo, pode ser utilizado um jumper, um pedaço de fio ou qualquer outro material.

Circuito

Código

Implemente o código abaixo e teste seu circuito.

#Toque Capacitivo

import board
import touchio
from digitalio import DigitalInOut, Direction
from time import sleep

estado = 0

pin = board.IO1
touch = touchio.TouchIn(pin)

led = DigitalInOut(board.IO4)
led.direction = Direction.OUTPUT

while True:
if touch.value:
estado = not estado

led.value = estado
sleep(1)

Após finalizar a edição do código, salve-o. Execute o programa. Ao aproximar, ou, encostar o dedo no “sensor” escolhido por você, ele deve funcionar como um interruptor, ligando e desligando o LED.

Análise do Código

Para acessarmos os pinos da placa devemos importar o módulo board:

import board

Além disso, para o uso dos pinos de toque capacitivo, usaremos a biblioteca touchio:

import touchio

E, para configurarmos o LED como uma saída digital, temos que importar as funções DigitalInOut e Direction do módulo digitalio:

from digitalio import DigitalInOut,  Direction

Por último, vamos chamar a função sleep do módulo time, que usaremos para intervalos de temporização:

from time import sleep

Após importarmos as bibliotecas necessárias, criaremos uma variável estado, que vai armazenar o estado do LED:

estado  =  0

Agora, vamos configurar o GPIO1, como um pino touch. Primeiro, iremos atribuir esse pino a uma variável, no caso, a variável pin. Após isso, iremos criar o objeto touch e atribuir o pin a esse objeto:

pin  =  board.IO1
touch = touchio.TouchIn(pin)

Ademais, iremos atribuir o GPIO4 a varável led e, configurá-lo como uma saída digital:

led  =  DigitalInOut(board.IO4)
led.direction = Direction.OUTPUT

Na sequência, criaremos um laço infinito (while True). Dentro do loop, verificamos se houve mudança na capacitância do “sensor”. Caso aconteça a mudança, o estado do led também mudará:

while True:
if touch.value:
estado = not estado

led.value = estado
sleep(1)

Como ajustar a sensibilidade do touch?

Nesse exemplo, estamos acionando o led apenas por aproximar o dedo. Porém, pode ser que você deseje ajustar o seu “sensor” para acionar por toque. Para isso, vamos utilizar o comando threshold.

Primeiro, vamos verificar a medição do toque bruto. Para isso, utilizaremos a função raw_value. Depois, ajustaremos a sensibilidade, para que ele seja acionado apenas por toque:

pin = board.IO1
touch = touchio.TouchIn(pin)
print(touch.raw_value)
touch.threshold = 17300

Após adicionarmos a função threshold, o led só é acionado se tocarmos o “sensor”. Isso acontece, pois, o configuramos com uma sensibilidade menor, ou seja, um valor mínimo de capacitância maior, para que a mudança seja percebida pela placa.

Conclusão

Aprendemos, através de um exemplo prático, a como usar um pino toque capacitivo, que, em muitas situações pode ser usado para substituir botões e interruptores, por exemplo, apresentando-se como uma solução mais simples, pois seu funcionamento não é mecânico. Além disso, pudemos ver como ajustar a sensibilidade desse sensor as nossas necessidades.

AutorMateus Adriano Ventura Vieira
Data:06/05/2022