Estou montando um projeto de um misturador para o curso alimentos, muito pouco se fala sobre temporizador cíclico para arduino, alguem tem uma luz de como iniciar, tenho um code aqui e vou postar, preciso apenas em segundos, com 2 linhas no lcd
1° tempo acionado de 0 a 10 s
2° intervalo de 0 a 10 s
Tags:
Oi JC, boa tarde.
Cade o code?
Rui
[code]
#include <LiquidCrystal.h> //Libreria del display LCD
LiquidCrystal lcd(7, 8, 9, 10, 11, 12); // Inicializar a biblioteca com o número de pinos de usar
int led = 5;
int asegundos = 0; //Display LCD variável para segundos
int segundostotal = 0; //Tempo total
int msg= 0; //Barrera para a mensagem de boas-vindas
int start = A1; //Iniciar botão
int empieza = 1024; // Variável para botão de arranque de armazenamento
int buts = A3; //segundos tipo botão de pressão
int varbuts = 0; //Valor Variável para armazenar o valor do botão segundos
void setup()
{
lcd.begin(20, 4); //
pinMode(led, OUTPUT); //Pin de alarma --> Saida
pinMode(buts, INPUT); //Pin botão segundos -> Input
pinMode(start, INPUT); //Pin botão Iniciar -> Input
msg = 0; //Mensagem Barreira da vindas boas
empieza = 1024; //Barrera de inicio
Serial.begin(9600);
}
void loop()
{
if(msg==0) //Mostra a mensagem de boas-vindas apenas uma vez
{
lcd.setCursor(0,0);
lcd.print("Temporizador ");
lcd.setCursor(1,1);
lcd.print("Arduino + LCD");
delay(250);
msg = 1;
lcd.clear();
}
do
{
varbuts = analogRead(buts); //Leia botão segundos
if(varbuts > 0) //Se o botão foi pressionado, o segundo aumento em uma unidade
{
asegundos = asegundos + 1;
if(asegundos == 60) asegundos = 0;
delay(100);
}
lcd.setCursor(0,0);
lcd.print("Selecionar tempo"); //exibida e SS nós vamos aumentar
lcd.setCursor(4,1);
if (asegundos < 10) lcd.print("0"); // Se esta última for menor que 10, define um "0" antes.
lcd.print(asegundos); // Sem esse código, ele também mostra S
} while(analogRead(start) == 0); // Se repite el menu de elegir tiempo hasta que pulsemos el boton de arranque.
segundostotal = asegundos; //Converte o tempo selecionado em segundos
//-------------------------------------------------------------------------------------------------
// Depois de pressionar o botão de início e o tempo acumulado, ao entrar no PRÓXIMO
// E NÃO para encerrar a conta final.
//-------------------------------------------------------------------------------------------------
while (segundostotal > 0)
{
delay (500); //Eu desconto em períodos de um segundo
segundostotal--;
asegundos = segundostotal % 60; //Converte o total de segundos em períodos de 60 segundos
lcd.setCursor(0,0);
lcd.print("Tempo restante"); //Mostra mensagem de tempo restante
lcd.setCursor(4,1);
if (asegundos < 10) lcd.print("0"); // Se o segundo valor está abaixo de 9 (unidade) coloca um zero
lcd.print(asegundos); // Sem esse código, ele também mostra S
if (segundostotal == 0) //Se o tempo expirar
{
while(1) //faz um loop infinito que mostra a mensagem e piscando um LED
{
lcd.clear();
lcd.setCursor(5,0);
lcd.print("Tempo");
lcd.setCursor(3,1);
lcd.print("Finalizado");
digitalWrite(led, HIGH);
delay(250);
digitalWrite(led, LOW);
delay(250);
exit(0);
}
}
}
}
[/code]
Será que nosso velho e amigo millis() ajudaria ela???
estou ajustando o o code
lcd 20x4 3 linhas no lcd
Linha 1 TEMPO ( de 0 a 10s)
Linha 2 INTERVALO ( de 0 a 10)
Linha 3 VELOCIDADE ( pwm de 0 a 255)
com 4 botoes , Set ,-, +, manual
motor inicia desligado, escolhe o tempo , intervalo e velocidde
e então inicia o ciclo,
difícil é fazer o aciomamento do intervalo
Oi JC, boa noite.
Um code para você testar.
Rui
Caraca Rui,
Você além de rápido, faz um código super profissional e bonito.
Fiquei com vergonha do meu, rssss.
Enfim, mesmo assim, aqui está: http://pastebin.com/x7ga0zKs
Gostei do seu código, vi que usou interrupção.
Grande abraço,
'Eiju
Oi Celso! muito obrigado pela ajuda, vou testar o seu código também! mas como vc disse o Rui estava tinha tomado algo nervoso ontem, tava formiga atômica.
Não testei não, mas ficou no capricho !
Rui é o nosso Oráculo da programação !
se tiver um tempinho testa para ser se está em pleno vapor, aguardo
Olá querido Rui! sem palavras, se com sono vc faz tudo aquilo vc não é da terra não, uma formiga atômica .
O Rui é fera, e super educado sem contar com o senso de humor com tantos kkkkkk, muito prazeroso.
Oi CEI e JGAMe JC bom dia,
obrigado pelos elogios.
Aprendi muito aqui com vocês com outros amigos daqui.
JC, desculpe, mas postei o code com o LCD I2C. (eu estava com sono kkkk)
segue o code com LCD normal.
Descobri um erro no code.
O valor da velocidade só pode ir até 10.
Segue o novo code corrigido.
Rui
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por