boa noite , gostaria de saber se voces poderiam me ajudar ,preciso usar a função mil lis com sensor touch
gostaria de dar um toque e ele acender um LED,da dois toque e ele apagar o LED poderiam me ajudar ?
Tags:
mestre ,quanto cobraria pra fazer esse programinha ?
#define pinBotao 2
#define Led 13
int numero;
boolean botaoAtu = false;
boolean botaoAnt = false;
void setup() {
pinMode(pinBotao, INPUT);
pinMode(Led, OUTPUT);
digitalWrite(Led, LOW);
}
void loop() {
botaoAtu = digitalRead(pinBotao);
if (botaoAtu && !botaoAnt) {
numero++;
if (numero > 2) {
numero = 0;
}
}
botaoAnt = botaoAtu;
switch (numero) {
case 0:
digitalWrite(Led, HIGH);
break;
case 2:
digitalWrite(Led, LOW);
break;
}
}
eu testei aqui no meu sensor capacitivo assim e funcionou de boa
Nossa bom dia , vai me ajudar muito obrigado ,vou compartilhar com outra passoas assim continua o seu legado de compartilhar o seu conhecimento obrigado bom dia
Uns comentários sobre esse código:
1) um clique, depois dois cliques, depois um clique, depois dois cliques, nesta sequencia, é exigido nesta implementação. Não é possível fazer dois cliques, depois dois cliques porque o código vai entender um clique, dois cliques, um clique.
2) Se o dois cliques for pra ser interpretado como um clique duplo como no mouse, tem que mudar a abordagem.
Interpretei certo?
Entendi. Com certeza funciona!
olá Francikleber.
Estou postando uma implementação para sua questão. Esta implementação foi feita através de uma Máquina de Estados (vou chamá-la de "ME", para simplificar). Para tal, as seguintes observações devem ser consideradas:
1) no Hardware um Arduino UNO foi utilizado. Em um pino está conectado um LED, que indica o resultado das ações realizadas. Em outro pino está conectado um botão (Push-Bottom). Este simulará o toque. Utilizei um botão, porque achei "esquisita" a implementação do sensor de toque que encontrei para o Proteus. Caso queira utilizar o sensor, vc pode obtê-lo neste link: Lib Proteus para Sensor de Toque Capacitivo , onde também encontrará diversos outras implementações legais para o Proteus.
2) observe que o sensor TTP223 tem quatro modos de configuração possíveis. Em alguns módulos existentes no mercado, estas configurações são geralmente feitas em jumpers nas plaquinhas. A implementação que fiz, assume que o módulo está na sua configuração padrão, na qual ao ocorrer um toque, o TTP223 emite um pulso em "1" ("HIGH" para o Arduino) por um período de tempo fixo (infelizmente só consta no datasheet do TTP223 a informação sobre a latência para emissão desses pulsos, mas não há informação sobre a duração dos mesmos). O módulo considerado, pode ser algo como o mostrado na figura a seguir (esta não tem os jumpers de configuração):
3) A "inteligência" da "ME", permite identificar diversas ocorrências. Por exemplo se vc der 2 toques desligando o LED, e em seguida der novamente 2 toques, então a "ME" consegue tratar isso adequadamente e mantém o LED desligado. Da mesma forma se vc der 1 toque ligando o LED, e em seguida der novamente 1 toque, a "ME" mantém o LED ligado.
4) Como bem salientou o Vitor Augusto no início do seu post, é preciso distinguir "1 toque" de "2 toques", o que é feito pelo intervalo de tempo entre toques consecutivos. No código do programa, este intervalo é a constante "Intervalo", que mostro na figura a seguir:
Observe que no código, vc pode especificar intervalos fracionários, como por exemplo 0.25 segundos.
Se o intervalo entre toques consecutivos for menor que o tempo definido para a constante "Intervalo", a "ME" saberá que se trata da informação "2 toques". Do contrário, ela saberá que se trata de "1 toque".
Assim, ajuste a constante "Intervalo" no código, da forma que vc achar mais adequada. Mas vai uma dica: se colocar curto demais, corre o risco da "ME" entender como "1 toque" quase sempre. Se colocar longo demais, a "ME" nunca vai errar, mas vai demorar mais para que ela
responda o seu comando. Assim, somente depois de transcorrido o período de tempo dado por "Intervalo", é que a "ME" interpreta o "1 toque", o que causa um "lag" de tempo na resposta. Do ponto de vista humano, isto pode ser bem tolerável, se vc não exagerar no "Intervalo". Por exemplo, no código eu deixei esse tempo como 1.5 segundos (um segundo e meio).
Já para o "2 toques", a resposta é "instantânea", pela própria interpretação lógica da ação.
No arquivo "zip" anexado a este post, vc encontrará o código do Arduino, o Diagrama de Estados ("DE") da Máquina de Estados (em PDF e no formato "Visio"), e toda a implementação feita no Proteus, em pastas devidamente identificadas. A implementação feita no Proteus foi testada e funcionou exatamente como proposto.
O Diagrama de Estados ("DE") da Máquina de Estados é mostrado na figura a seguir, e observe como é simples (clique na figura para obter "zoom"):
O circuito implementado no Proteus, é mostrado na figura a seguir:
Você vai observar que a implementação do código do Arduino é bastante simples, e vc pode usá-la como base para implementar suas próprias Máquinas de Estados.
Fico à disposição para quaisquer dúvidas que vc ou outros Garagistas possam ter relacionados à implementação.
Espero que aprecie. Abrçs,
Elcids
anexado zip para a implementação: Maquina_francikleber_01.zip
Certo! Funciona como eu tinha imaginado quando eu li a pergunta.
MESTRES AJUDOU MUITO MUITO MESMO , MUITO OBRIGADO , GOSTARIA DE SABER SE PODERIA ENVIAR UM CONTATO PRA FAZER UM ORÇAMENTO PRA MIM , CASO INTERESSE PODE ENVIAR SEU CONTATO OU MANDAR AQUI NO EMAIL LIVINMOVEIS@GMAIL.COM OBRIGADO
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por