Realizado

Projeto em Arduino: semáforo com temporizadores e modo noturno

Publicado em 28 de Março de 2022 dias na Engenharia e Manufatura

Sobre este projeto

Aberto

Semáforo com temporização controlada por interrupções
o semáforo opera normalmente aberto para os carros e fechado para os pedestres. Portanto, o sistema deve ser iniciado nessa condição;
quando um pedestre aperta o botão, o sistema:
1. Aguarda um tempo de espera de 100ms;
2. Mostra a luz amarela para os carros por algum tempo;
3. Fecha para os carros e, simultaneamente, abre para os pedestres;4. Displays de 7 segmentos exibem o tempo restante para travessia dos pedestres. O display dos veículos inicia a contagem a partir de 9 e o display dos pedestres a partir de 5. A cada segundo, o valor mostrado nos displays é decrementado;
5. Ao chegar ao valor zero, o display e a luz vermelha dos pedestres começam a piscar (0,5s apagados e 0,5s acesos) indicando que o semáforo irá fechar em breve. Ao mesmo tempo, a contagem regressiva do semáforo dos veículos deve prosseguir.
6. Quando a contagem associada aos veículos atinge zero, o semáforo fecha para os pedestres e, simultaneamente, abre para os carros (isto é, retorna ao estado inicial). Os displays são desligados.
7. À Noite, o sistema de apertar o botão é desligado e o semáforo somente pisca a luz amarela para os carros e vermelha para os pedestres, retornando ao estado original na manhã seguinte. O grupo deve utilizar um sensor tipo LDR para detectar a quantidade de luz no ambiente de modo a determinar se é dia ou noite. O sistema deve ser capaz de ignorar mudanças temporárias na luz, tais como a passagem de um pássaro sobre o sensor durante o dia, ou a incidência de um farol de carro durante a noite. Ou seja, apenas alterações de luminosidade que perdurem por pelo menos alguns segundos podem mudar o modo de operação de diurno para noturno ou vice-versa.

Devido à existência de tarefas concomitantes (temporização, acionamento dos displays e monitoramento do botão e do sensor de luminosidade), o uso de espera ativa pode inviabilizar o funcionamento do sistema. Dessa forma, os grupos devem utilizar interrupções periódicas do temporizador e não será permitido o uso de funções como delay() ou qualquer outro tipo de espera ativa. Também não é permitido o uso da função milis() ou qualquer outra equivalente. A temporização do sistema será realizada através de interrupções periódicas geradas através do código disponibilizado pelo professor.

Categoria Engenharia e Manufatura
Subcategoria Outros
Tamanho do projeto Médio
Isso é um projeto ou uma posição de trabalho? Um projeto
Disponibilidade requerida Conforme necessário

Prazo de Entrega: 06 de Abril de 2022

Habilidades necessárias