Salve. Non ho ancora provato il codice qui sotto nella vita reale ma su thinkercad non funziona lo schermo 16x2.
int state = 0;
float rx = 0;
float r = 0;
float v1 = 0;
float r1 = 1000; //1kohm resistenza nota
#include <Wire.h> //libreria che consente la comunicazione con i2c
#include <LiquidCrystal_I2C.h> //libreria display i2c
//////////////////////addr, en,rw,rs,d4,d5,d6,d7,bl, blpol
LiquidCrystal_I2C lcd = LiquidCrystal_I2C (0x27 ,16 ,2 ); //impostazione indirizzo del display e pin del display LCD collegati all'i2c
void setup (){
lcd.begin(16,2); //inizializzo il display. Il display LCD usato è 16x2
lcd.backlight () ;
lcd.clear ();
lcd.setCursor (3,0);
lcd.print ("Ciao Mazy");
lcd.setCursor (3,1);
lcd.print ("Ohmetro");
delay (5000);
}
void loop() {
int n = analogRead(A0);
v1 = map(n, 0, 1024, 0, 5000)/1000.0; //mV
rx = (r1*(5.0-v1)) / v1;
if (rx > 1000.00) {
rx = rx/1000.00;
lcd.clear(); //pulisce lo schermo
lcd.setCursor(1,0); //imposta il cursore nella prima riga e colonna,
lcd.print("Resistenza = ");
lcd.setCursor(6,1);
lcd.print (rx);
lcd.setCursor(13,1);
lcd.print ("KΩ");
}
else {
lcd.clear(); //pulisce lo schermo
lcd.setCursor(1,0); //imposta il cursore nella prima riga e colonna,
lcd.print("Resistenza = ");
lcd.setCursor(6,1);
lcd.print (rx);
lcd.setCursor(13,1);
lcd.print ("Ω");
}
if (rx < 15.00)
tone (5,900,900);
delay (10);
}
Sapete dirmi se c'è qualche errore che non mi permette di visualizzare qualcosa nel 16x2 usando interfaccia I2C ???
(ho collegato il pin SDA nel pin A4 di Arduino e il pin SCL nel pin A5)