#include <Wire.h>
#include "LiquidCrystal_I2C.h"
LiquidCrystal_I2C lcd(0x27, 16, 2);
void setup() {
// put your setup code here, to run once:
Wire.setSDA(8); Wire.setSCL(9);
Wire.begin();
lcd.init();
lcd.backlight();
lcd.setCursor(0, 0);
lcd.print("Voltmeter");
lcd.setCursor(0, 1);
lcd.print("E = ");
analogReadResolution(12);
analogWriteResolution(12);
analogWriteFreq(500);
}
void int_lcd(int row, int column, double num, int fp, String txt) {
lcd.setCursor(column, row);
lcd.print(num, fp);
// clear error display
if( num < 10) column = column + fp + 2;
else if( (num >= 10) && (num < 100) ) column = column + fp + 3;
else if( (num >= 100) && (num< 1000) ) column = column + fp + 4;
else if( (num >= 1000) && (num< 10000) ) column = column + fp + 5;
lcd.setCursor(column, row);
lcd.print(txt + " ");
}
void loop() {
// int_lcd(1, 4, ((analogRead(A0) * 1000) / 4096), 2, "V");
int_lcd(1, 4, map(analogRead(A0), 0, 4096, 0, 10000), 2, "V");
delay(100);
// put your main code here, to run repeatedly:
}
Loading
pi-pico-w
pi-pico-w