Очень точный вольтметр на arduino
- Войдите на сайт для отправки комментариев
Похожих тем много, но у меня возникла необходимость измерять постоянное напряжение с высокой точностью. Имеющийся Fluke 17B меня не устраивал, нужный мне прибор стоит дорого. Поэтому покопал интернет и сделал свой. Корпус от китайца. Индикатор 16х2 I2C. Дуина Nano V3. И главная деталь "автомобиля" - 24 битный АЦП с хорошим источником опорного напряжения на борту, куплен с ebay. Название модуля LTC2400 24bit analog to digital converter ADC module temp sensor SPI AVR arduino. Стоимость тысяча рублей. Кому интересны весьма приличные характеристики этого модуля, поиском на ebay, и внизу в описании товара есть ссылка на документацию. Получился вольметр с одним диапазоном измерения от 0 до 17 вольт. При постройке прибора потребовался более менее хороший источник опорного напряжения желательно с невысокой ценой (1000 руб) , и он был найден и куплен там же на ebay. Имеет четыре переключаемых опорных напряжения. Купленый источник опорного напряжения и мой вольтметр были проверены на служебных Fluke с ценниками от самолетов. Я остался доволен. Пять знаков после запятой совпадают. Шестой знак я программно убрал, из за неверного его измерения связанного с паразитной емкостью измерительного канала. Написание софта не представит сложности для начинающего ардуинщика.
Так выглядит вольтметр.
Замер напряжения на Li-Pol аккуме.
Так выглядит АЦП 24 бит с опорником.
Это китайский источник опорного напряжения на 2.5 5.0 7.5 10.0 вольт. Удобен для настройки всякой всячины.
На тыльной стороне китайца напряжения измерянные на заводе изготовителе.
Ну и конечно же данные можно передавать в компьютер по USB.
Если кому будет полезен мой опыт, то удачных проектов!
если не секрет зачем такая высокая точность? что за прибор такой
Ай, яй, яй.. поставили такую хорошую начинку, а корпус всё портит. Уж можно что-то готовое было в чип-дипе взять, коли способностей корпуса клеить нет.
Тоже уже давно вынашиваю идею подобного девайса, но пока что всё ещё балуюсь:
0..3.3000 В, но всё это несерьёзно, ибо программное растяжение разрядности.
... программное растяжение разрядности.
Поясните, пожалуйста, что это значит?
... программное растяжение разрядности.
Поясните, пожалуйста, что это значит?
http://arduino.ru/forum/proekty/mnogokanalnyi-voltmetr-c-lcd-displeem-na...
К сожалению оверсэмплинг имеет два существенных недостатка:
1. Абсолютно беспомощен против систематической ошибки, уменьшая лишь случайную.
2. Случайную погрешность он тоже снижает гораздо в меньшей степени, чем, как правило, считают те, кто его применяет. Например, по указанной выше ссылке утверждается о "соответствии 14-битному АЦП", что сразу вызывает вопрос: А по какому именно параметру соответствует?
[quote=mik.
Так выглядит АЦП 24 бит с опорником.
Это китайский источник опорного напряжения на 2.5 5.0 7.5 10.0 вольт. Удобен для настройки всякой всячины.
На тыльной стороне китайца напряжения измерянные на заводе изготовителе.
.
Если кому будет полезен мой опыт, то удачных проектов!
[/quote]
Если возможно - адреса магазинов этих девайсов.
Привет всем. Прикупил такойже ацп но не могу залить стандартный скетч для просмотра напряжения в мониторенге порта.
Подчеркивает строчку b0 = SPI_read(); // read 4 bytes adc raw data with SPI
И выдает ошибку Arduino: 1.6.10 (Windows 10), Плата:"Arduino Nano, ATmega328"
C:\Users\Ёжик\Desktop\LTC2400\Arduino sketch\LTC2400_ADC_Serial_out\LTC2400_ADC_Serial_out.ino: In function 'void loop()':
LTC2400_ADC_Serial_out:71: error: 'SPI_read' was not declared in this scope
LTC2400_ADC_Serial_out:98: error: 'printFloat' was not declared in this scope
exit status 1
'SPI_read' was not declared in this scope
Может кто сталкивался ?
Dron_S я бы русские буквы из путей убрал, для начала
Куда такая точнось? неужели последние разряды не бегают при измерении к примеру лития ?
// есть гораздо распространенные варианты точных АЦП , к примеру MCP3421 - 18бит , корпус sot23-6 , 3в мериет до 4го знака
стоимость на али за 10шт около 500руб. используют в дешевых точных волтметрах 0-3.0000 здесь
по форуму много есть по поиску MCP3421
Привет всем удалось победить данную проблему установкой Arduino: 1.6.08, может еще винда 10-я забитая всякой хренью. Но возникла другая проблема. После заливки программы в мониторинге порта показывает 2,051343 Вольт, но никакой источник питания не подключен. Если подключить 1,5 вольтовою батарейку то показывает точно 1,5 и т.д. все как бы работает. Но вот от куда 2,051343 ?
Ребятки, может кому-то понадобится, тут есть подробная и очень простая схема вольтметра на Arduino
Dron_S, я начинал с кода
Этот код нормально работал у меня.
Из за большого времени преобразования АЦП LTC2400 , я свой вольтметр переделал на ads1115 ( 16 bit I2C ). Сделал два входа, один дифференцияльный +/- 5.2 вольт с индикацией 4 знака после точки , второй обычный single с делителем напряжения на 11 и диапазоном измерения до 55 вольт с индикацией 2 знака после точки. Питание от двух аккумуляторов 18650 . И добавил вывод на сериал порт в формате ZeroFormat LogView. Этот вариант вольтметра мне нравиться намного больше.
Также сама ардуина через делитель измеряет напряжение аккумуляторов , и в процентах показывает заряд ,по уравнению полученному при контрольной разрядке аккумуляторов.
Интересный материал по машиностроению.
Интересный материал по машиностроению.
mikelari Если не трудно, не могли бы выложить скетч на ads1115 ?
Тоже прикупил себе ads1115 (еще INA219), есть подобная надобность сделать логгер с хорошим разрешением до 50В на зарядное устройство (либо зарядное с внешним АЦП) ну и ток на шунте мерить, желательно в диф режиме, чтобы мерить в обе стороны (заряд/разряд). Правда сразу возникли вопросы - как правильно реализовать в коде, чтобы разрешение было по максимуму.. к тому же важно не потерять скорость сэмплирования - 800 сэмплов.. и т.д.
Хотелось еще спросить, формат ZeroFormat LogView - это значит можно смотреть в стандартной программе для зарядников LogView?
Поделитесь пожалуйста схемой включения Вашего вольтметра для АЦП LTC2400. И возможно ли сделать вольамперметр на его основе?
Вот http://www.dropbox.com/s/tlvosmpspz9b9nb/Adafruit_ADS1X15.zip?dl=0 исправленная библиотека для ADS1115 (860 samples per second) . На 100кГц I2C у меня измерял 435 раз в секунду . На 400кГц I2C не пробовал. Примеры из библиотеки работают нормально.
Скетч-пожалуйста, но писал его давно, и в нем не самые красивые решения
И да, можно смотреть в стандартной программе для зарядников LogView. Нужно только сделать ini файл для вольтметра. Нужно будет, скину свой ini файл.
При написании разных измерялок часто требуется применение различных фильтров. Мне понравился вариант описаный в статье https://geektimes.ru/post/269202/ но в этом измерятеле такой фильтр еще не реализован.
По АЦП LTC2400 включен был по схеме
Схема модуля http://www.dropbox.com/s/qtsn966we7rpmny/PCB%20schematic.pdf?dl=0
Vin1 измеряет до 4.096 В
Vin2 измеряет до 17 вольт (предварительно замкнуть перемычку JP2)
Можно сделать свой делитель, и измерить сколько нужно.
Вольтамперметр на его основе? Сделать можно всё что угодно, где АЦП можно впихнуть и если устраивает 24bit c Conversion Time 160 mS.
По АЦП LTC2400 включен был по схеме
Схема модуля http://www.dropbox.com/s/qtsn966we7rpmny/PCB%20schematic.pdf?dl=0
Vin1 измеряет до 4.096 В
Vin2 измеряет до 17 вольт (предварительно замкнуть перемычку JP2)
Можно сделать свой делитель, и измерить сколько нужно.
Вольтамперметр на его основе? Сделать можно всё что угодно, где АЦП можно впихнуть и если устраивает 24bit c Conversion Time 160 mS.
По этому АЦП не знаю. Готовое решение https://ru.aliexpress.com/item/RD-DPS3012-Constant-Voltage-current-Step-down-Programmable-Power-Supply-module-buck-Voltage-converter-color-LCD/32685179404.html?spm=2114.03020208.3.2.bYXiNa&ws_ab_test=searchweb0_0,searchweb201602_2_10065_10068_10000009_10084_10083_10080_10082_10081_10060_10062_10056_10055_10037_10054_10059_10032_10099_10078_10079_10077_10093_426_10103_10073_10102_10096_10052_10108_10053_10107_10050_10106_10051,searchweb201603_3,afswitch_5&btsid=c0d04963-448a-42f8-b86a-b114d7171ad8
Да я находил этот модуль, но дело в том что уже готова плата будущего двухканального блока питания и трансформатор 2х24х15В 10А. Было опробовано много популярных ВАметров на PIC и Atmega8 и у всех в какой то части диапазона была приличная нелинейность. А по задуму хочется сделать ВАметр с режимом внешнего измерения посредством отключения входа с блока питания и переключения на внешний источник напряжения. Такой себе вольтметр+блок питания. Купил бы готовый модуль если б знал заранее что будет такая возня и плохие результаты ВАметров. Потому увидев возможности Вашего АЦП понадеялся что есть хотя бы фрагмент схемы на пике или атмеге, на той же ардуине нано.
MitsuokaOroshi, вам эти 24 бита ни к чему. Совершенно. Простой расчёт - точность вольтмера в составе БП должна быть чуть лучше, чем уровень помех БП. Если взять среднестатический импульсный БП , то примерный уровень шума у них 100мв. Т.е. нет смысла отображать напряжения после одной цифры за запятой, т.к. там заведомо мусор. Соответссно минимальная разрядность АЦП должна быть 30 /0.1 = 300 градаций, или с запасом - 9 битное (512 градаций) АЦП. Если БП трансформаторный-линейный, то средний шум у них 10мв. Соответссно нужно не менее 3000 градаций, или 12-битный АЦП.
Так же много пробовал ( в том числе строить ваттметр на ads 1115 с нормальными шунтами и также были вопросы с нелинейностью), поэтому INA226 http://arduino.ru/forum/proekty/vattmetr-3-kh-kanalnyi-s-perspektivoi и далее смогу наращивать мясо на этот скелет, впрочем уже этим занимаюсь. Возможности/хотелки ограничиваются деньгами и фантазией.
Для трансформаторного блока питания - да, не нужен. Но я же писал что хочется применить его и как внешний вольтметр. Ну да ладно, благодарю за потраченное время.
Так же много пробовал ( в том числе строить ваттметр на ads 1115 с нормальными шунтами и также были вопросы с нелинейностью), поэтому INA226 http://arduino.ru/forum/proekty/vattmetr-3-kh-kanalnyi-s-perspektivoi и далее смогу наращивать мясо на этот скелет, впрочем уже этим занимаюсь. Возможности/хотелки ограничиваются деньгами и фантазией.
Может кому пригодится черновик работа с ads1115 без библиотеки Adafruit. Только биты конфига сами выбираем по даташиту.
Причесал немного софт, вернее в части работы с ads1115 сильно переделал:
- отказался от библиотеки ads1115
- конфиг теперь 128 SPS
- запускается каждое измерение, а не цикличный режим работы АЦП
- пусто-гон по кругу ожидает окончание каждого измерения
- добавлен фильтр измерений типа как я описывал выше
- переменными Filter_read и Filter_get устанавливается настройки фильтра. У меня примерно около 480mS круг и выдача данных на свой дисплей и в порт для LogView
- прилагаю ini файл для LogView
http://www.dropbox.com/s/cgslaod0kjfb74h/LogView_ini.zip?dl=0
Код еще можно чистить и править, но работает нормально на nano
Схема модуля http://www.dropbox.com/s/qtsn966we7rpmny/PCB%20schematic.pdf?dl=0
Vin1 измеряет до 4.096 В
Vin2 измеряет до 17 вольт (предварительно замкнуть перемычку JP2)
тоже брал такую платку. опора там никуда не годится, менял на даташитную lt1021 на проводках, затем стало проще переразвести плату.
на ltc2400 интересный проект милливольтметра есть https://www.youtube.com/watch?v=CiTPUmqE3Yg
Купил опору TI LM4040 A41IDBZR 4.096V 0.1%, (дорогие заразы) тоже хочу попробовать поменять на этом модуле, чтоб модуль использовать для милливольтметра/миллиомметра.
да не так чтобы очень с учетом какая точность требуется
по-моему lm4040 не очень сюда годится с ее 100ppm/C
это, конечно, лучше, чем то, что в платку поставили китайцы, но гораздо хуже, чем недорогие (ну, относительно) ref198/lt1021, не говоря уже о lt1027/max6341
dimax как-то Вы пессимистично смотрите на шум линейников.
у наиболее частого случая, древней 7815 Output Noise Voltage B =10Hz to 100KHz TJ = 25°C - max 40 μV/VO, это 600мкВ на 15В выходного напряжения, но никак не десятки миллиВольт.
sls, это собственный шум голой микрухи, А я имел ввиду средний суммарный уровень помех линейных бп. Даже если отдельные лабораторники имеет уровень пульсаций не хуже 1мв, то всё равно эта цифра весьма иллюзорная, т.к. касается только клемм выхода при статической нагрузке.
sls, это собственный шум голой микрухи, А я имел ввиду средний суммарный уровень помех линейных бп.
в общем-то у линейников основной источник шума и есть ИОН, далее по общему вкладу идет делитель напряжения с него, остальные части схемы шумят мало
предлагаю помириться на том, что для нормально спроектированного и собранного линейного ЛБП в случае необходимости вполне можно использовать измеритель напряжения с тремя цифрами после запятой, но никак не одной :)
sls, да я не против, сам люблю попугаев за запятой. Как говорится: "Ах, обмануть меня не трудно, я сам обманываться рад..."(С) Пушкин :-)
dimax, я их тоже полюбляю, в особенности стабильные и достоверные :)
Добрый день, собрал измеритель напряжения.
Врет при увеличении напряжения, погрешность достигает 0,12 вольта..
На ареф замедены опорные 2,5 В с REF192FS ( пальцем ее обозначил). Подключил по datasheet, опорное напряжение стабильно во всем диапазоне измеряемых напряжений.
в скетче указал, что analogReference ( EXTERNAL )
Питается хозяйство от импульсного стабилизатора. напряжение снимается с делителя 1к и 14 к ( тоже пальцами указал). До этого пробовал 430 к и 36 к , такой же результат.
Рассчет происходит тупо умножением измеренного напряжения на экспериментально подобранный коэффициент
Что я могу делать не так?