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

Os Sistemas Embarcados

Por:   •  4/4/2017  •  Trabalho acadêmico  •  5.237 Palavras (21 Páginas)  •  317 Visualizações

Página 1 de 21

Sistemas Embarcados

 

 

  1. Projete o software embarcado de um semafórico digital para ser implementado em um micro controlador compatível com o arduíno studio. Conseidere que este  software será instalado em um sinal de transito conforme definido abaixo:

 

 

[pic 1] 

  1. Especifique os pinos utilizados para cada saída

       #define VDP 2 //VERDE DA PRINCIPAL

        #define AMP 3 //AMARELO DA PRINCPAL

        #define VMP 4 // VERMELHO DA PRINCIPAL

        #define VDS 5 // VERDE DA SECUNDARIA

        #define AMS 6 // AMARELO DA SECUNDARIA

        #define VMS 7 // VERMELHO DA SECUNDARIA

        #define BTN1 0 // BOTÃO DA PRINCPAL

        #define BTN2 1 // BOTÃO DA SECUNDARIA

        int pins[6]= {VDP, AMP,VMP,VDS,AMS,VMS};

        int btns[2] = {BTN1,BTN2};

        int states1[6] ={HIGH,LOW,LOW,LOW,LOW,HIGH};

        int states2[6] ={LOW,HIGH,LOW,LOW,LOW,HIGH};

        int states3[6] ={LOW,LOW,HIGH,HIGH,LOW,LOW};

        int states4[6] ={LOW,LOW,HIGH,LOW,HIGH,LOW};

          void setup()

          {

                            for(int i = 0; i < 6; i++)

                          {

                               pinMode(pins[i], OUTPUT);

                          }

                     for(int i = 0; i < 2; i++)

                    {

                               pinMode(btns[i], INPUT);

                            }

          }

  1. Escreva o código e mostre o resultado de sua execução (sugestão: utilize printf para mostrar o sinal de cada pino(HIGH ou LOW), considerando os tempos de:
  1. Amarelo = 5 segundos para ambos os casos
  2. Verde principal = 50 segundos
  3. Verde Secundário = 25 Segundos  
  4. Existe um tempo de 5 segundos entre o fechamento de um sinal até que o sinal na outra via seja aberto.  

void setstate(int newstate[])

{

         for (int i=0; i<6; i++)

{

                        digitalWrite(pins[i],newstate[i]);

            }

}

void setstate(int statenumber)

{

            switch (statenumber)

{

                    case 1:  setstate(states1);

                                       break;

                      case 2:  setstate(states2);

                                       break;

                      case 3:  setstate(states3);

                                       break;

                     case 4:  setstate(states4);

                                       break;

                }

 }

 void loop()

{

                setstate(1);

                delay(50000);

                setstate(2);

                delay(5000);

                setstate(3);

                delay(25000);

                setstate(4);

                delay(5000);

   }

   void blink()

   {

    }

  1. Apresente o diagrama de estados

[pic 2]

[pic 3][pic 4]

   Tempo: 25 segundos                                              Tempo: 5 segundos                                             Tempo: 5 segundos

            Sinal Secundário                                                     Sinal Secundário                                                 Sinal Secundário

[pic 5][pic 6][pic 7]

[pic 8][pic 9][pic 10][pic 11]

        Tempo: 50 segundos                                                      Tempo: 5 segundos                                          Tempo: 5 segundos

           Sinal Principal                                                                 Sinal Principal                                                   Sinal Principal

                   

  1. Escreva o código e mostre o resultado de sua execução(sugestão: utilize printf para mostrar o sinal de cada pino(HIGH ou LOW)
  2. Agora repita o item anterior fechando somente o sinal quando estiverem carros esperando o sinal abrir, garantindo que a via Primária tem prioridade e, que a via secundária tem prioridade na ausência de veículos na via  principal.

            #define VDP 2

            #define AMP 3

            #define VMP 4

            #define VDS 5

            #define AMS 6

            #define VMS 7

            #define BTN1 0

            #define BTN2 1

            int pins[6]= {VDP, AMP,VMP,VDS,AMS,VMS};

            int btns[2] = {BTN1,BTN2};

            int states1[6] ={HIGH,LOW,LOW,LOW,LOW,HIGH};

            int states2[6] ={LOW,HIGH,LOW,LOW,LOW,HIGH};

            int states3[6] ={LOW,LOW,HIGH,HIGH,LOW,LOW};

            int states4[6] ={LOW,LOW,HIGH,LOW,HIGH,LOW};

            int viaP=5;

            int viaS=0;

            int p=0;

            void setup(){

                        for(int i=0;i<6;i++){

...

Baixar como (para membros premium)  txt (11.9 Kb)   pdf (109 Kb)   docx (32.9 Kb)  
Continuar por mais 20 páginas »
Disponível apenas no TrabalhosGratuitos.com