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

De IFSC
Ir para navegação Ir para pesquisar
imported>Fargoud
imported>Fargoud
Linha 36: Linha 36:
==Firmware==
==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=
=Trabalho Nelson=



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

<< Página do curso


Trabalho Ana Paula

Protótipo

Hardware/Eletrônica

Partes Mecânicas

Firmware


Trabalho Davi

Protótipo

Hardware/Eletrônica

Partes Mecânicas

Firmware


Trabalho Júlia

Protótipo

Hardware/Eletrônica

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 Nelson

Protótipo

Hardware/Eletrônica

Partes Mecânicas

Firmware


Trabalho Thiago

Protótipo

Hardware/Eletrônica

Partes Mecânicas

Firmware


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 >