AULA 11 - Microcontroladores - Eng: mudanças entre as edições

De IFSC
Ir para navegação Ir para pesquisar
imported>Fargoud
imported>Fargoud
Sem resumo de edição
Linha 2: Linha 2:
[[MIC2| << Página do curso ]]  
[[MIC2| << Página do curso ]]  


----------------
=Trabalho Ana Paula=
==Protótipo==
===Hardware/Eletrônica===
===Partes Mecânicas===
==Firmware==


----------------
----------------

Edição das 16h58min de 26 de setembro de 2018

<< Página do curso



Trabalho Davi

Protótipo

Hardware/Eletrônica

Partes Mecânicas

[ Projeto 2 Alimentador de peixes Davi]

Firmware


Trabalho Júlia

Protótipo

Hardware/Eletrônica

MIC2Proj2Julia.png

Partes Mecânicas

Vídeos do dispositivo:

Parte 1

Parte 2

Firmware

 #include <LiquidCrystal.h> //Inclui biblioteca do LCD
 #include <Stepper.h> 
   
 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 
 const int stepsPerRevolution = 500;
 //Inicializa a biblioteca utilizando as portas de 8,9,10 e 13 para 
 //ligacao ao motor 
 Stepper myStepper(stepsPerRevolution, 8,10,9,13);  
  
 int segundo,minuto,hora,dia,mes,ano; 
 unsigned long UtlTime; 
  
 void setup(){ 
  //Determina a velocidade inicial do motor 
   myStepper.setSpeed(60);
    
   //Para o LCD 
   UtlTime=0;   
   minuto=0;   
   hora=0;   
   dia=0;   
   mes=0;   
   ano=0;   
   Serial.begin(9600); 
   lcd.begin(16, 2);      
   
   lcd.setCursor(0,0);   
   lcd.print(" Data e hora ");   
   lcd.setCursor(0,1);   
   lcd.print(" com Arduino");   
   delay (2000); 
 
   //Configura o minuto   
   lcd.clear();   
   lcd.setCursor(0,0);   
   lcd.print("Minuto: ");   
   Serial.print("\nEntre Minuto:");  
   while(minuto==0){     
     if (Serial.available() > 0){       
     minuto= Serial.parseInt();
     Serial.print(minuto);     
     }   
   }   
   lcd.print(minuto);   
   delay(1000);

    //Configura a hora   
   lcd.clear();   
   lcd.setCursor(0,0);   
   lcd.print("Hora: ");   
   Serial.print("\nEntre Hora:"); 
   while(hora==0){     
     if (Serial.available() > 0){       
     hora= Serial.parseInt();
     Serial.print(hora);     
     }   
   }   
   lcd.print(hora);   
   delay(1000); 

   //Configura o Dia   
   lcd.clear();   
   lcd.setCursor(0,0);   
   lcd.print("Dia: ");   
   Serial.print("\nEntre Dia:");   
   while(dia==0)   
   {     
     if (Serial.available() > 0){       
       dia= Serial.parseInt();
        Serial.print(dia);     
     }   
   }   
   lcd.print(dia);   
   delay(1000);    
   
   //Configura o mês   
   lcd.clear();   
   lcd.setCursor(0,0);   
   lcd.print("Mes: ");   
   Serial.print("\nEntre Mes:");  
   while(mes==0)   
   {     
     if (Serial.available() > 0){       
       mes= Serial.parseInt();
        Serial.print(mes);     
     }   
   }   
   lcd.print(mes);   
   delay(1000);    
   
   //Configura o Ano   
   lcd.clear();   
   lcd.setCursor(0,0);   
   lcd.print("Ano: ");   
   Serial.print("\nEntre ano:");   
   while(ano==0){     
     if (Serial.available() > 0){       
       ano= Serial.parseInt();
       Serial.print(ano);    
     }   
   }   
   lcd.print(ano);   
   delay(1000);    
   lcd.clear(); 
 }
 
 void EscreveDataHora(){  
   if(millis()-UtlTime<0){     
     UtlTime=millis();   
   }   
   else{     
     segundo=int((millis()-UtlTime)/1000);   
   }   
   if(segundo>59){     
     segundo=00;
     lcd.clear();     
     minuto++;     
     UtlTime=millis();     
     if(minuto>59){       
       hora++;
       lcd.clear();       
       minuto=00;       
       if(hora>23){         
         dia++;         
         hora=00;         
         if(mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12){           
           if(dia>31){             
             dia=1;             
             mes++;             
             if(mes>12){               
              ano++;               
              mes=1;             
             } 
           }       
         }         
       else if(mes==2){           
          if(ano%400==0){             
           if(dia>29){               
             dia=1;               
             mes++;             
           }           
          }         
           else if((ano%4==0)&&(ano%100!=0)){             
             if(dia>29){              
               dia=1;               
               mes++;             
             }           
           }           
           else{             
             if(dia>28){               
               dia=1;               
               mes++;             
             }           
           }         
         }         
       else{           
         if(dia>30){             
           dia=1;             
           mes++;           
         }         
       }      
     }     
   }   
 }    
   lcd.setCursor(0,0);   
   lcd.print("Data ");   
   lcd.print(dia);   
   lcd.print("/");   
   lcd.print(mes);   
   lcd.print("/");   
   lcd.print(ano);  
   lcd.setCursor(0,1);   
   lcd.print("Hora ");   
   lcd.print(hora);   
   lcd.print(":");   
   lcd.print(minuto);   
   lcd.print(":");   
   lcd.print(segundo);
 }

 void SelecionaHoraAlimentaPET(){
   //Seleciona a hora da refeição
   int h=15;
   //Seleciona os minutos da refeição
   int m=15;
     
   //Mostra no DISPLAY
   if(hora==h&&minuto==m&&segundo>=30){
     lcd.clear(); 
     lcd.setCursor(0,0);
     lcd.print(" Hora da racao ");
     lcd.setCursor(0,1);
     lcd.print(" Bom apetite! ");
     //Liga o motor
     LigaMotor();
   }
   else{
      lcd.clear();
      EscreveDataHora();
   }
 }
 void LigaMotor(){
 //O motor faz 2 giros completos
  for (int i = 0; i<=2; i++)
  {
    myStepper.step(2048); 
    delay(2000);
  }
  delay(2000);
}

  void loop(){ 
   EscreveDataHora();
   SelecionaHoraAlimentaPET();
 }

