NOVO PROJETO - Gerador eólico

|

A Equipe Gedai está de volta nesse segundo semestre de 2010 agora com um projeto NOVO. Iremos fazer uma GERADOR EÓLICO de eixo vertical = TEEV(turbina eólica de eixo vertical). O ARHTE começou  galera vamos lá ;D



Para organizar melhor o blog e o projeto, decidimos criar um novo blog para postar atualizações sobre o andamento do projeto:
 http://gr-gedai3.blogspot.com/ .

NOVO PROJETO - ENVASADORA

|

A Equipe Gedai está de volta nesse primeiro semestre de 2010 agora com um projeto NOVO. Decidimos acatar a sugestão dos professores e orientadores do ARHTE, e iremos fazer uma Envasadora de Materiais Viscosos.

A descrição e as especificações mínimas da envasadora podem ser encontradas em:

Para organizar melhor o blog e o projeto, decidimos criar um novo blog para postar atualizações sobre o andamento do projeto:
 http://gr-gedai2.blogspot.com/ .

Código-fonte

|

Eis o código-fonte, com comentários.
Tem muita coisa comentada em baixo, pois foram feitos vários testes. Para achar um tempo legal para a apresentação, que foi realizada com a bicicleta parada, foram feitos testes empíricos.



#include <16F628A.h>
#include




#use delay(clock=4000000)
#fuses INTRC_IO          //internal RC oscilator, sem CLKOUT
#fuses NOWDT          //no watchdog timer -> reinicia quando da erro
#fuses NOBROWNOUT       //sem brownout -> reseta quando eh detectado brownout (?)
#fuses NOMCLR          //pino MasterClear (reset externo) usado para I/O
#fuses PUT             //Power up timer


#define TEMPO 10


