AULA 11 - Microcontroladores - Eng: mudanças entre as edições
Ir para navegação
Ir para pesquisar
imported>Fargoud |
imported>Fargoud |
||
| Linha 293: | Linha 293: | ||
==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(); | |||
} | |||
------------ | ------------ | ||
Edição das 16h49min de 26 de setembro de 2018
Trabalho Ana Paula
Protótipo
Hardware/Eletrônica
Partes Mecânicas
Firmware
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
Partes Mecânicas
Vídeos do dispositivo:
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
Hardware/Eletrônica
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
| < Projeto 2 - Alimentador automático de pets | AULA 11 - Projeto 2 - Protótipos dos Alunos - Apresentação | Projeto 3 - Sistema de segurança residencial > |
|---|
