Uploaded by Goga Zfopidgtu

Вольтметр-амперметр на базе Arduino с записью на microsd-карту

advertisement
Вольтметр-амперметр на базе Arduino с записью на microSD-карту
НАЗНАЧЕНИЕ
Прибор предназначен для одновременного измерения постоянного напряжения и тока с записью
результатов на карту памяти формата microSD.
Пределы измерения напряжения (0…20V) и тока
(-5A…5A) выбраны исходя из того, что прибор
используется в основном для наблюдения за
процессами заряда-разряда 12-вольтовых свинцовокислотных аккумуляторов небольшой емкости в
источниках бесперебойного питания.
Текущие значения напряжения и тока отображаются
на дисплее, а запись результатов измерений в файл
формата CSV (лог-файл) происходит через заданные интервалы времени, устанавливаемые в
пределах от 1 до 30 минут.
УСТРОЙСТВО
Основой прибора является микроконтроллер Arduino Nano, к которому подключены следующие
периферийные модули:





модуль LCD дисплея 1602 с конвертером интерфейса I2C
модуль АЦП на базе ADS1115
модуль часов реального времени на базе DS1307
модуль адаптера microSD карты
модуль датчика тока на базе ACS712 (2 шт.)
Символьный LCD дисплей имеет 2 строки по 16 символов и используется для отображения
результатов измерений, а также для вывода различной служебной информации в режиме
настройки.
Четырехканальный 16-разрядный АЦП ADS1115 служит для преобразования входных аналоговых
сигналов в цифровую форму для дальнейшей обработки микроконтроллером. На один из его
каналов через входной делитель поступает
измеряемое напряжение, на два других – выходные
сигналы от модулей ACS712, пропорциональные
измеряемому току. Четвертый канал АЦП не
используется.
Часы реального времени необходимы для получения
данных о текущей дате и времени, записываемых в
лог-файл вместе с измеренными значениями тока и
напряжения, они же используются для задания
временных интервалов между записями. Адаптер
карты памяти содержит соответствующее гнездо для
установки карты формата microSD, а также
микросхему преобразователя уровней входных и
выходных сигналов, позволяющий привести 5-вольтовые логические сигналы Arduino к уровням
3.3 вольта, необходимым для работы карты памяти.
Модули датчиков тока включены по дифференциальной схеме, при которой один и тот же
измеряемый ток проходит через два датчика в противоположных направлениях, что позволяет
1
резко снизить влияние температурного дрейфа датчиков, нестабильности источников питания и
окружающих магнитных полей на точность измерений. Подробнее о преимуществах такого
включения можно прочитать далее.
Прибор подключается к измеряемым электрическим цепям при помощи двух пар гибких
проводов, включаемых в соответствующие гнезда – одна пара гнезд служит для измерения
напряжения и подключается параллельно к клеммам аккумулятора, процессы заряда или разряда
которого необходимо наблюдать, другая пара включается последовательно с этим аккумулятором
и служит для измерения силы тока его заряда/разряда. Цепь измерения тока не имеет
гальванической связи с остальными цепями прибора, поэтому ток можно измерять как в
положительном проводе, идущем к аккумулятору от плюса зарядного устройства и нагрузки, так и
в отрицательном, идущем к аккумулятору от общего провода (массы).
Все элементы электрической схемы прибора размещены в пластмассовом корпусе. На лицевой
панели корпуса размещены дисплей и кнопки управления, а на боковых стенках корпуса – разъем
для подключения внешнего источника питания, гнезда для подключения измеряемых цепей
напряжения и тока, а также имеется прорезь для извлечения/установки карты памяти.
Прибор питается от внешнего стабилизированного источника питания напряжением 9V.
Потребляемый от источника ток около 70 мА. Выключателя питания прибор не имеет и
включается при подаче питания от внешнего источника.
РЕЖИМЫ РАБОТЫ
Вольтметр-амперметр работает в трех режимах
MEASUREMENT (ИЗМЕРЕНИЕ)
Прибор измеряет значение напряжения и тока и отображает их
на дисплее. Показания обновляются с интервалом примерно
0.8 секунды.
RECORDING (ЗАПИСЬ)
Прибор измеряет значение напряжения и тока, отображает их
на дисплее и записывает в файл формата CSV вместе с текущим
временем и датой. Показания на дисплее обновляются с
интервалом примерно 0.8 секунды, а запись в файл происходит
через равные интервалы времени, устанавливаемые в режиме
SETUP в пределах от 1 до 30 минут.
SETUP (НАСТРОЙКА)
Измерение не производится. При помощи кнопок управления
пользователь настраивает текущее время, дату и интервал
времени для записи в файл.
При каждом включении прибора выполняется проверка наличия карты памяти и, если карта
вставлена в соответствующее гнездо, прибор сразу переходит в режим MEASUREMENT. Если же
карта microSD в адаптере отсутствует, на дисплей на 2-3 секунды выводится соответствующее
предупреждение, а затем прибор переходит в режим MEASUREMENT, как обычно, однако перейти
в режим RECORDING нажатием кнопки «START» в этом случае не получится. Для того чтобы
выполнить запись результатов измерений в файл, нужно будет выключить питание прибора,
вставить на место карту памяти, а затем снова включить прибор.
2
Таблица 1. Функции кнопок и примеры показаний на дисплее в каждом из режимов.
Режим
Назначение кнопок
MEASUREMENT
(ИЗМЕРЕНИЕ)
SW1 (белая) – «SETUP» – переход в
режим настройки
SW2 (зеленая) – «START» – создание
нового лог-файла на карте памяти и
переход в режим записи
SW3 (красная) – не задействована
SW1 (белая) – не задействована
SW2 (зеленая) – не задействована
SW3 (красная) – «STOP» - завершение
записи, закрытие лог-файла и возврат
в режим измерения
SW1 (белая) – «NEXT» – переход к
следующему настраиваемому
параметру, после завершения
настройки всех параметров – возврат
в режим измерения.
SW2 (зеленая) – «UP» – увеличение
настраиваемого параметра на 1
SW3 (красная) – «DOWN» –
уменьшение настраиваемого
параметра на 1
RECORDING
(ЗАПИСЬ)
SETUP
(НАСТРОЙКА)
Примеры показаний на дисплее
символ “R” - мигает
ФОРМАТ ЛОГ-ФАЙЛА
В режиме измерения при нажатии кнопки «START» создается новый лог-файл на карте памяти и
начинается запись измеренных значений в этот файл. Имя файла присваивается автоматически
при создании и имеет формат MMDDHHmm.csv, где MM – две цифры текущего месяца (01...12),
DD – две цифры текущего дня (01...31), HH – две цифры часа (00...23) и mm – две цифры минуты
(00...59). Например, файл, созданный 1-го февраля в 15:30 будет иметь имя 02011530.csv.
Каждая строка файла содержит одну запись, включающую текущую дату, время и измеренные
значения напряжения и тока, разделенные запятыми. Записи разделяются символами 0x0D и 0x0A
(CR и LF) и добавляются в файл в течение всего времени, пока прибор находится в режиме
RECORDING, через заданные интервалы времени. Например, если прибор находился в режиме
записи в течение часа и был установлен интервал времени между записями 10 минут, то
содержимое файла будет выглядеть следующим образом:
2017/11/13
2017/11/13
2017/11/13
2017/11/13
2017/11/13
2017/11/13
15:12:02,
15:22:02,
15:32:02,
15:42:02,
15:52:02,
16:02:02,
3.3742,
3.3744,
3.3745,
3.3745,
3.3745,
3.3745,
-0.3058
-0.3076
-0.3023
-0.3054
-0.3030
-0.3035
При нажатии кнопки «STOP» запись прекращается, файл закрывается, после чего карту памяти
можно извлечь из прибора и перенести в компьютер, где данные из файла могут быть
импортированы в Microsoft Excel или в другую программу для дальнейшей обработки.
3
ЭЛЕКТРИЧЕСКАЯ СХЕМА
Принципиальная электрическая схема прибора показана на рисунке:
Измеряемое напряжение поступает на вход VOLTAGE INPUT и через делитель R1, R2, понижающий
напряжение в 5 раз, поступает на вход A0 модуля АЦП U3. Благодаря делителю на вход прибора
можно подавать напряжения в диапазоне 0…20 V. Диод D1 защищает вход АЦП от случайной
подачи напряжения отрицательной полярности, которое может вывести микросхему АЦП из
строя.
Измеряемый ток со входа CURRENT INPUT поступает на входы IN0 и IN1 микросхем ACS712
модулей U5 и U6. Эти микросхемы содержат датчики Холла, преобразующие магнитное поле,
возникающее в проводнике от протекания по нему измеряемого тока, в пропорциональное ему
выходное напряжение. Главным достоинством микросхем ACS712 является полная изоляция цепи
измеряемого тока от остальных цепей микросхемы и, соответственно, от всей электрической
схемы прибора, что дает возможность подключать вход CURRENT INPUT в любую точку схемы
исследуемого устройства, например, как в положительный, так и в отрицательный провод
аккумулятора, не опасаясь короткого замыкания с цепью измеряемого напряжения. Этим модули
на базе ACS712 выгодно отличаются от более распространенных датчиков тока, измеряющих
падение напряжения на шунте, включенном в измеряемую цепь. Еще одним полезным свойством
микросхем ACS712 является возможность измерения тока любой полярности, что очень удобно
при исследовании процессов в аккумуляторах, у которых, как известно, ток при зарядке течет в
одну сторону, а при разрядке – в другую.
К сожалению, кроме отмеченных достоинств, микросхемы ACS712 имеют и некоторые недостатки,
заключающиеся в значительном дрейфе выходного напряжения от окружающей температуры, от
напряжения источника питания и, особенно, от силы и направления окружающих магнитных
полей, включая магнитное поле Земли. Это затрудняет измерение малых токов на уровне единиц
или даже десятков миллиампер. Для устранения этого недостатка в схеме использованы два
одинаковых модуля, выходные сигналы которых подаются на входы A1 и A2 модуля АЦП U3, где
преобразуются в цифровую форму, а затем программно вычитаются друг из друга
микроконтроллером. При этом все погрешности, имеющие у двух модулей одинаковый знак и
близкую величину, значительно уменьшаются (в идеале, вообще, становятся равными нулю), а
4
полезный сигнал, наоборот, удваивается из-за встречного включения датчиков тока. Обратите
внимание, что входы IN0 и IN1 двух модулей соединены таким образом, что измеряемый ток
протекает через них в противоположных направлениях. Такое включение датчиков и дальнейшее
вычитание их выходных напряжений образует дифференциальную схему, позволяющую
значительно повысить точность измерений, что особенно заметно при малых величинах
измеряемых токов.
Еще одним недостатком модулей на базе ACS712 является высокий уровень собственных шумов
на выходах, который достигает десятков милливольт, что также отрицательно сказывается на
точности измерений малых токов. Для подавления этих шумов выходы модулей U5 и U6
соединены со входами A1 и A2 модуля АЦП U3 через простейшие RC-фильтры нижних частот R3C1
и R4C2.
Модули часов реального времени, АЦП и дисплея подключаются к микроконтроллеру по шине
I2C, таким образом, для обмена данными с этими модулями задействовано всего 2 входа-выхода
Arduino (A4, A5), а microSD карта подключается при помощи интерфейса SPI (входы-выходы D10,
D11, D12, D13). Кроме того, в приборе имеются три кнопки управления, подключенные ко входам
D2, D3 и D4 микроконтроллера и необходимые для переключения режимов работы и настройки
параметров.
Питающее напряжение 9V поступает на микроконтроллер U1 от внешнего источника питания, а
все остальные модули питаются напряжением 5V от встроенного стабилизатора напряжения
Arduino Nano (цепь VCC).
КОМПОНЕНТЫ
Основные компоненты, необходимые для сборки прибора, показаны на рисунке:
Цифрами обозначены:
1. Микроконтроллер Arduino Nano, вернее, его аналог, изготовленный безымянным
китайским производителем, но работающий при этом не хуже настоящего.
2. Комбинированная плата Data Logging Board фирмы Deek-Robot, объединяющая в себе
модуль часов реального времени и модуль адаптера карты microSD.
5
3. Модуль АЦП на базе 4-канальной 16-разрядной микросхемы ADS1115 фирмы Texas
Instruments
4. Модуль датчика тока на базе микросхемы ACS712 фирмы Allegro (таких модулей нужно 2
штуки). Максимальный измеряемый модулем ток 5А.
5. Три кнопки без фиксации 12x12 мм с цветными колпачками
6. Модуль символьного LCD дисплея 1602 (16 символов, 2 строки) с припаянным к нему
конвертером интерфейса I2C
7. Разъем для подключения внешнего источника питания 9V
Кроме перечисленных компонентов понадобятся также несколько резисторов и конденсаторов,
монтажные провода, две пары гнезд для подключения проводов от измеряемых цепей и
небольшой пластмассовый корпус. Для поддержания хода часов реального времени при
выключенном питании прибора необходима литиевая 3-вольтовая батарейка формата CR1220.
КОНСТРУКЦИЯ И МОНТАЖ
Прибор смонтирован в пластмассовом корпусе размерами 112х82х40 мм. Корпус состоит из двух
половинок, соединяемых по углам саморезами. В верхней половине размещен дисплейный
модуль и кнопки управления, в нижней половине – все остальные модули и разъемы.
Для того чтобы половинки корпуса можно было при необходимости разъединить, соединения
между ними сделаны с помощью двух 4-контактных разъемов – один для подключения дисплея,
другой для подключения кнопок управления.
В связи с простотой схемы и малым количеством соединений между модулями печатная плата не
разрабатывалась. Модули и дискретные элементы размещены на куске перфорированной
односторонней макетной платы, их выводы соединены на нижней стороне платы навесными
проводниками. На другом куске той же макетной платы смонтированы кнопки управления.
Модули датчиков тока U5 и U6 должны размещаться параллельно друг другу, и, желательно, как
можно ближе, при этом внешние магнитные поля будут одинаково влиять на их выходные
сигналы, что позволит полностью скомпенсировать их в программе. В конструкции, показанной на
фото, модули U5 и U6 размещены «этажеркой», то есть один под другим. Рекомендуется перед
установкой этих модулей в прибор выпаять находящиеся на них SMD-светодиоды. Эти светодиоды
индицируют подачу напряжения питания на модули, что не имеет большого смысла, когда они
расположены в корпусе прибора и не видны снаружи, однако, они довольно сильно нагреваются в
процессе работы и нагревают находящуюся рядом микросхему ACS712, вызывая заметный дрейф
нуля прибора в первые минуты после его включения.
6
ВОЗМОЖНОСТИ МОДЕРНИЗАЦИИ ПРИБОРА И ЗАМЕНЫ КОМПОНЕНТОВ
При желании диапазон измеряемого напряжения можно расширить, изменив сопротивления
резисторов входного делителя, а диапазон измеряемого тока – заменив 5-амперные модули
датчиков тока на аналогичные 20-амперные или 30-амперные. При этом нужно будет внести
соответствующие поправки в расчетные формулы, использованные в программном коде.
Микроконтроллер Arduino Nano, использованный в приборе, можно заменить другими
микроконтроллерами того же семейства c 5-вольтовыми логическими сигналами и тактовой
частотой 16 MHz, например, Arduino Uno или Arduino Pro Mini, однако при этом надо учитывать,
что Arduino Uno стоит дороже и имеет большие габариты, что потребует увеличения размеров
корпуса прибора, а Arduino Pro Mini не имеет USB интерфейса и в этом случае для загрузки
управляющей программы потребуется внешний программатор (USB to TTL конвертер).
При отсутствии 4-х канального АЦП ADS1115 его можно вообще исключить из схемы, а сигналы со
входного делителя напряжения и с модулей датчиков тока подавать непосредственно на любые
свободные аналоговые входы Arduino, при этом для преобразования этих сигналов в цифровую
форму нужно будет использовать встроенные АЦП микроконтроллера. Надо только иметь в виду,
что в этом случае точность измерений значительно снизится, поскольку АЦП Arduino имеет
разрядность всего 10 (диапазон 0…5 V разбивается на 1024 ступеньки) против разрядности 16 у
ADS1115 (65536 ступенек).
Объединенные на одной плате модули часов реального времени и адаптера карты памяти можно
без изменения электрической схемы заменить двумя отдельными модулями. При этом, если
модуль часов реального времени будет выполнен на базе той же микросхемы DS1307, то и в
программный код не придется вносить никаких изменений, а если микросхема окажется другой,
например, DS1302 или DS1337, то нужно будет использовать в программе соответствующую
библиотеку и внести некоторые изменения в код.
Четвертый канал АЦП ADS1115, не используемый в приборе, можно при желании использовать
для чего-нибудь полезного, например, подключить его к батарейке часов реального времени, что
позволит контролировать ее напряжение и вовремя заменить в случае разрядки. Можно также
добавить еще один входной делитель напряжения, аналогичный уже имеющемуся и подключить
его к этому свободному входу, что позволит измерять и записывать в лог-файл величину
напряжения не в одной точке цепи, как сейчас, а сразу в двух.
Еще одной интересной возможностью использования четвертого входа АЦП является
подключение к нему датчика температуры, расположенного внутри корпуса прибора и
соответствующая коррекция в программе результатов измерений с тем, чтобы скомпенсировать
температурный дрейф датчиков тока и АЦП. Это значительно повысит точность измерений,
особенно, если прибор предполагается использовать вне помещения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ
Полный исходный текст программы микроконтроллера может быть загружен по ссылке –
http://intranet.intsoft.spb.ru/AV-meter/AV-meter.zip.
В программе используются следующие библиотеки, необходимые для взаимодействия
микроконтроллера с периферийными модулями:




