Projeto Semáforo com Prioridade


#1

Senhores muito bom dia!
Preciso de ajuda para o caso abaixo:
Tenho 03 sensores com 03 semáforos distintos.
Preciso estabelecer uma prioridade na programação, sendo:
Condição inicial: Semáforo 01 acesso e semáforo 02 e 03 ficam vermelhos.
O semáforo 01 tem prioridade, logo se um carro chegar ao mesmo tempo no sensor 01, 02, e 03 sempre a prioridade é do sensor 01 enviar informação para o semáforo 01 ficar verde.
No caso, preciso que o semáforo 02 e 03 respeitem uma ordem sendo, Se chegar dois carros ao mesmo tempo no 02 e 03, primeiro 02, em seguida 03 e assim por diante.
Se chegar três carros no 02, um carro no 03 e um carro no 01 ao mesmo tempo, o programa deveria ser capaz de dar prioridade para o 01 (deixando o semáforo 01 verde) e ir fazendo uma fila de prioridade à media que os carros fossem chegando nos demais semáforos.

Alguém tem alguma ideia de como eu posso fazer isso?
Muito obrigado


#2

cadeia de SE’s:
se sensor1=1 então verde1
senão
se sensor2=1 então verde2
senão
se sensor3=1 então verde3


#3

O meu caro!
Muito obrigado pela ajuda… já tentei de tudo e esgotei minhas
possibilidades.
Já fiz as medições até com multimetro para ver se o problema não seria
eletrônico em minha montagem, mas tudo se leu corretamente.
O que ocorre é que no protótipo (eu implementei uma parte com comandos
While, já tentei com do …while etc) simplemente funciona exatamente bem na
primeiro botão e no segundo e terceiro botão (que representam os sensores)
não funcionam.
Eu já alterei as portas físicas no protótipo e nada.
Já alterei logicamente o botão 03 para o botão 01(que funciona legal) e
acontece o mesmo problema… somente o botão NA POSIÇÃO FÍSICA 01 funciona
corretamente, o dois e o três apresentam lentidões enormes como se ficassem
travadas no while… e o engraçado é que é exatamente a mesma programação do
botão 01…

Não consta perguntar né rs, mas será que você poderia me ajudar via Skype
qualquer dia? mostrando uma gravação ou senão eu posso fazer um vídeo e te
mandar por whatsapp ou mesmo um link.

Poderia me ajudar ou saberia quem eu poderia fazer algo semelhante à isso?
Não consigo evoluir em mais nada com conhecimento que tenho até então.

Abraços e muito obrigado


#4

Acho que imagino onde esteja seu problema: Você deve estar utilizando uma função de tempo como o delay, essa função trava todo o código, sugiro que você mude para um biblioteca especifica com timer.