TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

PROJETO DE SEMÁFORO PARA CRUZAMENTO DE DUAS VIAS EM ARDUÍNO

Por:   •  20/6/2017  •  Seminário  •  2.126 Palavras (9 Páginas)  •  2.049 Visualizações

Página 1 de 9

PROJETO DE SEMÁFORO PARA CRUZAMENTO DE DUAS VIAS EM ARDUÍNO

Auziane Santos de Moraes

Bruno Seiji Fujihara Merícias

Emerson Santos de Oliveira Junior

Kárytha de Paula Nascimento

Rodrigo Lisboa Monteiro

  1. Introdução

Com o objetivo de aplicar os conhecimentos desenvolvidos a respeito de programação e implementação de circuitos na placa Arduino Uno, na disciplina Projetos de Engenharia I, esse trabalho consistiu na composição de um circuito elétrico que simula o funcionamento de semáforo.  Dessa forma, esse trabalho possui relevância para o aperfeiçoamento do aprendizado dos alunos sobre programação em hardware e conhecimentos básicos sobre circuitos.

Para tanto, foram criados por meio de LED’s três semáforos, sendo dois para simular a circulação de veículos em duas vias e um para o tráfego de pedestres, os quais possuem seu tempo de abertura e fechamento regulados por meio da programação do circuito. Em vista disso, no software do sistema implantado na placa foi utilizada a função delay para cada LED a fim de regular o tráfego de veículos e de pessoas, tendo em vista que a abertura ou fechamento do sinal poderia ser alterado por meio dos botões empregues na protoboard.

  1. Metodologia

A primeira etapa do projeto foi a montagem do circuito com a sinalização das duas vias (veículos e pedestres). Isso se deu com a inserção de LED’s e resistores ligados em série, além do uso de chaves com o sistema pull down.

Cada LED de 2V foi conectado em série com um resistor de 300Ω ou de 103Ω,  a fim de distribuir a tensão para alcançar a voltagem adequada de 5V transmitida a partir dos pinos do arduino. As chaves foram conectadas diretamente com o pino de alimentação de 5V proveniente do arduino em um dos lados da chave. O outro lado da chave foi conectado em um resistor de 103Ω ligado ao GND e em um pino de entrada digital, o que caracteriza um sistema pull-down.

A segunda etapa do projeto foi voltada para a implementação do código fonte no arduino. Utilizando o IDE do arduino aplicamos conceitos de funções, if’s e laços por meio de for. Inicialmente, utilizando a função pinMode declarou-se se os pinos são de entrada ou saída. Com a função digitalWrite realizou-se o acender e apagar dos LED’s declarando os parâmetros entre HIGH e LOW.

  1. Implementação

[pic 1]

/*k=19750;                    

  EsperaMan(k);        

  if(man==1)

    FuncM();

   

    k é o tempo de delay que será dividido por 50 na função EsperaMan.  */

int verdeA = 13;             // A, B são os faróis dos cruzamentos A e B, respectivamente. C são os faróis de pedestres.

int amareloA = 12;

int vermelhoA = 11;

int verdeB = 10;

int amareloB = 9;

int vermelhoB = 8;

int verdeC = 6;

int vermelhoC = 7;

int botao2 = 2;

int botao3 = 3;              // botao2 e botao3 representam os botões 2 e 3, respectivamente.

int estbotao2 = 0;           // declara estado do botao(estbotao2 e estbotao3) como 0. 0 é desligado. HIGH é ligado.

int estbotao3 = 0;

int man=0;

int y=0, k=0;

void setup()

{                

  pinMode(verdeA, OUTPUT);      // Declara se cada pino é de entrada ou de saída. INPUT é de entrada e OUTPUT de saída.

  pinMode(amareloA, OUTPUT);

  pinMode(vermelhoA, OUTPUT);

  pinMode(verdeB, OUTPUT);

  pinMode(amareloB, OUTPUT);

  pinMode(vermelhoB, OUTPUT);

  pinMode(verdeC, OUTPUT);

  pinMode(vermelhoC, OUTPUT);

  pinMode(botao2, INPUT);

  pinMode(botao3, INPUT);

  Serial.begin(9600);

 

  attachInterrupt(1, Man, RISING);   // attachInterrupt declara que se o pino 3 receber um pulso, a função Man é chamada imediatamente.

}

void loop()

{

  int i=0, y=0;

  int contbotao2 = 0;           // declara contador(contbotao2) que verifica se algum pedestre já apertou o botão alguma vez.

  estbotao2 = 0;

 

  digitalWrite(verdeA, HIGH);

  digitalWrite(vermelhoB, HIGH);

  digitalWrite(verdeC, HIGH);  

  k=19750;                     // k é o tempo do delay que será usado na função EsperaMan.

  EsperaMan(k);        

  if(man==1)

    FuncM();       //19,75seg. liga verdeA, vermelhoB e verdeC.

  digitalWrite(verdeA, LOW);

  digitalWrite(amareloA, HIGH);

  digitalWrite(verdeC, LOW);

  digitalWrite(vermelhoC, HIGH);

  digitalWrite(verdeC, HIGH);

  k=5000;

  EsperaMan(k);        //24,75seg. Desliga verdeA, verdeC. Liga amareloA, vermelhoC e verdeC.

  if(man==1)

    FuncM();

  digitalWrite(amareloA, LOW);

  digitalWrite(vermelhoA, HIGH);

  k=2000;

  EsperaMan(k);        //26,75seg.

  if(man==1)

    FuncM();        

  digitalWrite(verdeC, LOW);

  digitalWrite(vermelhoC, HIGH);

  digitalWrite(verdeB, HIGH);

  digitalWrite(vermelhoB, LOW); //liga verdeB e vermelhoC. Desliga vermelhoB e ver.

  for(i=0;i<1185;i++)                                                               // laço para analisar se o botão2 é pressionado. Se botão for pressionado, o semáforo de pedestre se abre.

  {

    estbotao2 += digitalRead(botao2);  // estbotao2 recebe valor HIGH ou LOW.

    if (estbotao2 == HIGH)

    {

        k=2000;

        EsperaMan(k);        

        if(man==1)

          FuncM();  

        digitalWrite(verdeB, LOW);

        digitalWrite(amareloB, HIGH);

        k=5000;

        EsperaMan(k);        

...

Baixar como (para membros premium)  txt (9 Kb)   pdf (189.1 Kb)   docx (81.7 Kb)  
Continuar por mais 8 páginas »
Disponível apenas no TrabalhosGratuitos.com