Wire (встроенная библиотека Arduino IDE) – работа с интерфейсом I2C для обмена
данными между микроконтроллером и периферийными модулями
Adafruit_ADS1015 (v.1.1) – работа с АЦП на базе ADS1015/ADS1115
LiquidCrystal_I2C – работа с LCD дисплеем
RTClib – работа с модулем часов реального времени на базе DS1307
7


SPI (встроенная библиотека Arduino IDE) – работа с интерфейсом SPI для взаимодействия с
адаптером карты памяти microSD
SD – работа с файловой системой FAT16/FAT32 для записи лог-файла на карту памяти
Непосредственно измерением и записью результатов в лог-файл занимаются всего две функции –
measureSingleEnded и measure. Весь остальной объем текста программы составляют процедуры
взаимодействия с пользователем – отображение на дисплее результатов измерений (в режимах
MEASUREMENT и RECORDING) и различных сообщений (в режиме SETUP), обработка нажатий на
кнопки управления.
Исходный текст подробно прокомментирован и в основном не требует дополнительных
пояснений.
НАСТРОЙКА ПРИБОРА
При исправных компонентах и правильно выполненном монтаже электрическая часть прибора
настройки не требует. После загрузки кода программы в микроконтроллер и включения прибора
достаточно убедиться, что показания на дисплее и функционирование кнопок соответствуют
Таблице 1 в разделе РЕЖИМЫ РАБОТЫ. Возможно, потребуется лишь установить контрастность
изображения на дисплее при помощи переменного резистора, находящегося на плате конвертера
интерфейса I2C. Далее можно приступать к калибровке показаний прибора, которая выполняется
путем подбора значений нескольких констант в коде программы и состоит из двух этапов.
Этап 1 – установка нуля
При первом включении весьма вероятно, что прибор будет показывать ненулевые значения
напряжения и тока, несмотря на то, что его входы не подключены к измеряемой цепи. Причина
появления таких ненулевых показаний различна для каналов напряжения и тока.
В канале измерения напряжения смещение нуля возникает от протекания входного тока АЦП
ADS1115 через резисторы входного делителя напряжения. В результате на входе АЦП возникает
некоторое небольшое (в пределах 10-15mV) начальное смещение. Для того чтобы это смещение
скомпенсировать, необходимо подобрать значение константы voltageZeroCorrection находящейся
в самом начале исходного текста, сразу после объявления используемых в программе библиотек.
Размерность константы соответствует напряжению в вольтах, т.е. если, например, показания на
дисплее при отсутствии входного напряжения будут равны 0.003 V, то текущее значение
константы надо уменьшить на эту величину, если -0.003 V, то на столько же увеличить.
ВАЖНО! Перед тем как подбирать константу voltageZeroCorrection необходимо:
1. Замкнуть перемычкой входные гнезда VOLTAGE INPUT.
2. Дать прибору прогреться во включенном состоянии не менее 15-20 минут для того, чтобы
в его корпусе установился тепловой режим.
В канале измерения тока начальное смещение нуля возникает из-за разброса параметров
микросхем датчиков тока. Хотя в документации микросхем ACS712 указано, что их выходное
напряжение при отсутствии измеряемого тока равно половине напряжения питания, на практике
микросхемы имеют определенный разброс параметров. В результате этого при вычитании их
выходных напряжений в программе не всегда получается нулевое значение. Для компенсации
этой разницы нулевых точек необходимо подобрать значение константы currentZeroCorrection.
При этом замыкать перемычкой входные гнезда CURRENT INPUT не нужно, а вот прогреть прибор
в течение 15-20 минут очень рекомендуется.
К сожалению, даже при самом тщательном подборе константы currentZeroCorrection добиться
стабильных нулевых значений в канале измерения тока скорее всего не удастся – показания на
дисплее при неизменной температуре воздуха будут плавать в пределах 2-3мА вверх и вниз от
нуля, а при изменении температуры могут уползти и до 10-15мА, однако, следует иметь в виду,
8
что эти колебания составляют всего лишь десятые доли процента от верхнего предела измерений
прибора. Вряд ли стоит ожидать от несложной конструкции, собранной из весьма дешевых
комплектующих, точности измерений, сопоставимой с профессиональным лабораторным
оборудованием, поэтому в большинстве случаев можно считать такие незначительные
отклонения допустимыми.
Тем не менее, если даже небольшие колебания нулевой точки нежелательны, то в программе
предусмотрена возможность избавиться от них, включив шумоподавление. Для этого нужно
убрать символы комментария в начале следующей строки:
//#define NOISE_SUPPRESSOR 1
Если константа NOISE_SUPPRESSOR определена, то все результаты измерений менее 3mV в канале
измерения напряжения и менее 3mA в канале измерения тока будут показываться на дисплее как
0. При этом независимо от того, определена эта константа или нет, в лог-файл всегда будут
записываться исходные значения без шумоподавления.
Этап 2 – калибровка чувствительности
После успешной установки нулей в каналах напряжения и тока можно приступать к калибровке
чувствительности. Для этого понадобится следующее оборудование:




