Olá tudo bem? No post de hoje vamos estar criando um seletor de cargas utilizando um sensor capacitivo. Isso é uma continuação do nosso estudo sobre o post dos sensores capacitivos.
Assim, hoje vamos deixar a teoria um pouco de lado e começar a ver exemplos de aplicações de toda essa teoria. Vamos nessa?
Mas antes de começar, é importante que você tenha visto dois post. O primeiro post é onde eu abordo sobre o sensor capacitivo. Isso porque, algumas informações tratadas aqui já foram muito bem detalhadas no post sobre este sensor combinado?
O segundo é sobre o CI 74HC595, muito utilizado para a expansão das portas do Arduino, o qual iremos utilizar para controlar na saída 8 leds. Então para facilitar para você, eu estou deixando o link dos dois post logo abaixo:
Mas, caso você já possui conhecimento sobre esse incrível sensor, maravilha. Então bora para a construção do projeto!
Seletor de cargas com sensor capacitivo
O projeto que vamos desenvolver aqui é baseado em um seletor de cargas. Mas você teria um exemplo desse “seletor”? Basicamente, este seletor está em muitos lugares a sua volta, inclusive você utiliza um seletor quando vai sacar dinheiro sabia?
Como assim?
É exatamente isso. Isso acontece porque o projeto se baseia na utilização de um sensor de toque capacitivo onde a cada toque no sensor, um bit é deslocado acendendo o próximo led de um série de leds.
Tal conceito é o mesmo que ocorre nos caixas eletrônicos ou naqueles painéis que os shopping centers tem na entrada deles para que o visitante possa navegar nas diversas abas.
Assim, quando você clica na tela do caixa eletrônico para escolher os códigos da senha, aquilo é um “seletor” de cargas. Toda vez que você clica na tela (que é um sensor capacitivo) você acaba acionando aquela opção.
Materiais Utilizados
- 1x Ardunio UNO
- 1x Sensor Capacitivo TTP223B
- 8x Leds 5mm
- 8x Resistor 330 Ohms
- 1x Protoboard 830 furos
- Fios Jumpers
Montagem do Circuito
O circuito que vamos desenvolver para testar esse seletor se encontra logo abaixo. Nele vamos controlar 8 leds apenas utilizando 3 pinos do nosso Arduino junto com o 74HC595.
Fonte: AutoCore Robótica
Código do Projeto Comentado
/* ========================================================================================================
Projeto: Seletor de Cargas com Sensor Capacitivo
Autor: Danilo Nogueira
Data: 09/11/2018
// ======================================================================================================== */
// --- Ligação dos Pinos ---
#define sensor 4
#define clk 8
#define latch 7
#define data 9
// ========================================================================================================
// --- Variáveis Globais ---
byte control_led = 0x01;
// ========================================================================================================
// --- Iniciando o Setup ---
// Como iremos escrever nos pinos do 74HC595,
// Então eles deverão ser uma saída.
void setup()
{
pinMode(sensor, INPUT);
pinMode(clk, OUTPUT);
pinMode(data, OUTPUT);
pinMode(latch, OUTPUT);
}
// ========================================================================================================
// --- Loop Infinito ---
void loop()
{
if(digitalRead(sensor))
{
// Esse comando interno do Arduino, faz todo aquele processo
// Explicado sobre o CLK e Pino D lembra?
// Assim, é ele que escreve na saída, o valor em binario que definimos
shiftOut(data, clk, LSBFIRST, control_led);
// Aqui, controlamos a latch para el permitir a escrita
// Dos dados e o envio dele aos leds
digitalWrite(latch, LOW);
digitalWrite(latch, HIGH);
digitalWrite(latch, LOW);
// control_led = control_led << 1;
control_led <<= 1;
if(!control_led) control_led = 0x01;
delay(300);
}
}
// ========================================= FIM ==========================================================
Analisando o Código a Fundo
O código utilizado neste projeto é a base do código o qual utilizamos para expandir as portas do arduino utilizando o CI 74HC595. Assim, toda a explicação dos comandos utilizados no código você pode encontrar visitando o post.
A novidade para este projeto é a adição de algumas linhas de código os quais farão com que ocorra o deslocamento dos bits a partir do acionamento do sensor capacitivo. O primeiro comando é:
byte control_led = 0x01;
Aqui vamos iniciar com o primeiro led ligado, para mostrar o deslocamento dos leds.
if(digitalRead(sensor))
Neste if, estamos verificando através da leitura digital da porta do sensor, qual é o seu estado, caso seja verdadeiro o bloco de condição if é executado.
control_led <<= 1; if(!control_led) control_led = 0x01;
Por fim, a cada execução do comando if, a variável que controla a posição do led é deslocada para a esquerda (<< representa deslocamento para a esquerda). Quando essa variável for zero (!control_led), então ela é “resetada”.
Resultado do Projeto
Por fim, para concluir o projeto de hoje, deixo para você um vídeo do canal da AutoCore no Youtube. Nele, estamos mostrando o resultado do projeto desenvolvido.
Mas e ai? Gostou? Caso tenha ficado algo incompleto para você, comenta abaixo
Dicas?
Forte abraço!
