#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Ініціалізація LCD: адреса 0x27 (зазвичай), 16 стовпців, 2 рядки
LiquidCrystal_I2C lcd(0x27, 16, 2);
// Вказуємо правильний пін, до якого підключено зелений дріт (PA0)
const int sensorPin = PA1;
float current = 0.0;
void setup() {
// Вмикаємо повну роздільну здатність АЦП для STM32 (значення від 0 до 4095)
analogReadResolution(12);
// Ініціалізація дисплея
lcd.init();
lcd.backlight();
// Початкове повідомлення при старті
lcd.setCursor(0, 0);
lcd.print("Amperemeter");
delay(2000);
lcd.clear();
}
void loop() {
// Зчитування аналогового значення (від 0 до 4095)
int rawValue = analogRead(sensorPin);
// Перетворення в Ампери (максимум 10.0 А)
current = (rawValue / 4095.0) * 10.0;
// Вивід тексту на перший рядок
lcd.setCursor(0, 0);
lcd.print("Current Load:");
// Вивід значення струму на другий рядок
lcd.setCursor(0, 1);
lcd.print(current, 2); // Вивід з 2 знаками після коми
lcd.print(" A "); // Пробіли очищують зайві символи, якщо значення зменшується
delay(500); // Затримка для плавного оновлення екрану
}