Регулируемый источник питания, способный вырабатывать постоянное напряжение до
20V при токе до 5 ампер
Мощный резистор сопротивлением несколько ом, используемый в качестве нагрузки
Лабораторный цифровой амперметр с пределом измерений до 5А максимально
возможного класса точности
Лабораторный цифровой вольтметр с пределом измерений до 20V максимально
возможного класса точности
От качества эталонных лабораторных приборов, применяемых для калибровки чувствительности,
зависит точность, которую удастся достигнуть. Не следует в качестве эталонных приборов
использовать недорогие мультиметры, приобретенные в соседнем хозяйственном магазине, их
точность совершенно недостаточна для успешной калибровки.
Процесс калибровки состоит в подборе значений константы voltageSensitivity для канала
измерения напряжения и константы currentSensitivity для канала измерения тока. Для этого нужно
собрать цепь из регулируемого источника питания и резистора нагрузки, подключить
последовательно с нагрузкой вход CURRENT INPUT прибора и эталонный амперметр, а
параллельно нагрузке – вход VOLTAGE INPUT прибора и эталонный вольтметр. Далее показания
эталонных приборов нужно сравнить с результатами на дисплее и подобрать значения констант
так, чтобы результаты измерений совпали.
ССЫЛКИ НА ИНТЕРНЕТ-РЕСУРСЫ
Электронные компоненты, используемые в проекте:



