Índice:
2025 Autor: John Day | [email protected]. Última modificação: 2025-01-13 06:58
Neste tutorial aprendemos como criar um semáforo e como controlá-lo gerenciado pelo cartão Drivemall.
Veremos como criar semáforos para carros e pedestres com um botão de reserva.
Caso não tenhamos o drivermall podemos usar o arduino, mas abaixo o link para o desenvolvimento do Drivemall.
A vantagem de preferir o Drivemall ao invés da placa Arduino clássica é a de reduzir a complexidade das conexões levando a uma configuração mais organizada. No entanto, isso é opcional: todos os resultados ainda são válidos com a placa arduino, uma breadboard e jumpers duplos suficientes para conexões.
Etapa 1: Lista de materiais
- Baord Drivemall / ArduinoMega
- 4 led vermelho
- 4 led verde
- 4 led amarelo
- 8 transistor npn
- 16 resistores 220 ohm
- 8 resistores de 22k ohm
- 1 resistor 1k ohm
- cabo
- 1 botão
Etapa 2: conexões
O semáforo é controlado por dois transistores PNP conectados de acordo com o diagrama da figura 2. O funcionamento do transistor PNP é muito simples quando a base está conectada ao GND a passagem de corrente entre o emissor e o coletor é habilitada.
Usamos transistores para diminuir o número de pinos da placa necessários para ligar cada semáforo.
Portanto, se ambas as BASES forem VDD o LED vermelho acenderá ou para ficar mais claro o LED 21 17 14 6.
Se alimentarmos a BASE do segundo transistor, os LEDs 3 15 18 19 acenderão.
Por último, se conectarmos ambos os BASES ao GND, os LEDs 20 16 13 10 acenderão
Em vez disso, a conexão do botão é a resistência clássica conectada ao GND em um pino do botão e o outro ao VDD.
Os Arduino Pins registrados são aqueles de 1 a 10.
Etapa 3: Firmware
Periodicamente, apenas um dos semáforos fica verde. Quando o botão de pedestre é pressionado, no próximo período o semáforo para pedestres muda para verde
Para gerenciar a chamada do botão para pedestre sem demora em tempo real, foi utilizada a função millis (), que retorna o tempo em milissegundos desde que o aparelho foi ligado, para que possa ser utilizado
exemplo
sem sinal long currentMillis = millis ();.
if (currentMillis - previousMillis> 2000 and bt03 == true e bbot == false)
{
Serial.println (1);
T1 ();
anteriorMillis = currentMillis;
bt1 = verdadeiro;
BT03 = falso;
}
Carregamos a hora atual em cada loop e se a corrente menos a anterior for maior que o tempo escolhido entramos no if para mudar o estado do semáforo indo para ativar a variável booleana para a próxima transição, é claro a primeira variável booleana já é verdadeiro antes da entrada do loop.
Etapa 4: isenção de responsabilidade
Este tutorial foi produzido como parte do projeto Makerspace for Inclusion, cofinanciado pelo Programa Erasmus + da Comissão Europeia.
O projeto visa a promoção de uma forma de educação informal como meio de fomentar a inclusão social dos jovens, a educação informal como se encontra nos makerspaces.
Este tutorial reflete apenas as opiniões dos autores, e a Comissão Europeia não pode ser responsabilizada por qualquer uso que possa ser feito das informações nele contidas.