Com a ajuda do Tiago Alexandre aqui do fórum e de um amigo aqui da minha cidade cheguei a um código para o meu alimentador de cães.
Esse é ó código que vou usar com apenas um motor e dois horários para ligar e desligar:
int seg=0, minu=0,hor=0; // inteiros referente ao relógio int motPin = 12; // pino de saida do sinal int motState = LOW; // motState usado para armazena o estado atual do motor aceso o desligado long intervalo = 1000; // intervalo de um segundo void setup() { pinMode(motPin, OUTPUT); // saida do sinal para ativar o motor Serial.begin(9600); } void loop (){ relogio();// aciona comando relógio mot (); // aciona o comando motor } void relogio() { static unsigned long ult_tempo = 0; int tempo = millis(); if(tempo - ult_tempo >= 1000) { ult_tempo = tempo; seg++; } if(seg>=60) { seg = 0; minu++; } if(minu>=60) { minu = 0; hor++; } if(hor>=24) { hor=0; minu=0; } Serial.print(hor); // imprime a hora no monitor serial para verificar se o relógio está funcionando Serial.print(":"); Serial.print(minu); Serial.print(":"); Serial.println(seg); } void mot (){
if (hor == 0 && minu == 0 && seg > 5){ // define o primeiro horário de ligação do motor motState = HIGH;// }
if (hor == 0 && minu == 0 && seg > 10){ // define o primeiro horário de desligamento do motor motState = LOW;// }
if (hor == 0 && minu == 0 && seg > 15){ // define o segundo horário de ligação do motor motState = HIGH;// }
if (hor == 0 && minu == 0 && seg > 20){ // define o segundo horário de desligamento do motor motState = LOW;// }
digitalWrite(motPin, motState); if (motState == HIGH) Serial.println("ligou"); // imprime ligou no serial monitor para verificar se o código está funcionando else Serial.println("desligou");// imprime "desligou" no serial monitor para verificar se o código está funcionando }
Estou precisando do seguinte um push button para hora e um push button para os minutos, a intenção é que o usuário possa programar a hora em que o motor vai ligar e desligar, tudo isso sendo exibido num Display de 16x2. Ah! que essas mensagens exibidas no serial monitor possam ser impressas no monitor. Alguém pode me ajudar???
Esse é ó código que vou usar com apenas um motor e dois horários para ligar e desligar:
int seg=0, minu=0,hor=0; // inteiros referente ao relógio
int motPin = 12; // pino de saida do sinal
int motState = LOW; // motState usado para armazena o estado atual do motor aceso o desligado
long intervalo = 1000; // intervalo de um segundo
void setup()
{
pinMode(motPin, OUTPUT); // saida do sinal para ativar o motor
Serial.begin(9600);
}
void loop (){
relogio();// aciona comando relógio
mot (); // aciona o comando motor
}
void relogio()
{
static unsigned long ult_tempo = 0;
int tempo = millis();
if(tempo - ult_tempo >= 1000) {
ult_tempo = tempo;
seg++;
}
if(seg>=60)
{
seg = 0;
minu++;
}
if(minu>=60) {
minu = 0;
hor++;
}
if(hor>=24)
{
hor=0;
minu=0;
}
Serial.print(hor); // imprime a hora no monitor serial para verificar se o relógio está funcionando
Serial.print(":");
Serial.print(minu);
Serial.print(":");
Serial.println(seg);
}
void mot (){
if (hor == 0 && minu == 0 && seg > 5){ // define o primeiro horário de ligação do motor
motState = HIGH;//
}
if (hor == 0 && minu == 0 && seg > 10){ // define o primeiro horário de desligamento do motor
motState = LOW;//
}
if (hor == 0 && minu == 0 && seg > 15){ // define o segundo horário de ligação do motor
motState = HIGH;//
}
if (hor == 0 && minu == 0 && seg > 20){ // define o segundo horário de desligamento do motor
motState = LOW;//
}
digitalWrite(motPin, motState);
if (motState == HIGH)
Serial.println("ligou"); // imprime ligou no serial monitor para verificar se o código está funcionando
else
Serial.println("desligou");// imprime "desligou" no serial monitor para verificar se o código está funcionando
}
Estou precisando do seguinte um push button para hora e um push button para os minutos, a intenção é que o usuário possa programar a hora em que o motor vai ligar e desligar, tudo isso sendo exibido num Display de 16x2. Ah! que essas mensagens exibidas no serial monitor possam ser impressas no monitor. Alguém pode me ajudar???