101

Re: Вольтамперметр для блока питания (Arduino)

10 мВ шунта = 1 А

float kalib2=1.000; - это калибровка для повышения точности

102

Re: Вольтамперметр для блока питания (Arduino)

Сделал на ADS1015 ампервольтметр с отображением заданных и реальных значений для одного канала ЛБП  http://forum.rcl-radio.ru/uploads/images/2024/04/d461fd938e659f66402fc74523c52557.jpg

103

Re: Вольтамперметр для блока питания (Arduino)

Здравствуйте! Можно ли поднять верхний порог измерения до 36-ти вольт? Конечно желательно до 50-ти.

104

Re: Вольтамперметр для блока питания (Arduino)

Нужно подобрать делитель напряжения, чтобы при 50 В напряжение на делителе не превышало 4 В, далее просто подберите коэффициент:
const float kalib0=7.970;// калибровка вольтметра А0 по максимальному напряжению 30V I=0

105

Re: Вольтамперметр для блока питания (Arduino)

Ув. liman324, благодарю! Буду пробовать.

106

Re: Вольтамперметр для блока питания (Arduino)

liman324 пишет:

Нужно подобрать делитель напряжения, чтобы при 50 В напряжение на делителе не превышало 4 В, далее просто подберите коэффициент:
const float kalib0=7.970;// калибровка вольтметра А0 по максимальному напряжению 30V I=0

Здравствуйте! Если я правильно Вас понял, сначала резисторы R1-R6 надо увеличить в 1,66 раза (50V:30V=1,66). Затем программная калибровка.

107

Re: Вольтамперметр для блока питания (Arduino)

Да, все верно. Главное чтобы на входе АЦП напряжение не превышало 4 В

108

Re: Вольтамперметр для блока питания (Arduino)

А какое минимальное значение тока можно замерить с шунтом 0.01 Ом ?

109

Re: Вольтамперметр для блока питания (Arduino)

А какое минимальное значение тока можно замерить с шунтом 0.01 Ом ?

110

Re: Вольтамперметр для блока питания (Arduino)

Думаю что не менее 0,01 А

111

Re: Вольтамперметр для блока питания (Arduino)

ну я так и прикинул, протестировал.
У меня есть блок питания собран по схеме старичка
там тоже ( 0,01 А )  + - чуть чуть и это в начале диапазона измерения  только нет АЦП стоит atmega8 всего.

112

Re: Вольтамперметр для блока питания (Arduino)

а если использовать  усилитель сигнала с резистивных датчиков тока  MAX4372T
умножает в 20 раз при шунте в  0.01 Ом 10 амперах с него выйдет 2 вольта значит до 20 ампер можно измерять (4 вольта)

113

Re: Вольтамперметр для блока питания (Arduino)

GAIN_ONE (4.096 В) для ADS1115. Не вижу смысла использовать MAX4372T, АЦП ADS1115 может измерить такое напряжение.

114 (2026-02-16 13:38:31 отредактировано evgeny.c)

Re: Вольтамперметр для блока питания (Arduino)

Собрал вольтамперметр почему то плавают показания
в чём может быть причина ?
#include <Wire.h>                // SDA и SCL (А4 и А5)
#include <DallasTemperature.h>
#include <Adafruit_ADS1015.h>    // Adafruit_ADS1X15-master.zip
Adafruit_ADS1115 ads;
#include <OneWire.h>
OneWire oneWire(A1);            // вход для датчиков 18b20
DallasTemperature t(&oneWire);
#include <LiquidCrystal.h>
LiquidCrystal lcd(13, 12, 11, 10, 9, 8, 7);// RS, RW, E, D4, D5, D6, D7

  int u0, u1, a2, a3, i ;
  float u_0,u_1,u_ob0,u_ob1,a_2,a_3,a_ob2,a_ob3,i_reg;
  const float kalib0 = 9.590 ; // калибровка вольтметра А0 по максимальному напряжению 30V I=0  const float kalib0=7.970;
  const float kalib2 = 1.050 ; // калибровка амперметра А2 по максимальному току 10 А           const float kalib2=1.000;

void setup(void) { lcd.begin(16, 2); ads.begin(); t.begin();
}

