Pular para o conteúdo principal

Autobots: Projeto I - Semáforo de travessia de pedestres.

 Projeto I - Semáforo de travessia de pedestres. 
 Alunos: Daniel, Dierles, Jean, Pedro Dalvi, Pedro Paulo.

Trata-se de uma atividade avaliativa da disciplina de Algoritmos e Estrutura de Dados do Curso de Engenharia de Controle e Automação do IFES - Serra.

O projeto controla um semáforo de faixa de pedestres com acionamento por botoeira para diminuir o tempo do semáforo verde. O semáforo segue o ciclo normalmente. Quando a botoeira para pedestre é pressionada,  o tempo em verde do semáforo é reduzido. O botão somente é lido quando o semáforo
em verde, pois se ele está em vermelho os pedestres estão atravessando.
 
A contagem do tempo no primeiro intervalo do verde foi dividido em partes para dar tempo de ler o botão no ciclo de scan do controlador. Não há necessidade de ler o botão no segundo intervalo do verde, pois o semáforo vai para vermelho assim que acabar a contagem. 


Componentes utilizados:

01 - placa Arduino Uno;
01 - placa Protoboard;
02 - LEDs vermelhos;
02 - LEDs verdes;
01 - LED amarelo;
05 - resistores 1K ohm;
01 - resistor 10K ohm;
01 - chave táctil;
Jumpers diversos.

 Circuito de montagem do projeto:
Resultado de imagem para circuito semaforo pedestre botoeira arduino

 Algoritmo projetado na IDE Arduino:

// Pinos utilizados
const int S_VD = 10;      // Semaforo Verde
const int S_AM = 11;     // Semaforo Amarelo
const int S_VM = 12;     // Semaforo Vermelho
const int P_VD = 9;     // Pedestre Verde
const int P_VM = 8;     // Pedestre Vermelho
const int button = 2;   // Botão do Pedestre

// Variaveis
int contador=0;          // Contador auxiliar
int buttonState=0;      // Estado do botão

// Declaração dos pinos
void setup() {
  pinMode(S_VD, OUTPUT);
  pinMode(S_AM, OUTPUT);
  pinMode(S_VM, OUTPUT);
  pinMode(P_VD, OUTPUT);
  pinMode(P_VM, OUTPUT);
  pinMode(button, INPUT);
}

//Programa principal
void loop() {
 
  // Semaforo Verde - Pedestre Vermelho
  digitalWrite(S_VD, HIGH);
  digitalWrite(S_AM, LOW);
  digitalWrite(S_VM, LOW);
  digitalWrite(P_VD, LOW);
  digitalWrite(P_VM, HIGH);
 
  while (contador < 30){     // Tempo de 3000ms divididos em 30x100.
    if (digitalRead(button)==HIGH){
      buttonState = 1;         // Armazena caso o botão seja pressionado
    }
    delay(100);                    
    contador++;                 // Incrementa o contador
  } 
  if (buttonState == 0){    // Se ninguem apertar o botão, conta mais tempo
    delay(3000);
  }
  if (buttonState == 1){    // Se alguem pressionou o botão, zera o estado do botão e pula para o proximo
    buttonState = 0;
  }
 
  // Semaforo Amarelo - Pedestre Vermelho
  digitalWrite(S_VD, LOW);
  digitalWrite(S_AM, HIGH);
  digitalWrite(S_VM, LOW);
  digitalWrite(P_VD, LOW);
  digitalWrite(P_VM, HIGH);
   
  delay(1000);  // Tempo semaforo em amarelo  

  // Semaforo Vermelho - Pedestre Verde
  digitalWrite(S_VD, LOW);
  digitalWrite(S_AM, LOW);
  digitalWrite(S_VM, HIGH);
  digitalWrite(P_VD, HIGH);
  digitalWrite(P_VM, LOW);
     
  delay(3000);  // Tempo semaforo em vermelho 

  contador=0;   // Reseta o contador auxiliar
}



 Abaixo segue o Link para visualização do vídeo de funcionamento do projeto (YouTube).

 LinK para o vídeo de funcionamento do projeto.

 Obrigado!!!









Comentários

Postagens mais visitadas deste blog

Sejam Bem Vindxs.

Descontrolados - Projeto semáforo

1- Funcionamento do semáforo O programa desenvolvido simula dois semáforos, uma para carros e outro para pedestres, sendo que o semáforo para carros, sempre estará verde e o para pedestres vermelho, sendo que o sinal para carros só será fechado e o para pedestres aberto casso seja apertado pelo pedestre o botão que dará o comando para que isso ocorra. Este algoritmo utiliza seis entradas da placa Arduíno, as entradas 6, 7, 8, 9, 10 são para LEDs e são declaradas como variáveis de saída, e a entrada número 5 é utilizada para o botão, e declarada como variável de entrada. Antes de iniciar o código do programa, o estado do botão foi atribuído o valor zero, ou seja, no inicio do código o botão estará desligado. A variável ledPin corresponde a luz verde, led2 à luz amarela e led3 à luz vermelha do semáforo para carros. A variável led4 corresponde à luz verde e a led5 à luz vermelha do semáforo do pedestre. A variável botão corresponde ao botão a ser apertado pelo pedestre. Inici...