LCD I2C me bloquea el Arduino (SOLUCIONADO)

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

Ayudaría que nos digas qué placa usas de todas las Arduino porque si fuese una UNO, no puedes usar el pin A4 para I2C y a la vez para leer el potenciómetro.

1 Like

Hola;
Si, es un Arduino Uno.
Ostras, que error mas tonto. Uso las salidas SDA y SCL, pero claro el A4 estara seriada con una de ellas.
Lo pruebo y os digo. Muchas gracias

Buen ojo, @MaximoEsfuerzo como siempre!!

1 Like

Justo eso. Muchas gracias chicos.
Uso las salidas SDA y SCL independientes, no uso las salidas A4 y A5. Pero claro, entran entreconectadas.
Thanksss¡¡¡¡

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.