Boa tarde pessoal
Meu pai possui um Motorhome e com o razoável conhecimento que ele tem de elétrica/eletrônica ele criou uma caixinha com vários leds, onde cada led acende caso algo esteja errado, por exemplo: toldo aberto, escada aberta, carro ligado e farol desligado, carro desligado e lanterna ligada, válvula de água ligada, gerador ligado etc etc.
Cada vez ele coloca mais leds nessa caixinha e está ficando complicado de lembrar o que é cada coisa, então dei a sugestão pra ele de colocar um LCD com as informações, os alarmes (por exemplo: “Toldo aberto, farol desligado”) substituindo a caixinha com leds. Ele acabou me dando a missão de pesquisar como faria.
Minha formação é Sistemas de Informação mas trabalho com redes, então do curso eu aproveitei apenas o básico de lógica de programação.
Antes de comprar um Arduino para fazer os testes, baixei o Proteus (e depois achei um site chamado Tinkercad) e comecei a fazer os labs básicos acendendo led e depois comecei a criar o código do que pretendo usar.
O esboço inicial está pronto, mas gostaria da ajuda de vocês para ver se cometi alguma falha grave (gambiarra propriamente dita) e também orientações quanto ao print no LCD, não estou satisfeito com a solução que encontrei.
Do jeito que consegui fazer, com os ifs dentro do while, o sistema precisa exibir toda a mensagem no LCD para depois repetir a verificação. Com dois ou três itens em desacordo, igual o código, OK. Mas e quando eu tiver, por exemplo, 10 itens em desacordo? Vamos supor que levaria sei lá, 30 segundos passando os itens no LCD. Se eu resolver um item nos três primeiros segundos (ligar o farol) demoraria mais 27 segundos até que o print do LCD terminasse e o while e consequentemente if se repetisse para aí sim ver que o farol foi apagado.
Não sei se existe alguma solução mais prática para isso. Obrigado!!
edit: não sei porque não consegui colocar o código todo no < code >, ficou apenas metade.
Para não poluir o tópico, segue o código: https://pastebin.com/pULnCQ50