Микроконтроллер Arduino Nano - https://store.arduino.cc/arduino-nano (англ.)
Плата Data Logging Board фирмы Deek-Robot - http://draeger-it.blog/arduino-lektion-27datenloggen-mit-dem-logging-shield/ (нем.) (Сайт производителя платы на дату
написания статьи находится в нерабочем состоянии, поэтому приведена ссылка на
сторонний ресурс).
Документация микросхемы часов реального времени DS1307 фирмы Dallas Semiconductor https://www.sparkfun.com/datasheets/Components/DS1307.pdf (англ.).
Модуль АЦП ADS1115 - https://learn.adafruit.com/adafruit-4-channel-adc-breakouts/ (англ.).
Документация микросхемы ADS1115 - http://www.ti.com/lit/ds/symlink/ads1115.pdf (англ.).
9


Модуль датчика тока на базе микросхемы ACS712 https://www.elecrow.com/wiki/index.php?title=ACS712_Current_Sensor-_5A (англ.).
Описание принципа работы микросхемы ACS712 - http://embedded-lab.com/blog/a-briefoverview-of-allegro-acs712-current-sensor-part-1/ (англ.).
Документация микросхемы ACS712 https://www.allegromicro.com/~/media/Files/Datasheets/ACS712-Datasheet.ashx (англ.).
LCD дисплей - http://www.winstar.com.tw/products/character-lcd-display-module/16x2lcd.html (англ.), модуль интерфейса I2C для дисплея - http://modtronix.com/mod-lcdi2cbb1.html (англ.)
Все электронные компоненты приобретены на интернет-аукционах eBay и AliExpress, где их легко
найти, воспользовавшись поиском. Ссылки на конкретные предложения о продаже этих
компонентов часто меняются, поэтому здесь не приводятся.
Библиотеки, используемые в проекте:






Wire (встроенная библиотека Arduino IDE) - https://www.arduino.cc/en/Reference/Wire
Adafruit_ADS1015 - https://github.com/adafruit/Adafruit_ADS1X15
LiquidCrystal_I2C - https://github.com/fdebrabander/Arduino-LiquidCrystal-I2C-library
RTCLib - https://github.com/adafruit/RTClib
SPI (встроенная библиотека Arduino IDE) - https://www.arduino.cc/en/Reference/SPI
SD - https://github.com/arduino-libraries/SD
Автор будет рад всем конструктивным замечаниям и предложениям, которые помогут улучшить
это описание и сам прибор.
Текст публикуется в соответствии с условиями лицензии CREATIVE COMMONS Attribution-NonCommercial-ShareAlike 3.0
©2018 Александр Бутовский
г. Санкт-Петербург
11 января 2018
butovsky@nm.ru
10
Download