Alguém pode me ajudar com o código abaixo ?
Sempre printa uma unidade a mais que o "limite" do contador. A ideia é que fosse "printado" cada número de 0 à 9 e recomeçasse.
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int contador;
void setup()
{
lcd.begin(16,2);
}
void loop()
{
if( millis()>500 )
{
for( contador=0; contador <=9; contador = contador +1)
lcd.begin(16, 2);
lcd.print(contador);
delay(800);
}
}
Tags:
As respostas para este tópico estão encerradas.
Tem q olhar a lógica, oq vc mandou ele executar:
Se millis()>0:
para: contador = 0
até contador <=9
some 1 ao contador.
escreva no lcd
espere 800 ms
Exatamente nessa ordem, certo?
Então para contador = 0, ele soma 1, daí contador = 1, certo?
Imprime contador = 1 no lcd e espera 800 ms
Repete...
Para contador <= 9 (contador = 8), ele soma 1, contador passa a ser 9, e não 8. E imprime 9 no lcd.
O certo seria colocar esse valor do contador dentro de um par de chaves {} pra ele imprimir contador =zero ANTES de somar 1:
void loop()
{
if( millis()>500 )
{
for( contador=0; contador <=9; contador++)
{
lcd.begin(16, 2);
lcd.print(contador);
delay(800);
}
}
}
E eram as chaves --'
... obrigado :D.
Bem-vindo a
Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)
© 2024 Criado por Marcelo Rodrigues. Ativado por