Вольтамперметр на ардуино своими руками

0
4

Вольтамперметр на ардуино

Для защиты от перегрузок установите стабилитрон на 5,1 В параллельно аналоговому входу. Избегайте измерений переменного тока без дополнительного выпрямителя. Готовый прибор потребляет 20 мА в режиме ожидания и работает от источника 7-12 В.

Измерение напряжения и тока с помощью микроконтроллера

Для точного замера параметров цепи потребуется плата на базе ATmega328P, резисторный делитель и шунт. Подключите аналоговые входы A0 и A1 к схеме, соблюдая полярность.

Схема подключения

Используйте прецизионный резистор 0.1 Ом для шунта. Напряжение измеряйте через делитель 100 кОм/10 кОм – это снизит нагрузку на контроллер при замере до 50 В. Подавайте сигнал через операционный усилитель с коэффициентом усиления 10 для повышения точности.

Калибровка

Перед началом работы задайте опорное напряжение 1.1 В через analogReference(INTERNAL). Для калибровки:

  • Подайте известное напряжение 5 В на вход и скорректируйте коэффициент в коде
  • Пропустите ток 1 А через шунт, запишите показания АЦП

В скетче используйте формулу: realVoltage = (adcValue * 0.00488) * calibrationFactor. Для тока: current = (adcShuntVoltage / 0.1) * 1000, где 0.1 – сопротивление шунта в Омах.

Важно: При замерах свыше 30 В устанавливайте предохранитель и изолируйте контакты. Для высокоточных измерений применяйте 16-битный АЦП ADS1115 вместо встроенного.

Сборка схемы для измерения напряжения и тока

Подключение шунта для измерения тока

Калибровка и проверка

Подайте эталонное напряжение 5 В на вход A0 и скорректируйте показания в коде, умножив значение на 6. Для тока подключите нагрузку 1 А и введите поправочный коэффициент, равный отношению реального тока к показаниям с шунта.

Проверьте схему мультиметром: расхождение не должно превышать 3%. При больших отклонениях замените резисторы на прецизионные с допуском 1%.

Подключите дисплей по интерфейсу I2C, используя контакты A4 (SDA) и A5 (SCL). Для работы с экраном установите библиотеку LiquidCrystal_I2C через менеджер библиотек в среде разработки.

Инициализируйте дисплей в коде, указав адрес и размер:

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2); // Адрес 0x27, 16 символов, 2 строки

В функции setup() включите подсветку и очистите экран:

void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
}
float voltage = 5.12;
lcd.setCursor(0, 0); // Курсор в начало первой строки
lcd.print("U = ");
lcd.print(voltage);
lcd.print(" V");
void loop() {
lcd.clear();
// ... расчет значений ...
lcd.print("I = ");
lcd.print(current);
delay(300);
}

Оптимизируйте код, избегая частого вызова clear() – перезаписывайте только изменяемые символы.