Bom dia Pessoal, estou precisando de uma ajuda (Mais um projeto de semaforo rs) - Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)2024-03-28T08:28:04Zhttps://labdegaragem.com/forum/topics/bom-dia-pessoal-estou-precisando-de-uma-ajuda-mais-um-projeto-de?commentId=6223006%3AComment%3A723985&x=1&feed=yes&xn_auth=noBoa tarde DSB,
para organizar…tag:labdegaragem.com,2019-12-01:6223006:Comment:7239852019-12-01T19:14:16.472Zmineirin RVhttps://labdegaragem.com/profile/RuiViana
<p>Boa tarde DSB,</p>
<p>para organizar um código é sem bom separar as atividades (funções).</p>
<p>Isto ajuda "visualizar" o código com mais facilidade,</p>
<p>e diminui o uso de repetições desnecessárias.</p>
<p>Sobre bool (booleana) vou explicar aqui.</p>
<p>bool é um tipo de variável que só admite 2 situações ou é verdadeira( True) ou falsa( false).</p>
<p>O uso de bool estabelece alguns bloqueios necessários à alguma lógica de fluxo de um programa</p>
<p>de uma forma simples.</p>
<p>Vou…</p>
<p>Boa tarde DSB,</p>
<p>para organizar um código é sem bom separar as atividades (funções).</p>
<p>Isto ajuda "visualizar" o código com mais facilidade,</p>
<p>e diminui o uso de repetições desnecessárias.</p>
<p>Sobre bool (booleana) vou explicar aqui.</p>
<p>bool é um tipo de variável que só admite 2 situações ou é verdadeira( True) ou falsa( false).</p>
<p>O uso de bool estabelece alguns bloqueios necessários à alguma lógica de fluxo de um programa</p>
<p>de uma forma simples.</p>
<p>Vou mostra no caso do seu programa:</p>
<p>Ao pressionar o botão 1 eu digo para uma variável bool, que dei o nome, "flag_1" que ela terá </p>
<p>o valor de "true".</p>
<p></p>
<p>No fluxo do programa (void controleTempo() ) eu testo se "flag_1" = "true".</p>
<p>Se for, eu então defino que qdo acender o vermelho o azul tb tem que ser acendido.</p>
<p>E para criar esta situação e informar através da variável bool "espec_1 ".</p>
<p>Antes de acender o vermelho, vou verificar se o botão foi pressionado. Se "espec_1 " = "true",</p>
<p>se for, acende o azul tb.</p>
<p>QQ dúvida ainda, pode perguntar.</p>
<p></p>
<p>Sobre o uso de byte. É uma forma reduzida de usar um só valor para todas situações.</p>
<p>Como um byte tem 8 bits, e eles podem ser ligados (bitSet() 1) e desligados(bitSet() 0) ou bitClear(),</p>
<p>individualmente, fica um código mais limpo.</p>
<p>Espero ter ajudado.</p>
<p>RV</p>
<p></p>
<p></p>
<p></p> Boa noite.
Não entendi muito…tag:labdegaragem.com,2019-11-30:6223006:Comment:7237752019-11-30T03:29:10.122ZDario dos Santos Batistahttps://labdegaragem.com/profile/DariodosSantosBatista
<p>Boa noite.</p>
<p>Não entendi muito bem a lógica envolvendo as variáveis; "bool", "unsigned long intervalo" e "byte"</p>
<p></p>
<p>eu sei que a intervaloVD, por exemplo é o tempo para fazer o ciclo dos leds, mas não entendo a lógica de ativação usando "bool flag_1" por exemplo... e a não entendi porque usou o byte... Se puder me ajudar a entender</p>
<p>tirando isso, achei bastante interessante a forma que montou, porque estou acostumado a ver codigos onde a maior parte da lógica está…</p>
<p>Boa noite.</p>
<p>Não entendi muito bem a lógica envolvendo as variáveis; "bool", "unsigned long intervalo" e "byte"</p>
<p></p>
<p>eu sei que a intervaloVD, por exemplo é o tempo para fazer o ciclo dos leds, mas não entendo a lógica de ativação usando "bool flag_1" por exemplo... e a não entendi porque usou o byte... Se puder me ajudar a entender</p>
<p>tirando isso, achei bastante interessante a forma que montou, porque estou acostumado a ver codigos onde a maior parte da lógica está dentro do loop, e você criou varias funções e depois só chamou no loop</p> Bom dia DSB,
veja se este ske…tag:labdegaragem.com,2019-11-26:6223006:Comment:7233942019-11-26T14:45:42.196Zmineirin RVhttps://labdegaragem.com/profile/RuiViana
<p>Bom dia DSB,</p>
<p>veja se este sketch te ajuda.</p>
<p>É um pouco complexo, mas qq dúvida pode perguntar.</p>
<p>Não usei delays, para poder atender as rotinas de especiais e contagem.</p>
<p>RV</p>
<p><a href="https://storage.ning.com/topology/rest/1.0/file/get/3742411857?profile=original" target="_blank" rel="noopener">semaforo_arduino_V04.ino</a></p>
<p>Bom dia DSB,</p>
<p>veja se este sketch te ajuda.</p>
<p>É um pouco complexo, mas qq dúvida pode perguntar.</p>
<p>Não usei delays, para poder atender as rotinas de especiais e contagem.</p>
<p>RV</p>
<p><a href="https://storage.ning.com/topology/rest/1.0/file/get/3742411857?profile=original" target="_blank" rel="noopener">semaforo_arduino_V04.ino</a></p> Boa noite
1: exatamente isso…tag:labdegaragem.com,2019-11-25:6223006:Comment:7233822019-11-25T21:19:57.498ZDario dos Santos Batistahttps://labdegaragem.com/profile/DariodosSantosBatista
<p>Boa noite </p>
<p>1: exatamente isso... </p>
<p></p>
<p>2:Correto também, é que da forma que escrevi fez parecer que os dois fariam a contagem ao mesmo tempo...</p>
<p>Faz a contagem, guarda o valor para ser comparado com o outro contador, após a comparação se um dos contadores tiver o dobro de contagem será acrescido a este 5s no sinal verde.</p>
<p>Basicamente é uma simulação controle de fluxo de transito, faz a leitura e acrescenta mais tempo ao sinal aberto(verde) para a via com maior…</p>
<p>Boa noite </p>
<p>1: exatamente isso... </p>
<p></p>
<p>2:Correto também, é que da forma que escrevi fez parecer que os dois fariam a contagem ao mesmo tempo...</p>
<p>Faz a contagem, guarda o valor para ser comparado com o outro contador, após a comparação se um dos contadores tiver o dobro de contagem será acrescido a este 5s no sinal verde.</p>
<p>Basicamente é uma simulação controle de fluxo de transito, faz a leitura e acrescenta mais tempo ao sinal aberto(verde) para a via com maior volume de transito.</p>
<p></p> Boa tarde DSB,
fiz aqui a mon…tag:labdegaragem.com,2019-11-25:6223006:Comment:7235342019-11-25T17:37:08.176Zmineirin RVhttps://labdegaragem.com/profile/RuiViana
<p>Boa tarde DSB,</p>
<p>fiz aqui a montagem do seu projeto para entender o que vc já fez.</p>
<p>O funcionamento básico dos sinais estão funcionando corretamente.</p>
<p>Agora vamos às minhas dúvidas:</p>
<p>1: sobre o LED Azul:</p>
<p> Ao apertar o botão ( e segurar apertado) vc quer que o tempo do sinal verde de pedestre</p>
<p> qdo abrir, fique x segundos maior do que o tempo normal. É isto?</p>
<p>2. Não entendi bem a questão da quantidade de veículos.</p>
<p> Qdo o sinal está…</p>
<p>Boa tarde DSB,</p>
<p>fiz aqui a montagem do seu projeto para entender o que vc já fez.</p>
<p>O funcionamento básico dos sinais estão funcionando corretamente.</p>
<p>Agora vamos às minhas dúvidas:</p>
<p>1: sobre o LED Azul:</p>
<p> Ao apertar o botão ( e segurar apertado) vc quer que o tempo do sinal verde de pedestre</p>
<p> qdo abrir, fique x segundos maior do que o tempo normal. É isto?</p>
<p>2. Não entendi bem a questão da quantidade de veículos.</p>
<p> Qdo o sinal está verde vão passando veículos, se a qtde for maior do que a contagem anterior do outro </p>
<p> sinal, acrescenta x segundos no verde. É isto?</p>
<p>RV</p> Bom, vamos lá.
Primeiramente,…tag:labdegaragem.com,2019-11-23:6223006:Comment:7233172019-11-23T21:16:06.979ZDario dos Santos Batistahttps://labdegaragem.com/profile/DariodosSantosBatista
<p>Bom, vamos lá.</p>
<p>Primeiramente, muito obrigado por me responder.</p>
<p> </p>
<p>1- O funcionamento básico deve ser idêntico a um semáforo convencional, assim ele possui os três sinalizadores, verde, amarelo e vermelho, os sinalizadores dos pedestres; verde e vermelho. Estes sinalizadores possuem um tempo pré-determinado para que os Leds se apaguem e acendam.</p>
<p> </p>
<p>2- O led azul é para quando o botão que fica junto ao semáforo for acionado</p>
<p>A ideia é que luz azul sirva…</p>
<p>Bom, vamos lá.</p>
<p>Primeiramente, muito obrigado por me responder.</p>
<p> </p>
<p>1- O funcionamento básico deve ser idêntico a um semáforo convencional, assim ele possui os três sinalizadores, verde, amarelo e vermelho, os sinalizadores dos pedestres; verde e vermelho. Estes sinalizadores possuem um tempo pré-determinado para que os Leds se apaguem e acendam.</p>
<p> </p>
<p>2- O led azul é para quando o botão que fica junto ao semáforo for acionado</p>
<p>A ideia é que luz azul sirva para que os motoristas saibam que que alguém com necessidades especiais irá atravessar, então teoricamente ele irá ficar junto aos 3 sinalizadores padrões para veículos.</p>
<p>3- Quando o botão for pressionado o led azul só acenderá junto ao led vermelho, ou seja, quando o sinal estiver fechado para os veículos.</p>
<p>Também serão acrescidos alguns segundos extras para travessia do pedestre com deficiência.</p>
<p>Como serão 2 semáforos de veículos e 2 de pedestre, que estarão fazendo o controle de um cruzamento, então acho que a lógica deveria ser a seguinte:</p>
<p> </p>
<p>1ª situação</p>
<p>Semáforo 1 Veículo – Verde >>>>>>>>>>>>>> Semáforo 2 Veículo - Vermelho</p>
<p>Semáforo 1 Pedestre – Vermelho >>>>>>>>>>> Semáforo 2 Pedestre – Verde</p>
<p> </p>
<p>2ª situação</p>
<p>Semáforo 1 Veiculo – Amarelo >>>>>>>>>>>> Semáforo 2 Veiculo – Vermelho</p>
<p>Semáforo 1 Pedestre – Vermelho >>>>>>>>>>> Semáforo 2 Pedestre – Verde</p>
<p> </p>
<p>3ª situação</p>
<p>Semáforo 1 Veiculo – Vermelho >>>>>>>>>>>> Semáforo 2 Veiculo – Verde</p>
<p>Semáforo 1 Pedestre – verde >>>>>>>>>>> Semáforo 2 Pedestre – Vermelho</p>
<p> </p>
<p>4ª situação</p>
<p>Semáforo 1 Veiculo – Vermelho >>>>>>>>>>>> Semáforo 2 Veiculo – Amarelo</p>
<p>Semáforo 1 Pedestre – Verde >>>>>>>>>>> Semáforo 2 Pedestre – Verde</p>
<p> </p>
<p>Aí tem a situação após o botão pressionado que eu não tenho certeza se entram como situações a parte.</p>
<p> </p>
<p>5ª situação</p>
<p>Semáforo 1 Veiculo – Vermelho + Azul >>>>>>>> Semáforo 2 Veiculo – Verde</p>
<p>Semáforo 1 Pedestre – Verde >>>>>>>>>>> Semáforo 2 Pedestre – Vermelho</p>
<p> </p>
<p>6ª situação</p>
<p>Semáforo 1 Veiculo – Verde >>>>>>>>>>> Semáforo 2 Veiculo – Vermelho + Azul</p>
<p>Semáforo 1 Pedestre – Vermelho >>>>>>>>>>> Semáforo 2 Pedestre – Verde</p>
<p> </p>
<p>A outra parte do projeto é o “sensor”, no caso vai ser um botão (push button) que simula a leitura do volume de trânsito.</p>
<p>São 2 botões, cada um simulando sensores que fariam a leitura e cada lado do cruzamento.</p>
<ul>
<li>A minha ideia é que os “sensores” fariam a leitura por 15 segundos.</li>
<li>Ao final fariam a comparação de qual estaria com a maior contagem</li>
<li>Se o sensor com a maior contagem tiver o dobro de contagem em comparação ao outro, será acrescido 5 segundos ao seu intervalo do led verde</li>
<li>Também será acrescido 5s caso o outro sensor não tiver leitura dentro dos 15s</li>
</ul>
<p> </p>
<p>No código que postei não coloquei todas essas coisas porque não consegui, então tentei fazer o mais básico primeiro e depois ir modificando.</p>
<p> </p>
<p>Entendo a observação que fez sobre o código que fiz, até porque fui improvisando muita coisa pra compensar o que eu não conseguia ou não sabia fazer... Então acabou virando uma salada.</p>
<p> </p>
<p>Mas enfim, se puder me orientar eu agradeço muito.</p> Boa tarde DSB,
De mais info…tag:labdegaragem.com,2019-11-23:6223006:Comment:7231862019-11-23T13:32:31.219Zmineirin RVhttps://labdegaragem.com/profile/RuiViana
<p></p>
<div class="description" id="desc_6223006Comment723173"><div class="xg_user_generated"><p>Boa tarde DSB, </p>
<p>De mais informações sobre seu projeto.</p>
<p>Por exemplo qual deve ser a sequencia de acendimento dos LEDs, qual arduino está usando, etc etc.</p>
<p>analisei seu código e vi que bastante coisa pode ser melhorada.</p>
<p>O que senti muita falta foi de comentários nas linhas de código.</p>
<p>Esta é uma prática (comentar linhas) muito salutar e no futuro ajuda a você que…</p>
</div>
</div>
<p></p>
<div class="description" id="desc_6223006Comment723173"><div class="xg_user_generated"><p>Boa tarde DSB, </p>
<p>De mais informações sobre seu projeto.</p>
<p>Por exemplo qual deve ser a sequencia de acendimento dos LEDs, qual arduino está usando, etc etc.</p>
<p>analisei seu código e vi que bastante coisa pode ser melhorada.</p>
<p>O que senti muita falta foi de comentários nas linhas de código.</p>
<p>Esta é uma prática (comentar linhas) muito salutar e no futuro ajuda a você que escreveu o código lembrar </p>
<p>pra que escreveu aquela linha e pra quem vai te ajudar, o que vc pensava qdo escreveu a linha.</p>
<p>Agora em termos de funcionamento, acho que vc pode melhorar muita coisa.</p>
<p>Por exemplo:</p>
<p>Não precisa de port independente para os LEDs de pedestres, já que eles são sincronizados com os de carros. </p>
<p>Não precisa de port para os LEDs de um lado e o outro da rua, pois eles também são sincronizados.</p>
<p>Só o amarelo precisa de um port para cada um.</p>
<p>Não entendi bem o uso do LED azul.</p>
<p>RV</p>
<p>A sequencia que vi do seu projeto é assim:</p>
<p>1</p>
<p> Carros Lado 1 Lado 2 Pedestres 1 Pedestres 2 </p>
<p> Vermelho Apagado Aceso Apagado <--< Apagado <--< igual vermelho 1 </p>
<p> Amarelo Apagado Apagado </p>
<p> Verde Aceso Apagado Aceso <--< Aceso <--< igual vermelho 2</p>
<p>2</p>
<p>delay</p>
<p></p>
<p> Carros Lado 1 Lado 2 Pedestres 1 Pedestres 2 </p>
<p> Vermelho Apagado Aceso Apagado <--< Apagado <--< igual vermelho 1 </p>
<p> Amarelo Aceso Apagado </p>
<p> Verde Apagado Apagado Aceso <--< Aceso <--< igual vermelho 2</p>
<p>3</p>
<p>delay</p>
<p></p>
<p> Carros Lado 1 Lado 2 Pedestres 1 Pedestres 2 </p>
<p> Vermelho Aceso Apagado Aceso <--< Aceso <--< igual vermelho 1 </p>
<p> Amarelo Apagado Apagado </p>
<p> Verde Apagado Aceso Apagado <--< Apagado <--< igual vermelho 2</p>
<p>4</p>
<p>delay</p>
<p></p>
<p> Carros Lado 1 Lado 2 Pedestres 1 Pedestres 2 </p>
<p> Vermelho Aceso Apagado Aceso <--< Aceso <--< igual vermelho 1 </p>
<p> Amarelo Apagado Aceso </p>
<p> Verde Apagado Apagado Apagado <--< Apagado <--< igual vermelho 2</p>
<p>5</p>
<p>delay</p>
<p></p>
<p> Carros Lado 1 Lado 2 Pedestres 1 Pedestres 2 </p>
<p> Vermelho Apagado Aceso Apagado <--< Apagado <--< igual vermelho 1 </p>
<p> Amarelo Apagado Apagado </p>
<p> Verde Aceso Apagado Aceso <--< Aceso <--< igual vermelho 2</p>
<p> RV</p>
</div>
</div>
<p></p>