void loop() { {
                                           // вольтметр
while(i<10){i++;ads.setGain(GAIN_ONE);    u0 = ads.readADC_SingleEnded(0);u_0 = u0*0.125*kalib0/1000;
                                           u1 = ads.readADC_SingleEnded(1);u_1 = u1*0.125*kalib0/1000;
                                           u_ob0=u_ob0+u_0;u_ob1=u_ob1+u_1; }
                                           u_0=u_ob0/10;u_ob0=0;u_1=u_ob1/10;u_ob1=0;i=0;  u_0=u_0-u_1;
   
                                            // амперметр
while(i<10){i++;ads.setGain(GAIN_SIXTEEN); a2 = ads.readADC_SingleEnded(2); a_2 = a2*0.0078125*kalib2/10;
                                            a3 = ads.readADC_SingleEnded(3); a_3 = a3*0.0078125*kalib2/10;
                                            a_ob2=a_ob2+a_2; a_ob3=a_ob3+a_3; }
                                            a_3=a_ob3/10; a_ob3=0; a_2=a_ob2/10 ;a_ob2=0; i=0; a_2=a_2-a_3;
   
                                            // вывод на экран
   if(a_2<0.005){a_2=0;}if(u_0<0.005){u_0=0; }   // измерения начинаются с 0,005 В и с 0,005 А
   u_0=u_0-(a_2/100);  }                         // компенсация напряжения шунта

   
   if(abs(u_0)>9.999){ lcd.setCursor(0,0); lcd.print("U="); lcd.print(abs(u_0),1); lcd.print("V"); }
   else              { lcd.setCursor(0,0); lcd.print("U="); lcd.print(abs(u_0),2); lcd.print("V"); }
     
   if(abs(a_2)>9.999){ lcd.setCursor(9,0); lcd.print("I="); lcd.print(abs(a_2),1); lcd.print("A"); }
   else              { lcd.setCursor(9,0); lcd.print("I="); lcd.print(abs(a_2),2); lcd.print("A"); }
                     
   if((u_0 * a_2)>9.999) { lcd.setCursor(0, 1); lcd.print("P="); lcd.print( (u_0 * a_2), 1); lcd.setCursor(6, 1); lcd.print("W"); }
   else                  { lcd.setCursor(0, 1); lcd.print("P="); lcd.print( (u_0 * a_2), 2); lcd.setCursor(6, 1); lcd.print("W"); }

    t.requestTemperatures();
    lcd.setCursor(9, 1);lcd.print("t="); lcd.print(t.getTempCByIndex(0)-1,1); lcd.print("C");
}
http://forum.rcl-radio.ru/uploads/images/2026/02/3efcf0fbf792af558511cba694c6ce83.jpg

115

Re: Вольтамперметр для блока питания (Arduino)

Поставьте конденсаторы 0,1 мкФ на входах АЦП относительно GND, возможно это поможет.

116

Re: Вольтамперметр для блока питания (Arduino)

Пробывал уже ставил 1 мкФ эффекта нет

117

Re: Вольтамперметр для блока питания (Arduino)

Где то наводки идут. Сама схема измерения делает по 10 измерений тока и напряжения и вычисляет среднее значение, что само по себе дает более стабильные показания.

118

Re: Вольтамперметр для блока питания (Arduino)

А может АЦП глючная ?
брал 3 штуки одна вообще не работает вторая меряет только ток и то в примерно в половину третья стоит сейчас

119

Re: Вольтамперметр для блока питания (Arduino)

проверьте ацп i2c сканером, по умолчанию адрес 0х48, адрес можно изменить, что в библиотеке, что на самой АЦП.

А может АЦП глючная ?

- маловероятно

я использовал модуль

120

Re: Вольтамперметр для блока питания (Arduino)

http://forum.rcl-radio.ru/uploads/images/2026/02/23204ec3f303f6c494fe0cce4ca49d8e.png

121

Re: Вольтамперметр для блока питания (Arduino)

А со скетче я ничего не намудрил ?

122

Re: Вольтамперметр для блока питания (Arduino)

да вроде нет

123

Re: Вольтамперметр для блока питания (Arduino)

ну придётся ждать новую АЦП там видно будет

124

Re: Вольтамперметр для блока питания (Arduino)

Всё разобрался плавало из за компа
а как в эту строчку   if(a_2<0.005){a_2=0;}if(u_0<0.005){u_0=0; }   // измерения начинаются с 0,005 В и с 0,005 А
добавить мощность ?

125

Re: Вольтамперметр для блока питания (Arduino)

float w = u_0 * a_2;

if(w<0.005){w=0;}

  if((u_0 * a_2)>9.999) { lcd.setCursor(0, 1); lcd.print("P="); lcd.print(w), 1); lcd.setCursor(6, 1); lcd.print("W"); }
   else                  { lcd.setCursor(0, 1); lcd.print("P="); lcd.print( (w), 2); lcd.setCursor(6, 1); lcd.print("W"); }