Hola;
Estoy usando un lcd 16x2 con modulo I2C, y un potenciómetro.
Con el potenciómetro regulo el un tiempo y este se me muestra en la pantalla.
Todo bien con el potenciómetro, pero cuando meto la librería LCD I2C se cuelga el Arduino. Me lee el potenciómetro durante un par de segundos y luego se cuelga.
Únicamente hace esto si uso la librería LCD I2C
En el código también meto un sensor de temperatura, pero eso entiendo que no da problema;
#include <LCD_I2C.h>
LCD_I2C lcd(0x27, 16, 2); // Default address of most PCF8574 modules, change according
int Potpin = A4;
int val = 0;
int pulsador = 8;
int rele = 9;
int Centigradosround;
bool EstadoActual = LOW;
bool EstadoAnterior = LOW;
////////Temperatura/////////
float centi()
{
int dato;
float c;
dato=analogRead(A0);
c = (500.0 * dato)/1023;
return(c);
}
void setup(){
Serial.begin(9600);
lcd.begin(16,2);
lcd.clear();
lcd.backlight();
pinMode(pulsador , INPUT);
pinMode(rele, OUTPUT);
}
void loop(){
float Centigrados = centi();//programa de temperatura
Centigradosround=round(Centigrados);
///////////////////////////
val = analogRead(Potpin)/6,8; //programa de regulacion tiempo
Serial.println(val);
lcd.setCursor(0, 0);
lcd.print("Temperatura=");
lcd.setCursor(12, 0);
lcd.print(" ");
lcd.setCursor(12, 0);
lcd.print(Centigradosround);
lcd.setCursor(0, 1);
lcd.print("Tiempo=");
lcd.setCursor(7, 1);
lcd.print(" ");
lcd.setCursor(7, 1);
lcd.print(val);
lcd.print("ms");
delay(200);
///////////////////////////////
EstadoActual = digitalRead(pulsador);//programa del pulsador
if (EstadoActual == HIGH & EstadoAnterior == LOW){ //flanco positivo
digitalWrite (rele, HIGH);
delay(val);
digitalWrite (rele, LOW);
lcd.begin(16,2);
lcd.clear();
}
EstadoAnterior = EstadoActual;
}
He probado a usar otra libreria, la "LiquidCrystal_I2C" pero tengo el mismo problema.
Sabéis a que puede ser debido:
Muchas gracias