Trabalho Nelson

Protótipo

Hardware/Eletrônica

Partes Mecânicas

[ Projeto 2 Alimentador de gatos Nelson]

Firmware


Trabalho Thiago

Protótipo

MIC2Proj2Thiago1.png
MIC2Proj2Thiago2.png

Hardware/Eletrônica

Vídeo Projeto 2 Alimentador de peixes Thiago

Partes Mecânicas

Firmware

 #include <LiquidCrystal.h> //Inclui biblioteca do LCD
 #include <Stepper.h> 
     
 LiquidCrystal lcd(12, 11, 5, 4, 3, 2); 
 const int stepsPerRevolution = 500;
 //Inicializa a biblioteca utilizando as portas de 8,9,10 e 13 para 
 //ligacao ao motor 
 Stepper myStepper(stepsPerRevolution, 8,10,9,13);  
 
 int segundo,minuto,hora,dia,mes,ano; 
 unsigned long UtlTime; 
 
 void setup(){ 
  //Determina a velocidade inicial do motor 
   myStepper.setSpeed(60);
   
   //Para o LCD 
   UtlTime=0;   
   minuto=0;   
   hora=0;   
   dia=0;   
   mes=0;   
   ano=0;   
   Serial.begin(9600); 
   lcd.begin(16, 2);      
   
   lcd.setCursor(0,0);   
   lcd.print(" Data e hora ");   
   lcd.setCursor(0,1);   
   lcd.print(" com Arduino");   
   delay (2000); 
  
   //Configura o minuto   
   lcd.clear();   
   lcd.setCursor(0,0);   
   lcd.print("Minuto: ");   
   Serial.print("\nEntre Minuto:");  
   while(minuto==0){     
     if (Serial.available() > 0){       
     minuto= Serial.parseInt();
     Serial.print(minuto);     
     }   
   }   
   lcd.print(minuto);   
   delay(1000);

    //Configura a hora   
   lcd.clear();   
   lcd.setCursor(0,0);   
   lcd.print("Hora: ");   
   Serial.print("\nEntre Hora:"); 
   while(hora==0){     
     if (Serial.available() > 0){       
     hora= Serial.parseInt();
     Serial.print(hora);     
     }   
   }   
   lcd.print(hora);   
   delay(1000); 
 
   //Configura o Dia   
   lcd.clear();   
   lcd.setCursor(0,0);   
   lcd.print("Dia: ");   
   Serial.print("\nEntre Dia:");   
   while(dia==0)   
   {     
     if (Serial.available() > 0){       
       dia= Serial.parseInt();
        Serial.print(dia);     
     }   
   }   
   lcd.print(dia);   
   delay(1000);    
   
   //Configura o mês   
   lcd.clear();   
   lcd.setCursor(0,0);   
   lcd.print("Mes: ");   
   Serial.print("\nEntre Mes:");  
   while(mes==0)   
   {     
     if (Serial.available() > 0){       
       mes= Serial.parseInt();
        Serial.print(mes);     
     }   
   }   
   lcd.print(mes);   
   delay(1000);    
   
   //Configura o Ano   
   lcd.clear();   
   lcd.setCursor(0,0);   
   lcd.print("Ano: ");   
   Serial.print("\nEntre ano:");   
   while(ano==0){     
     if (Serial.available() > 0){       
       ano= Serial.parseInt();
       Serial.print(ano);    
     }   
   }   
   lcd.print(ano);   
   delay(1000);    
   lcd.clear(); 
 }
 
 void EscreveDataHora(){  
   if(millis()-UtlTime<0){     
     UtlTime=millis();   
   }   
   else{     
     segundo=int((millis()-UtlTime)/1000);   
   }   
   if(segundo>59){     
     segundo=00;
     lcd.clear();     
     minuto++;     
     UtlTime=millis();     
     if(minuto>59){       
       hora++;
       lcd.clear();       
       minuto=00;       
       if(hora>23){         
         dia++;         
         hora=00;         
         if(mes==1||mes==3||mes==5||mes==7||mes==8||mes==10||mes==12){           
           if(dia>31){             
             dia=1;             
             mes++;             
             if(mes>12){               
              ano++;               
              mes=1;             
             } 
           }       
         }         
       else if(mes==2){           
          if(ano%400==0){             
           if(dia>29){               
             dia=1;               
             mes++;             
           }           
          }         
           else if((ano%4==0)&&(ano%100!=0)){             
             if(dia>29){              
               dia=1;               
               mes++;             
             }           
           }           
           else{             
             if(dia>28){               
               dia=1;               
               mes++;             
             }           
           }         
         }         
       else{           
         if(dia>30){             
           dia=1;             
           mes++;           
         }         
       }      
     }     
   }   
 }    
   lcd.setCursor(0,0);   
   lcd.print("Data ");   
   lcd.print(dia);   
   lcd.print("/");   
   lcd.print(mes);   
   lcd.print("/");   
   lcd.print(ano);  
   lcd.setCursor(0,1);   
   lcd.print("Hora ");   
   lcd.print(hora);   
   lcd.print(":");   
   lcd.print(minuto);   
   lcd.print(":");   
   lcd.print(segundo);
 }
  
 void SelecionaHoraAlimentaPET(){
   //Seleciona a hora da refeição
   int h=15;
   //Seleciona os minutos da refeição
   int m=15;
   
   //Mostra no DISPLAY
   if(hora==h&&minuto==m&&segundo>=30){
     lcd.clear(); 
     lcd.setCursor(0,0);
     lcd.print(" Hora da racao ");
     lcd.setCursor(0,1);
     lcd.print(" Bom apetite! ");
     //Liga o motor
     LigaMotor();
   }
   else{
      lcd.clear();
      EscreveDataHora();
   }
 }
 void LigaMotor(){
 //O motor faz 2 giros completos
  for (int i = 0; i<=2; i++)
  {
    myStepper.step(2048); 
    delay(2000);
  }
  delay(2000);
}
 
  void loop(){ 
   EscreveDataHora();
   SelecionaHoraAlimentaPET();
 }

Trabalho Vitor

Protótipo

Hardware/Eletrônica

Partes Mecânicas

Firmware


<< Página do curso

< Projeto 2 - Alimentador automático de pets AULA 11 - Projeto 2 - Protótipos dos Alunos - Apresentação Projeto 3 - Sistema de segurança residencial >