void main () {
   int i, j, b;
   
   while (1) {
  
      // PADRAO 01: somente verdes
      output_b(0b10000000);
      delay_ms(500);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b10100000);
      delay_ms(300);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b10101000);
      delay_ms(300);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b10101010);
      delay_ms(300);
      output_b(0b00000000);
      delay_ms(10);
      for (i=0; i<100; i++) {
         output_b(0b10101010);
         delay_ms(50);
         output_b(0b00000000);
         delay_ms(50);
      }
      
      // PADRAO 01: somente vermelhos
      output_b(0b01000000);
      delay_ms(500);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b01010000);
      delay_ms(300);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b01010100);
      delay_ms(300);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b01010101);
      delay_ms(300);
      output_b(0b00000000);
      delay_ms(10);
      for (i=0; i<30; i++) {
         output_b(0b01010101);
         delay_ms(50);
         output_b(0b00000000);
         delay_ms(50);
      }
      
      // TUDO JUNTO
      output_b(0b10000000);
      delay_ms(30);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b11000000);
      delay_ms(30);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b11100000);
      delay_ms(30);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b11110000);
      delay_ms(30);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b11111000);
      delay_ms(30);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b11111100);
      delay_ms(30);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b11111110);
      delay_ms(30);
      output_b(0b00000000);
      delay_ms(10);
      output_b(0b11111111);
      delay_ms(30);
      output_b(0b00000000);
      delay_ms(10);
      
      for (j=0; j<30; j++) {
         output_b(0b11111111);
         delay_ms(50);
         output_b(0b00000000);
         delay_ms(50);
      }
      
      output_b(0b00000000);
      delay_ms(500);
      // PADRAO 02: cima pra baixo, baixo pra cima
      for (j=0; j<100; j++) {
         output_b(0b10000001);
         delay_ms(30);
         output_b(0b01000010);
         delay_ms(30);
         output_b(0b00100100);
         delay_ms(30);
         output_b(0b00011000);
         delay_ms(30);
         output_b(0b00100100);
         delay_ms(30);
         output_b(0b01000010);
         delay_ms(30);
         output_b(0b10000001);
         delay_ms(30);
      }
      
      output_b(0b00000000);
      delay_ms(500);
      // PADRAO 03: acende tudo, apaga de onde parou
      for (j=0; j<30; j++) {
         output_b(0b10000000);
         delay_ms(20);
         output_b(0b11000000);
         delay_ms(20);
         output_b(0b11100000);
         delay_ms(20);
         output_b(0b11110000);
         delay_ms(20);
         output_b(0b11111000);
         delay_ms(20);
         output_b(0b11111100);
         delay_ms(20);
         output_b(0b11111110);
         delay_ms(20);
         output_b(0b11111111);
         delay_ms(20);
         output_b(0b01111111);
         delay_ms(20);
         output_b(0b00111111);
         delay_ms(20);
         output_b(0b00011111);
         delay_ms(20);
         output_b(0b00001111);
         delay_ms(20);
         output_b(0b00000111);
         delay_ms(20);
         output_b(0b00000011);
         delay_ms(20);
         output_b(0b00000001);
         delay_ms(20);
         output_b(0b00000000);
         delay_ms(20);
         
         output_b(0b00000001);
         delay_ms(20);
         output_b(0b00000011);
         delay_ms(20);
         output_b(0b00000111);
         delay_ms(20);
         output_b(0b00001111);
         delay_ms(20);
         output_b(0b00011111);
         delay_ms(20);
         output_b(0b00111111);
         delay_ms(20);
         output_b(0b01111111);
         delay_ms(20);
         output_b(0b11111111);
         delay_ms(20);
         output_b(0b11111110);
         delay_ms(20);
         output_b(0b11111100);
         delay_ms(20);
         output_b(0b11111000);
         delay_ms(20);
         output_b(0b11110000);
         delay_ms(20);
         output_b(0b11100000);
         delay_ms(20);
         output_b(0b11000000);
         delay_ms(20);
         output_b(0b10000000);
         delay_ms(20);
         output_b(0b00000000);
         delay_ms(20);
      }
      
      
      output_b(0b00000000);
      delay_ms(500);
      
      
      
      // PADRAO 04: calota
      for (j=0; j<150; j++) {
         output_b(0b11111111);
         delay_ms(2);
         output_b(0b10000000);
         delay_ms(10);
      }
      // PADRAO 04: calota DOIS
      for (j=0; j<150; j++) {
         output_b(0b11111111);
         delay_ms(2);
         output_b(0b00000001);
         delay_ms(10);
      }
      // OS DOIS
      for (j=0; j<150; j++) {
         output_b(0b11111111);
         delay_ms(2);
         output_b(0b10000001);
         delay_ms(10);
      }
      
      
      /*
      output_b(0b00000000);
      delay_ms(500);
      // PADRAO 05: raios
      for(j=0; j<200; j++) {
         output_b(0b10000010);
         delay_ms(4);
         output_b(0b00000100);
         delay_ms(4);
         output_b(0b00100001);
         delay_ms(4);
         output_b(0b00001000);
         delay_ms(4);
         output_b(0b00100001);
         delay_ms(4);
         output_b(0b00000000);
         delay_ms(10);
      }
      
      output_b(0b00000000);
      delay_ms(500);
      // PADRAO 05: raios        DOIS
      for(j=0; j<200; j++) {
         output_b(0b10000010);
         delay_ms(2);
         output_b(0b00000100);
         delay_ms(2);
         output_b(0b00100001);
         delay_ms(2);
         output_b(0b00001000);
         delay_ms(2);
         output_b(0b00100001);
         delay_ms(2);
         output_b(0b00000000);
         delay_ms(10);
      }
    */
    
    /*
    DOIS LIGADOS  1 1
    10
    meio 0 (depois de 4 ms)
    10
    primeiro 1 meio 1
    10
    meio 0
    10
    primeiro 0 meio 1
    10
    meio 0
    10
    primeiro 1 meio 1
    10
    meio 0
    10
    primeiro 0 meio 1
    10
    meio 0
    10
    primeiro 1 meio 1
    
    11
    
    10
    11
    10
    01
    
    10
    11
    10
    01
    */
    
      output_b(0b00000000);
      delay_ms(500);
      // PADRAO 06: carro de ré
      output_b(0b10000100);
      for (j=0; j<200; j++) {
         output_b(0b10000000);
         delay_ms(10);
         output_b(0b10000100);
         delay_ms(10);
         output_b(0b10000000);
         delay_ms(10);
         output_b(0b00000100);
         delay_ms(10);
      }
      
   
      output_b(0b00000000);
      delay_ms(500);
      // PADRAO 07: PALITINHO NO POLICHINELOO!!!
      for (j=0; j<300; j++) {
         output_b(0b01000000); // boneco parado
         delay_ms(3);
         output_b(0b11101101);
         delay_ms(3);
         output_b(0b11111111);
         delay_ms(3);
         output_b(0b11101101);
         delay_ms(3);
         output_b(0b01000000);
         delay_ms(3);
         
         output_b(0b00000000);
         delay_ms(4);
       
         output_b(0b00100000); //boneco pulando
         delay_ms(3);
         output_b(0b01010001);
         delay_ms(3);
         output_b(0b11100010);
         delay_ms(3);
         output_b(0b11111100);
         delay_ms(3);
         output_b(0b11100010);
         delay_ms(3);
         output_b(0b01010001);
         delay_ms(3);
         output_b(0b00100000);
         
         output_b(0b00000000);
         delay_ms(4);
      }
      /*
      output_b(0b00000000);
      delay_ms(500);
      // PADRAO 07: PALITINHO NO POLICHINELOO!!!      DOIS
      for (j=0; j<200; j++) {
         output_b(0b01000000); // boneco parado
         delay_ms(1);
         output_b(0b11101101);
         delay_ms(1);
         output_b(0b11111111);
         delay_ms(1);
         output_b(0b11101101);
         delay_ms(1);
         output_b(0b01000000);
         delay_ms(1);
         
         output_b(0b00000000);
         delay_ms(4);
       
         output_b(0b00100000); //boneco pulando
         delay_ms(1);
         output_b(0b01010001);
         delay_ms(1);
         output_b(0b11100010);
         delay_ms(1);
         output_b(0b11111100);
         delay_ms(1);
         output_b(0b11100010);
         delay_ms(1);
         output_b(0b01010001);
         delay_ms(1);
         output_b(0b00100000);
         
         output_b(0b00000000);
         delay_ms(4);
      }
      
      output_b(0b00000000);
      delay_ms(500);
      // PADRAO 07: PALITINHO NO POLICHINELOO!!!      DOIS
      for (j=0; j<200; j++) {
         output_b(0b01000000); // boneco parado
         delay_ms(2);
         output_b(0b11101101);
         delay_ms(2);
         output_b(0b11111111);
         delay_ms(2);
         output_b(0b11101101);
         delay_ms(2);
         output_b(0b01000000);
         delay_ms(2);
         
         output_b(0b00000000);
         delay_ms(8);
       
         output_b(0b00100000); //boneco pulando
         delay_ms(2);
         output_b(0b01010001);
         delay_ms(2);
         output_b(0b11100010);
         delay_ms(2);
         output_b(0b11111100);
         delay_ms(2);
         output_b(0b11100010);
         delay_ms(2);
         output_b(0b01010001);
         delay_ms(2);
         output_b(0b00100000);
         
         output_b(0b00000000);
         delay_ms(8);
      }
   */
   
      output_b(0b00000000);
      delay_ms(500);
   }
}


