Criando um seletor de cargas com sensor capacitivo
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? Dúvidas? Idéias de post? Críticas? Só comentar também!
Forte abraço!