Projeto 77 - Sensor de toque capacitivo como interruptor - liga e desliga

Básico - Projeto 77

Interruptor liga e desliga com sensor touch TP223B

Objetivo

Criar um projeto para atribuir duas funções em um único sensor de toque capacitivo TTP2233B. Neste circuito o sensor servirá como um interruptor para ligar e desligar um led.

Definições

Sensor Touch Capacitivo TTP223B: Sensor baseado no CI TTP223B que foi desenvolvido para detectar toques. Seu funcionamento é bem simples: ao tocar a região indicada, a saída do sensor é ativada (HIGH).

Observações:

a) Os sensores de toque, assim como os botões de pressão (push button ou chaves tácteis) apenas mudam seu estado enquanto estamos pressionando ou tocando, voltando ao seu estado original quando liberados.

b) Neste projeto, teremos uma rotina para atribuir a um só sensor duas funções:  ligar e desligar um componente eletrônico qualquer. Portanto, por similaridade, tomamos como base o Projeto 04b - Push Button como interruptor - liga e desliga (método alternativo ao Projeto 04a) para o funcionamento do sensor de toque neste projeto.

Aplicação

Para fins didáticos e projetos gerais.

Componentes necessários

Referência

Componente

Quantidade

Imagem

Observação

Protoboard Protoboard 830 pontos 1 Resultado de imagem para protoboard 830v

No mínimo utilizar protoboard com 400 pontos

Jumpers Kit cabos ligação macho / macho 1  
Sensor de toque capacitivo Sensor touch TP223B 1

Tensão de Operação: 2 a 5V

Saída estado Alto (HIGH): 0,8V

Saída estado Baixo (LOW): 0,3V

Tempo de resposta: 220ms (LOW) e 60ms (HIGH)

(datasheet)

Led Difuso 5mm LEDs 5mm 1

1 LED alto brilho ou difuso (qualquer cor)

Você poderá utilizar também LEDs de 3 mm na cor que desejar.

Resistor

Resistor

 1

1 Resistor 150Ω

Se precisar usar outros valores, calcule o resistor apropriado para o led utilizado - Calcular Resistor.

Arduino UNO R3 Arduino UNO 1

Você poderá utilizar uma placa Arduino UNO original ou similar

Montagem do Circuito

Conecte os componentes no Protoboard como mostra a figura abaixo. Verifique cuidadosamente os cabos de ligação antes de ligar seu Arduino. Lembre-se que o Arduino deve estar totalmente desconectado da força enquanto você monta o circuito.


Atenção

1. Lembre-se que o LED tem polaridade: O terminal maior tem polaridade positiva e o lado do chanfro tem polaridade negativa.

1.1. Portanto, faça a conexão do Arduino no terminal positivo do led (anodo) e o GND no terminal negativo (catodo).

1.2. Para evitar danos ao led é necessário a inclusão de um resistor no circuito. Como o resistor é um limitador da corrente elétrica, ele poderá estar conectado no anodo (terminal maior) ou no catodo (terminal menor) do led, tanto faz.

2. Determinamos o valor do resistor através da tabela prática: Tabela prática de utilização de leds 3mm e 5mm. Entretanto, o mais correto é sempre verificar o datasheet do fabricante do LED para você ter os exatos valores de tensão e corrente do mesmo - leia Como calcular o resistor adequado para o led e Leds ligados em série e em paralelo.

2.1. Valores utilizados para nossos projetos: LEDs difusos ou de alto brilho: Vermelho, Laranja e Amarelo: 150 Ω | Led Verde e Azul: 100 Ω

3.  Monte o sensor touch TP223B conforme imagem abaixo. Desta forma, quando o sensor for tocado, o Arduino retornará "HIGH" ou "1".

3.1.1. No nosso exemplo conectamos o sensor no pino digital 2 do Arduino.


4. Veja abaixo como realizamos a montagem do nosso projeto utilizando um protoboard.

Testando a montagem do sensor

1. Para verificarmos se tudo está correto, rode o sketch abaixo e verifique:

1.1. Ao tocarmos na região indicada no sensor, o led se acenderá. Ao retirarmos o dedo do sensor, o led se apagará imediatamente.

/*******************************************************************************
**                
*               Teste funcionamento - Sensor de toque capacitivo
*               Data: 28/01/2020 (dd/mm/AA)
*                  http://squids.com.br/arduino
*
*******************************************************************************/
const int pinSensor = 2; // Conexão sensor no pino digital 2 do Arduino
const int pinLed = 12; // Conexção led no pino digital 12 do Arduino
 
void setup() {
  pinMode(pinSensor, INPUT); // Define o pino do sensor como ENTRADA do Arduino
  pinMode(pinLed, OUTPUT); // Define o pino do led como SAÍDA do Arduino
}
 
void loop() {
  if (digitalRead(pinSensor) == HIGH){ // Se o sensor foi tocado, leitura é HIGH
    digitalWrite(pinLed, HIGH); // Acende o led enquanto mantemos o dedo tocando o sensor
  }
  else{
    digitalWrite(pinLed,LOW); // O led é desligado
  } 
}

2. O funcionamento deverá ser conforme vídeo abaixo:

Código do projeto (Sketch)

1. Faça o dowload e abra o arquivo projeto77.ino no IDE do Arduino: DOWNLOAD - projeto77.ino

Ou se preferir, copie e cole o código abaixo no IDE do Arduino:

/*******************************************************************************
**                
*               Projeto 77 - Sensor de toque como interruptor - liga / desliga
*               Autor: Angelo Luis Ferreira
*               Data: 28/01/2020 (dd/mm/AA)
*                  http://squids.com.br/arduino
*
*******************************************************************************/
const int pinSensor = 2; // Conexão sensor no pino digital 2 do Arduino
const int pinLed = 12; // Conexção led no pino digital 12 do Arduino

// set variables
byte estado = 0; // variável para leitura do sensor
byte guarda_estado = 0;  // variável para armazenar valores do sensor
byte estado_anterior = LOW;
 
void setup() {
  pinMode(pinSensor, INPUT); // Define o pino do sensor como ENTRADA do Arduino
  pinMode(pinLed, OUTPUT); // Define o pino do led como SAÍDA do Arduino
}

void loop(){
  // le o estado do sensor: ativado (HIGH) ou desativado (LOW)
  estado = digitalRead(pinSensor);
   
  // verifica se o sensor foi tocado (HIGH)
  if ((estado) && (!estado_anterior)) { // Se estado for HIGH e estado_anterior for LOW
      // inverte valor da variável guarda_estado
      guarda_estado = !guarda_estado;
      delay(10);
  }
   
  if (guarda_estado == HIGH) {
      // liga o led
      digitalWrite(pinLed, HIGH);
  } else {
      // desliga o led
      digitalWrite(pinLed, LOW);
  }
   
  estado_anterior = estado; 
}

Vídeo

Como o projeto deve funcionar

1. Ao iniciar o programa, o led ficará apagado.

2. Ao tocar o sensor o led se acenderá e se manterá aceso.

3. Ao tocar novamente o sensor o led se apagará, invertendo-se assim o seu estado.

Desafios

Com base neste projeto, resolva o seguinte desafio: Desafio 64

O anúncio abaixo ajuda a manter o Squids Arduino funcionando

Comentários

×

Infomações do site / SEO








×

Adicionar Marcadores