/*
void main() {
   int i;
   while (1) {


      for (i=0; i<5; i++) {
         output_b(tab_U[i]);
         delay_ms(TEMPO);
      }
      output_b(0b00000000);
      delay_ms(TEMPO);




      output_high(PIN_B0);
      delay_ms(250);
      
      output_high(PIN_B1);
      delay_ms(250);
      
      output_high(PIN_B2);
      delay_ms(250);
      
      output_high(PIN_B3);
      delay_ms(250);
      
      output_high(PIN_B4);
      delay_ms(250);
      
      output_high(PIN_B5);
      delay_ms(250);
      
      output_high(PIN_B6);
      delay_ms(250);
      
      output_high(PIN_B7);
      delay_ms(250);
      output_B(0);
      delay_ms(250);
   }
}
*/




/*
void main() {
   while (1) {
      output_high(PIN_B0);
      output_low(PIN_B1);
      output_high(PIN_B2);
      output_low(PIN_B3);
      output_high(PIN_B4);
      output_low(PIN_B5);
      output_high(PIN_B6);
      output_low(PIN_B7);
   
      delay_ms(300);
   
      output_low(PIN_B0);
      output_high(PIN_B1);
      output_low(PIN_B2);
      output_high(PIN_B3);
      output_low(PIN_B4);
      output_high(PIN_B5);
      output_low(PIN_B6);
      output_high(PIN_B7);


      delay_ms(300);
   }
}
*/
/*


void main() {
   output_a(0);
   output_b(0);
   output_high(PIN_A2);
}


*/
/*
#define TEMPO 10


void main() {
   int i, j;
   char frase[] = "UNIFACS";


   for (j=0; j


      if (frase[j] =='A')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_A[i]);
            delay_ms(TEMPO);
         }
      }


      if (frase[j]=='B')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_B[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='C')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_C[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='D')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_D[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='E')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_E[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='F')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_F[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='G')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_G[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='H')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_H[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='I')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_I[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='J')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_J[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='K')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_K[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='L')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_L[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='M')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_M[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='N')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_N[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='O')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_O[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='P')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_P[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='Q')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_Q[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='R')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_R[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='S')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_S[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='T')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_T[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='U')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_U[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='V')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_V[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (TEMPO=='W')
      {
         for (i=0; i<5; i++)
         {
            output_b(tab_W[i]);
            delay_ms(TEMPO);
         }
      }


      if (frase[j]=='X')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_X[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='Y')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_Y[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]=='Z')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_Z[i]);
            delay_ms(TEMPO);
         }
      break;
      }


      if (frase[j]==' ')
      {
         for (i=0; i<5; i++)
         {
            output_b (tab_esp[i]);
            delay_ms(TEMPO);
         }
      break;
      }
      output_b(0);
      delay_ms(TEMPO);
   }
}
*/
/*
#define TEMPO 4      // tempo entre uma coluna e outra
#define LIGADO 1   // para facilitar leitura de codigo
//#define FRASE "'Unifacs - Arhte'" PQ ????
*/
/*
void main() {
   int i, j;
   char frase[30] = "UNIFACS - ARHTE";


   while (LIGADO) {
      for (i=0; frase[i] != '\0'; i++) {
         if ((frase[i] <= 'Z') && (frase[i] >= 'A')) { // APENAS MAIUSCULAS
            for (j=0; j<5; j++) {
               output_b(tab_Letras[frase[i] - 'A'][j]);
               delay_ms(TEMPO);
            }
            //
         }
      }
      for (i=0; i<5; i++) {
         output_b(0b00000000);
      }
   }


}
*/
/*
   A - 130
   B - 131
   C - 13TEMPO
   Z - 155


   A - A = 0
   A - C = 2
*/




/*
   RB4
   RB5
   RB6
   RB7
   RA6
   RA7
   RA0
   RA1 F
   RB3
   RB2
   RB1
   RB0
   RA5 F
   RA4 F
   RA3
   RA2   F
*/