Buenos días, estoy tratando de hacer un cronometro usando una placa Arduino UNO y un display 1602 16x2, conectada a 4 pines en este cado (como se observa en el código).
El problema es que, saque lo que saque por pantalla, si uso las sentencias en el loop la pantalla muestra caracteres al azar que no corresponden, si lo hago en el setup no hay problema (pero claro, no puedo modificarlo durante el programa).
He probado cosas como: limpiar la pantalla en cada loop (lcd.clear()), cambiar delays para reducir la tasa de refresco de la lcd, cambiar de placa, etc; y solo consigo que salga cada más o menos tiempo esos caracteres "raros".
Os dejo un par de videos que se observa mejor lo que comento.
Y uno de los códigos que uso es, por ejemplo:
#include <LiquidCrystal.h>
int RS = 4;
int E = 5;
int D4 = 6;
int D5 = 7;
int D6 = 8;
int D7 = 9;
int V = 3;
int pos = 0;
long ss = 0, s = 0, ms = 0, mss = 0, st = 0;
LiquidCrystal lcd(RS, E, D4, D5, D6, D7);
void setup() {
analogWrite(V, 50);
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("CRONOMETRO:");
}
void loop() {
lcd.setCursor(0, 1);
lcd.print(ss);
lcd.setCursor(1, 1);
lcd.print(s);
lcd.setCursor(2, 1);
lcd.print(".");
lcd.setCursor(3, 1);
lcd.print(ms);
lcd.setCursor(4, 1);
lcd.print(mss);
mss = mss + 1;
if (mss > 9) {
mss = 0;
ms = ms + 1;
};
if (ms > 9) {
ms = 0;
s = s + 1;
};
if (s > 9) {
ss = ss + 1;
s = 0;
};
delay(10);
}