domingo, 17 de janeiro de 2021

EX05 - Programa: Semáforo de duas vias com Arduino

Figura 01 - Semáforo de duas vias.
Iremos programar um modelo simples de semáforo com duas vias. 

Para esta aplicação utilizei o Módulo LED 8mm Tipo Semáforo que é composto por 3 LEDs, sendo um na cor verde, um na cor amarela e outro na cor vermelha. A disposição dos LEDs no módulo faz com que o mesmo fique parecido com um semáforo e isto possibilita projetos bem interessantes. O Módulo LED 8mm Tipo Semáforo conta com os pinos para controle individual de cada LED e a configuração dos LEDs é catodo comum. 

A primeira coisa que fazemos no início do programa é colocar uma pequena observação sobre o nome do programa, sua função e quem o criou:

1
2
3
// Programa : Semáforo Rua Avenida com Arduino
// Autor : Sinésio Gomes
// Data : 16/05/2023
  1. Comece uma linha com barras duplas ( // ) e tudo o que vier depois dessa linha será tratado como um comentário. Uma das boas práticas de programação é documentar o seu código por meio das linhas de comentário. Com elas, você pode inserir observações sobre como determinada parte do programa funciona ou o que significa aquela variável xyz que você criou. Isso será útil não só para você, se precisar alterar o código depois de algum tempo, como também para outras pessoas que utilizarão o seu programa.

Após os comentários, vem a estrutura do setup(). É nela que definimos que os pinos de 8 a 13 do Arduino serão utilizados como saída.

4
5
6
7
8
9
10
11
12
13
14
void setup()
{
  //Define as portas dos led's como saídas
  pinMode(8, OUTPUT);
  pinMode(9, OUTPUT);   pinMode(10, OUTPUT);
pinMode(11, OUTPUT); pinMode(12, OUTPUT); pinMode(13, OUTPUT);
}

Por último, temos o loop(), que contém as instruções para acender e apagar os led's da vias, e também o intervalo entre essas ações.

15
16
17
18
19
20
21
22
23
24
25
26





50
void loop()
{
  //Acende e apaga os led's de cada semáforo das vias
  digitalWrite(8, HIGH);
digitalWrite(9, LOW); digitalWrite(10, LOW); digitalWrite(11, LOW); digitalWrite(12, LOW); digitalWrite(13, HIGH);
   
  //Aguarda o intervalo especificado
  delay(6000);
      
  // A estrutura de programação acima irá se repetir para cada intervalo
//de funcionamento do semáforo, mudando apenas o led que será acionado
//e o intervalo de tempo.
 
}

  1. A linha do código contendo digitalWrite(13, HIGH) coloca a porta 13 em nível alto (HIGH, ou 1), acendendo o led embutido na placa. 
  2. O comando delay(6000), especifica o intervalo, em milissegundos, no qual o programa fica parado antes de avançar para a próxima linha.
  3. O comando digitalWrite(13, LOW), apaga o led, colocando a porta em nível baixo (LOW, ou 0), e depois ocorre uma nova parada no programa, e o processo é então reiniciado.
Figura 02 - Módulo LED 8mm.
Arquivo do código fonte - Semáforo de duas vias está disponível em:  
23_05_01_Semáforo_duas_vias_SRG (PDF).

O arquivo do diagrama elétrico - Semáforo de duas vias estará disponível em: 23_05_01_Circuito_Semáforo_duas_vias_SRG (PDF).

Exercício proposto pelo Professor Murilo Henrique Miranda.

© Direitos de autor. 2023: Gomes; Sinésio Raimundo. Última atualização: 16/05/2023 

Nenhum comentário:

Postar um comentário