[RESOLVIDO] Dúvida no código: como cancelar a senha ao abrir um switch

Amigos, esse sistema é de alarme de carro que funciona assim: quando a porta do carro abre (representada por um switch circulado em vermelho na imagem), aparece "Porta aberta"no LCD. Quando entramos no carro e fechamos a porta, o sistema ativa automaticamente e pede uma senha para "liberar o acesso", digamos assim. Pois bem, a parte de digitar senha e liberar o acesso está OK.

A única dificuldade é que, se no meio da digitação da senha (são quatro dígitos, vamos supor que eu digite dois e queira sair do carro) eu abrir a porta do carro, ele não aparece "Porta aberta", e nem se eu fecho ela de volta, ele pede a senha para liberar o acesso.

Se não consegui ser bem claro, por favor, me avisem. Eu omiti partes do código que dizem respeito ao funcionamento do LCD, para ficar mais limpo o post.

Código atualizado aqui.

Muito obrigado.

Exibições: 629

Responder esta

Respostas a este tópico

Oi FRC, bom dia.

Uma sugestão minha no tópico:  http://labdegaragem.com/forum/topics/sugest-o-de-como-postar,

é que os amigos não colem o seus codes na área de texto.

O tópico fica extenso na pagina inicial, dificultando muito para que lê o tópico principalmente em

dispositivos móveis, e ainda o texto do code perde sinais e formatação.

Quando vou analisar um code, acho bem mais fácil descarrega-lo na minha pasta "Temp" e

abri-lo na IDE do arduino.

 Veja bem é apenas uma sugestão.

A forma mais limpa, é anexar este mesmo code como um arquivo clicando em:" Deseja carregar arquivos? ".

Ainda é possível você fazer isto, e apagar o texto do seu code no seu tópico, e torna-lo bem limpo.

Pode postar o seu code completo, que prometo dar uma olhada nele e sugerir alguma mudança.

Como estou em viagem, só não posso prometer testa-lo, pois não tenho aqui os recursos para faze-lo.

Rui

Bom dia Rui, desculpe a bagunça. Já limpei a casa :) Como é apenas uma imagem do esquema, pensei ser melhor deixar no post mesmo. O que falta no código é apenas algumas linhas de funcionamento do LCD, mas ele já funciona perfeitamente.

Oi FRC, a imagem é ótima manter. 

Uma imagem fala mais que mil palavras.

Anexe o arquivo com seu code aqui em "Deseja carregar arquivos", pra que eu

possa dar uma olhada nele.

Rui

KKKKK rui.ino. parente da rui.ina.

Vou dar uma espiada nele.

Rui

kkkkkkkkkkkkk

Ficou engraçado, mas não apropriado, creio que ficaria melhor se: eu_nunca_a_rui.ino

Abs.

Oi FRC, boa tarde.

Condições:


Liga o arduino com a porta aberta.
entra no carro e fecha a porta
digita 2 dígitos e abre a a porta.

seguindo a lógica do seu code:


Na função setup

if (statusPorta == HIGH)        // se a porta está fechada...
key_init();                            // pedir pra digitar a senha
else
lcd.print("Porta aberta");

Imprime porta aberta e vai para o loop

Na função loop

if (portaEstaAberta())            // chama  portaEstaAberta()

Na função portaEstaAberta

statusPorta = digitalRead(sensorPorta);          // verifica se a porta está aberta ou fechada
if (statusPorta == LOW)
{
return false;

Se statusPorta == HIGH nem entra no if e retorna True

Se statusPorta == LOW retorna "false" e sai da função,


então pra que o
if (!jaMostrouPortaAberta)
{

Arduino - Return

Terminate a function and return a value from a function to the calling
function, ..

Experimente colocar o return false após o fechamento deste if.

Por enquanto foi o que vi no code. Se eu não entendi corretamente, por favor pode me corrigir.

Rui

Rui, bom dia. Corrigi algumas linhas que confundiam entre porta aberta/fechada.

Código atualizado.

Oi FRC, bom dia

Segue uma modificação que fiz no seu code ( versão anterior a esta que voce postou agora),

usando o interrupt do port 2 (interrupt 0)

Veja que acrescentei uma linha na função setup e uma função nova.

Teste e depois conte o resultado.

Não tenho como testar aqui.

http://pastebin.com/Bvc5XfZU

Rui

RC, boa tarde.
Segue fluxograma do seu code no estado atual.
Rui

RV,

Você deveria ser declarado santo, e ganhar o premio nobel da gentileza e boa intenção com o próximo, desde NY USA, fazer o fluxo na unha para atender uma solicitação... só você mesmo amigo, é um orgulho ter você como amigo.

Grande abraço!

CK

Oi SL CK, bom dia.

Fico muito lisonjeado com o seu elogio e sei que gosta de pessoas que ajudam o próximo sem nada exigir.

Sei também que você por muitas vezes foi visto aqui fazendo algo similar, só que em forma

de video, e também por isto todos aqui tem muito apreço por você.

O FRC, é uma destas pessoas, que dedica parte do seu tempo a ensinar informatica à crianças de

pouca disponibilidade financeira.

E nada mais justo do que dedicar ainda mais parte do meu tempo à pessoas assim.

Novamente, obrigado

Rui 

Oi SL RV,

Sem duvida o colega merece a atenção de todos os que possam ajuda-lo.

Grande abraço

CK

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço