#include <stdio.h>
#include "pico/stdlib.h"
#include "hardware/gpio.h"
#include "hardware/adc.h"
#include "pico_i2c_lcd.h"
#define adc 2
#define pin (26 + adc)
#define I2C_PORT i2c0
#define I2C_SDA 20
#define I2C_SCL 19
int main() {
stdio_init_all();
adc_init();
adc_gpio_init(pin);
i2c_init(I2C_PORT, 100 * 1000);
gpio_set_function(I2C_SDA, GPIO_FUNC_I2C);
gpio_set_function(I2C_SCL, GPIO_FUNC_I2C);
gpio_pull_up(I2C_SDA);
gpio_pull_up(I2C_SCL);
lcd_init(I2C_PORT, 0x27, 16 , 2);
lcd_clear();
lcd_set_cursor(0,0);
lcd_printf("Tensão média:");
uint adc_valor2;
while (true) {
float soma = 0.0f;
for (int i = 0; i < 4; i++) {
adc_valor2 = adc_read();
soma += (3.3f * adc_valor2) / 4095.0f;
sleep_ms(10);
float tensão_media = soma / 4.0f;
lcd_set_cursor(0,1);
lcd_printf("V = %.3f v", tensão_media);
}
adc_select_input(adc);
adc_valor2 = adc_read();
float tensao_v = (3.3 *adc_valor2)/ 4095;
printf("Tensão: %.3f v\n", tensao_v);
sleep_ms(500);
}
}