Как собрать точный цифровой вольтметр-амперметр на Arduino. Какие компоненты потребуются для создания прибора. Как правильно подключить все модули и датчики. Каковы основные режимы работы устройства. Как записывать результаты измерений на карту памяти. Какие есть возможности для модернизации прибора.
Назначение и основные характеристики вольтметра-амперметра на Arduino
Вольтметр-амперметр на базе Arduino — это многофункциональный измерительный прибор, позволяющий одновременно измерять постоянное напряжение и ток, а также записывать результаты измерений на карту памяти. Основные характеристики устройства:
- Диапазон измерения напряжения: 0-20 В
- Диапазон измерения тока: -5…+5 А
- Запись результатов на microSD карту в формате CSV
- Интервал записи настраивается от 1 до 30 минут
- Отображение текущих значений на LCD дисплее
- Питание от внешнего источника 9 В
- Потребляемый ток около 70 мА
Прибор оптимально подходит для наблюдения за процессами заряда-разряда 12-вольтовых свинцово-кислотных аккумуляторов небольшой емкости, например, в источниках бесперебойного питания.
Основные компоненты для сборки вольтметра-амперметра
Для создания вольтметра-амперметра на Arduino потребуются следующие основные компоненты:
- Микроконтроллер Arduino Nano
- LCD дисплей 1602 с I2C конвертером
- Модуль АЦП на базе ADS1115
- Модуль часов реального времени DS1307
- Модуль адаптера microSD карты
- Два модуля датчика тока ACS712 на 5А
- Три кнопки управления
- Резисторы, конденсаторы, провода
- Пластиковый корпус
Кроме этого, понадобится батарейка CR1220 для питания часов реального времени при выключенном приборе. Все компоненты доступны в магазинах электроники и легко приобретаются.
Схема подключения модулей вольтметра-амперметра
Принципиальная электрическая схема прибора выглядит следующим образом:
- Входное измеряемое напряжение подается через делитель на вход A0 модуля АЦП ADS1115
- Измеряемый ток проходит через два встречно включенных датчика ACS712
- Выходы датчиков тока подключены к входам A1 и A2 модуля АЦП
- Модули часов, АЦП и дисплея подключены к Arduino по шине I2C (выводы A4, A5)
- Карта microSD подключена по интерфейсу SPI (выводы 10-13)
- Кнопки управления подключены к цифровым входам D2-D4
Такая схема обеспечивает высокую точность измерений и компенсацию погрешностей датчиков тока. Все модули питаются напряжением 5В от встроенного стабилизатора Arduino Nano.
Конструкция и монтаж вольтметра-амперметра
Прибор монтируется в пластиковом корпусе размером 112х82х40 мм. Основные особенности конструкции:
- Дисплей и кнопки размещены в верхней части корпуса
- Остальные модули и разъемы — в нижней части
- Соединение половинок корпуса — через 4-контактные разъемы
- Монтаж выполняется на перфорированной макетной плате
- Модули датчиков тока располагаются параллельно друг другу
- Светодиоды на модулях тока рекомендуется выпаять
Такая конструкция обеспечивает удобство сборки и обслуживания прибора. При необходимости половинки корпуса легко разъединяются для доступа к компонентам.
Основные режимы работы вольтметра-амперметра
Прибор может работать в трех основных режимах:
- Режим измерения (MEASUREMENT) — измерение и отображение на дисплее текущих значений напряжения и тока с обновлением каждые 0,8 секунды.
- Режим записи (RECORDING) — измерение, отображение на дисплее и запись результатов в CSV файл на карту памяти с заданным интервалом.
- Режим настройки (SETUP) — установка текущего времени, даты и интервала записи в файл при помощи кнопок управления.
Переключение между режимами осуществляется кнопками. При включении питания прибор автоматически переходит в режим измерения.
Запись результатов измерений на карту памяти
В режиме записи результаты измерений сохраняются в CSV файл на microSD карте. Основные особенности:- Имя файла формируется автоматически в формате MMDDHHmm.csv
- Каждая запись содержит дату, время, напряжение и ток
- Интервал между записями настраивается от 1 до 30 минут
- Запись начинается при нажатии кнопки START
- Завершение записи — по кнопке STOP
Сохраненные данные легко импортируются в Excel или другие программы для дальнейшей обработки и анализа. Это позволяет наглядно отслеживать динамику напряжения и тока во времени.
Возможности модернизации вольтметра-амперметра
Конструкция прибора позволяет легко модифицировать его под конкретные задачи:
- Расширение диапазона напряжений изменением входного делителя
- Увеличение диапазона токов заменой датчиков ACS712
- Использование других микроконтроллеров Arduino
- Замена ADS1115 на встроенный АЦП Arduino (с потерей точности)
- Применение отдельных модулей часов и SD-карты
- Добавление датчика температуры
- Измерение напряжения в двух точках схемы
Все эти модификации потребуют соответствующих изменений в программном коде, но позволят адаптировать прибор под самые разные измерительные задачи.
Преимущества вольтметра-амперметра на Arduino
Рассмотренная конструкция вольтметра-амперметра на базе Arduino имеет ряд важных достоинств:
- Высокая точность измерений благодаря 16-битному АЦП
- Возможность одновременного измерения напряжения и тока
- Гальваническая развязка цепи измерения тока
- Компенсация погрешностей датчиков тока
- Запись результатов на SD-карту для последующего анализа
- Гибкость настройки и модернизации под разные задачи
- Доступность компонентов и простота сборки
Все это делает данный прибор отличным инструментом для исследования электрических цепей, аккумуляторов, источников питания и других устройств.
Цифровой вольтметр своими руками… Как⁈ Журнал для тех, кто делает
У меня в мастерской скопилась целая куча батареек — пальчики и мизинчики, таблетки и кроны. Какие-то использованные, какие-то совсем новые. Чтобы найти рабочие, я собрал простой цифровой вольтметр.Что понадобится
— микроконтроллер Arduino Uno
— текстовый ЖК экран
— пара резисторов на 10 кОм
— выпрямительный диод
— клемник
— макетная плата
— соединительные провода «папа-папа»
Микроконтроллер Arduino Uno умеет измерять напряжение на контактах для подключения аналоговых устройств. Плата рассчитана на постоянный ток напряжением до 5 вольт, более высокое напряжение может повредить плату. Некоторые батарейки выдают больше, например «Крона» — 9 вольт. Чтобы не повредить плату, добавлю простой делитель напряжения — он позволит справиться с 10 вольтами.
Соберу вольтметр на макетной плате: так можно быстро менять схему, добавлять новые детали и исправлять ошибки. С паяльником это намного труднее.
Шаг первый. Подключаем подсветку экрана
Жидкокристалический экран — это сложное электронное устройство. Кроме дисплея, на борту модуля предусмотрена собственная память, микропроцессор для обработки сигналов и электронные компоненты, которые помогают менять яркость подсветки и контраст символов. Чтобы экран заработал, придётся подключить минимум 12 контактов.
Начнём с самого простого, подсветки экрана. За неё отвечает пара ног: 15 — это плюс, а 16 — минус. На моём экране они расположены справа, но у вашего модуля порядок ножек может быть другим. Проверьте документацию, эти ножки называются LED+ и LED-
Если всё сделали правильно, загорится подсветка экрана.
Можно начинать подключать остальные ножки.
Шаг 2. Подключаем экран
Разобьём подключение на два этапа. Сначала подключим правую группу пинов, затем — левую.
Пойдём справа налево: подключим ножки 1, 2, 3, 4, 5 и 6.
Ножки 1 (GND) и 2 (UCC)отвечают за питание электроники модуля. Подключим их к плюсу и минусу на макетной плате.
Ножка 3 (Uo) отвечает за управление контрастностью. Проще всего просто подключить её к общему минусу, так контрастность будет максимальной.
Ножки 4 (Ao), 5 (R/W) и 6 (E) служат для управления режимами работы экрана. Подключим среднюю к минусу, а остальные к контактам 13 и 12 на Arduino. Звучит запутанно, но разобраться вам поможет схема подключения.
К сожалению пока проверить экран не получится, чтобы вывести хотя бы одну точку, придётся подключить ещё четыре ножки. На моём модуле это левая группа контактов, они пронумерованы с 14 по 11.
Эти контакты отвечают за передачу символов, которые будут выводиться на экран. Внимательно изучите свой модуль и подключите их в таком порядке:
— 13 (DB6) ножку к 9 контакту,
— 12 (DB5) ножку к 10 контакту,
— 11 (DB4) ножку к 11 контакту (наконец-то номера совпали!).
Шаг 2 и ¾. Проверяем подключение
Втыкая дюжину проводов, немудрено ошибиться. Поэтому проверим как работает экран. Для этого загрузим в плату простую программу. Как это сделать, я рассказывал в самом первом проекте. Если забыли, посмотрите статью о бесконтактном санитайзере.
Скопируйте код и у вас на вашем экране появится мотивирующая записка от нашего журнала.
Шаг три. Добавляем делитель напряжения и защитный диод
— попробуем измерить напряжение на большой батарейке, например на «Кроне» или «Планете»,
— перепутаем полярность, подключим минус батарейки к контакту платы.
С первой проблемой справится простой делитель напряжения. Достаточно пары 10 килоомных сопротивлений. Если соединить их последовательно, они разделят напряжение пополам. Поэтому к плате можно будет подключать батарейки с напряжением до 10 вольт.
Минусовой провод нашего вольтметра подключим через выпрямительный диод. Он работает как простой клапан, пропускает ток только в одном направлении. Если кто-то перепутает полярность, цепь не замкнётся и плата останется цела и невредима. Главное, не перепутайте полярность самого диода: минус на нём обозначен полоской вокруг корпуса.
Теперь загрузите в плату новую программу. Код не сложный, каждая строка прокомментирована, поэтому вы легко разберётесь в коде.
Вот и всё. Всего за десять минут мы собрали функциональный прибор — настоящий цифровой вольтметр. Теперь вы сможете навести порядок в ящике с батарейками. Удачи!
P.S. Если что-то непонятно или же хочется разобраться поглубже, пишите в комментариях. Обязательно отвечу!
🛠 Вольтметр, амперметр, ваттметр своими руками на Ардуино 👈
Где взять точный вольтметр или амперметр? У меня есть проекты, для которых мне сложно найти подходящий прибор в магазине. Поиски готового изделия для меня так и не закончились. Сейчас много чего создаётся на микроконтроллерах, это проще и быстрее, чем самому паять некое устройство с кучей радиодеталей.
У меня была мысль, почему бы не сделать вольтметр или амперметр на Ардуино, пару лет назад я даже начинал проводить некоторые опыты и вот сегодня наткнулся на видеоролики ребят, которые воплотили эту идею в реальность. Спасибо им за проделанную работу!
Сам бы я подобное устройство не собрал, не хватает знаний, я просто любитель. А эти парни молодцы, довели свои изделия до товарного вида. Эти самодельные приборы, гораздо лучше покупных китайских модулей.
Точный вольтметр для блока питания
Вольт-ампер-ваттметр своими руками на Ардуино
-
Иллюзии со зрением, очень интересно!
Дмитрий ДА 20.12.2009
-
Простая технология изготовления объёмных помпонов для всевозможных украшательств.
Yuseka 27.12.2009
-
Эта статья лишь крик души. Где мои 17 лет? Руки до сих пор чешутся сделать макет железной дороги. Последний месяц много читал форумов, скачивал развёртки бумажных паровозов и вагонов. Не знаю дойдёт ли дело до клея, но по крайней мере своё намерение я задокументирую данным постом.
Дмитрий ДА 07.01.2018
ARDUINO: Энциклопедия АРДУИНО: AVMeter
НАЗНАЧЕНИЕ
Прибор предназначен для одновременного измере-ния постоянного напряжения и тока с записью результатов на карту памяти формата 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 вольта, необходимым для работы карты памяти. Модули датчиков тока включены по дифференциальной схеме, при которой один и тот же измеряемый ток проходит через два датчика в противоположных направлениях, что позволяет резко снизить влияние температурного дрейфа датчиков, нестабильности источников питания и окружающих магнитных полей на точность измерений. Подробнее о преимуществах такого включения можно прочитать далее. Прибор подключается к измеряемым электрическим цепям при помощи двух пар гибких проводов, включаемых в соответствующие гнезда – одна пара гнезд служит для измерения напряжения и подключается параллельно к клеммам аккумулятора, процессы заряда или разряда которого необходимо наблюдать, другая пара включается последовательно с этим аккумулятором и служит для измерения силы тока его заряда/разряда. Цепь измерения тока не имеет гальванической связи с остальными цепями прибора, поэтому ток можно измерять как в положительном проводе, идущем к аккумулятору от плюса зарядного устройства и нагрузки, так и в отрицательном, идущем к аккумулятору от общего провода (массы). Все элементы электрической схемы прибора размещены в пластмассовом корпусе. На лицевой панели корпуса размещены дисплей и кнопки управления, а на боковых стенках корпуса – разъем для подключения внешнего источника питания, гнезда для подключения измеряемых цепей напряжения и тока, а также имеется прорезь для извлечения/установки карты памяти. Прибор питается от внешнего стабилизированного источника питания напряжением 9V. Потребляемый от источника ток около 70 мА. Выключателя питания прибор не имеет и включается при подаче питания от внешнего источника.РЕЖИМЫ РАБОТЫ
Вольтметр-амперметр работает в трех режимах
MEASUREMENT (ИЗМЕРЕНИЕ) | Прибор измеряет значение напряжения и тока и отображает их на дисплее. Показания обновляются с интервалом примерно 0.8 секунды. |
RECORDING (ЗАПИСЬ) | Прибор измеряет значение напряжения и тока, отображает их на дисплее и записывает в файл формата CSV вместе с текущим временем и датой. Показания на дисплее обновляются с интервалом примерно 0.8 секунды, а запись в файл происходит через равные интервалы времени, устанавливаемые в режиме SETUP в пределах от 1 до 30 минут. |
SETUP (НАСТРОЙКА) | Измерение не производится. При помощи кнопок управления пользователь настраивает текущее время, дату и интервал времени для записи в файл. |
Таблица 1. Функции кнопок и примеры показаний на дисплее в каждом из режимов.
Режим | Назначение кнопок | Примеры показаний на дисплее |
MEASUREMENT | SW1 (белая) – «SETUP» – переход в режим настройки SW3 (красная) – не задействована | |
RECORDING | SW1 (белая) – не задействована SW3 (красная) – «STOP» — завершение записи, закрытие лог-файла и возврат в режим измерения | символ “R” — мигает |
SETUP | SW1 (белая) – «NEXT» – переход к следующему настраиваемому параметру, после завершения настройки всех параметров – возврат в режим измерения. SW3 (красная) – «DOWN» – уменьшение настраиваемого параметра на 1 |
ФОРМАТ ЛОГ-ФАЙЛА
В режиме измерения при нажатии кнопки «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 15:12:02, 3.3742, -0.3058 2017/11/13 15:22:02, 3.3744, -0.3076 2017/11/13 15:32:02, 3.3745, -0.3023 2017/11/13 15:42:02, 3.3745, -0.3054 2017/11/13 15:52:02, 3.3745, -0.3030 2017/11/13 16:02:02, 3.3745, -0.3035 |
При нажатии кнопки «STOP» запись прекращается, файл закрывается, после чего карту памяти можно извлечь из прибора и перенести в компьютер, где данные из файла могут быть импортированы в Microsoft Excel или в другую программу для дальнейшей обработки.
ЭЛЕКТРИЧЕСКАЯ СХЕМА
Принципиальная электрическая схема прибора показана на рисунке:
Измеряемое напряжение поступает на вход 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, где преобразуются в цифровую форму, а затем программно вычитаются друг из друга микроконтроллером. При этом все погрешности, имеющие у двух модулей одинаковый знак и близкую величину, значительно уменьшаются (в идеале, вообще, становятся равными нулю), а полезный сигнал, наоборот, удваивается из-за встречного включения датчиков тока. Обратите внимание, что входы 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.
3. Модуль АЦП на базе 4-канальной 16-разрядной микросхемы ADS1115 фирмы Texas Instruments
4. Модуль датчика тока на базе микросхемы ACS712 фирмы Allegro (таких модулей нужно 2 штуки). Максимальный измеряемый модулем ток 5А.
5. Три кнопки без фиксации 12×12 мм с цветными колпачками
6. Модуль символьного LCD дисплея 1602 (16 символов, 2 строки) с припаянным к нему конвертером интерфейса I2C
7. Разъем для подключения внешнего источника питания 9V
Кроме перечисленных компонентов понадобятся также несколько резисторов и конденсаторов, монтажные провода, две пары гнезд для подключения проводов от измеряемых цепей и небольшой пластмассовый корпус. Для поддержания хода часов реального времени при выключенном питании прибора необходима литиевая 3-вольтовая батарейка формата CR1220.КОНСТРУКЦИЯ И МОНТАЖ
Прибор смонтирован в пластмассовом корпусе размерами 112х82х40 мм. Корпус состоит из двух половинок, соединяемых по углам саморезами. В верхней половине размещен дисплейный модуль и кнопки управления, в нижней половине – все остальные модули и разъемы. Для того чтобы половинки корпуса можно было при необходимости разъединить, соединения между ними сделаны с помощью двух 4-контактных разъемов – один для подключения дисплея, другой для подключения кнопок управления. В связи с простотой схемы и малым количеством соединений между модулями печатная плата не разрабатывалась. Модули и дискретные элементы размещены на куске перфорированной односторонней макетной платы, их выводы соединены на нижней стороне платы навесными проводниками. На другом куске той же макетной платы смонтированы кнопки управления. Модули датчиков тока U5 и U6 должны размещаться параллельно друг другу, и, желательно, как можно ближе, при этом внешние магнитные поля будут одинаково влиять на их выходные сигналы, что позволит полностью скомпенсировать их в программе. В конструкции, показанной на фото, модули U5 и U6 размещены «этажеркой», то есть один под другим. Рекомендуется перед установкой этих модулей в прибор выпаять находящиеся на них SMD-светодиоды. Эти светодиоды индицируют подачу напряжения питания на модули, что не имеет большого смысла, когда они расположены в корпусе прибора и не видны снаружи, однако, они довольно сильно нагреваются в процессе работы и нагревают находящуюся рядом микросхему ACS712, вызывая заметный дрейф нуля прибора в первые минуты после его включения.ВОЗМОЖНОСТИ МОДЕРНИЗАЦИИ ПРИБОРА И ЗАМЕНЫ КОМПОНЕНТОВ
При желании диапазон измеряемого напряжения можно расширить, изменив сопротивления резисторов входного делителя, а диапазон измеряемого тока – заменив 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 · 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мА, однако, следует иметь в виду, что эти колебания составляют всего лишь десятые доли процента от верхнего предела измерений прибора. Вряд ли стоит ожидать от несложной конструкции, собранной из весьма дешевых комплектующих, точности измерений, сопоставимой с профессиональным лабораторным оборудованием, поэтому в большинстве случаев можно считать такие незначительные отклонения допустимыми. Тем не менее, если даже небольшие колебания нулевой точки нежелательны, то в программе предусмотрена возможность избавиться от них, включив шумоподавление. Для этого нужно убрать символы комментария в начале следующей строки: //#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-27-datenloggen-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 (англ.).
· Модуль датчика тока на базе микросхемы ACS712 — https://www.elecrow.com/wiki/index.php?title=ACS712_Current_Sensor-_5A (англ.).
Описание принципа работы микросхемы ACS712 — http://embedded-lab.com/blog/a-brief-overview-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/16×2-lcd.html (англ.), модуль интерфейса I2C для дисплея — http://modtronix.com/mod-lcdi2c-bb1.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
3
Цифровой вольтметр на ПК и arduino.
- Подробности
- Категория: Arduino
- Опубликовано 11.09.2015 17:30
- Автор: Admin
- Просмотров: 8869
В этом проекте мы будем передавать данный через сериал соединение на компьютер. Данные,в нашем случае это измеренное напряжение,при помощи arduino передаются в компьютер через последовательное serial соединение.
Вывод данных осуществляется в программу написанную для компьютера под Windows. При этом компьютер может быть абсолютно любым,будь это моноблок,стационарный компьютер или ноутбук,к примеру можно купить моноблок dell. В этом примере программа вольтметра была написана в среде разработке Visual C++. Статья ориентированна на тех кто уже имел дело с языком программирования C++
Измерение напряжения начинается только после того как со стороны компьютера поступят команды 0xAC и 0x1y. Где y представляет собой номер канала аналого цифрового преобразователя Arduino, и может принемать значение от 0 до 2.
После того как arduino получила команды старта измерения, начинается процесс измерения напряжения, измеренное напряжение отсылается обратно в компьютер с интервалом в 50 миллисекунд. Имеют следующий формат: 0xAB, 0xaa, 0xbb, где aa и bb максимальное и минимальное значение.
Прекращение измерения напряжения начинается после того как с компьютера поступят команды 0xAC и 0x00.
Программа написанная под Arduino (скетч) довольно проста — здесь нет ничего сложного,измеренное значение в последовательный порт. Измеренное значение напряжения умещается в 10 бит от 0x000 до 0x0400 хранится в переменной типа integer.
Последовательный порт имеет возможность передавать данные в пакете по 8 бит. Поэтому наше измеренное напряжение можно поделить на 2 пакета, каждый по 8 бит.Сначала осуществляется сдвиг на 8 бит, а затем делится на 256.
Программа вольтметра под компьютер
После того как интерфейс программы создан необходимо добавить объект последовательного порта. Этот объект позволяет изменять и задавать такие параметры как название порта, кол-во бит, скорость передачи. Добавляя поля контролирующие переменные объекта можно динамически (в процессе работы программы) изменять эти значения. В этом примере использована возможность только выбора порта.
По умолчанию программа выбирает первый порт. Важно помнить что порт ПК может быть использован только одним приложением, использование одного порта в двух приложения приведет к ошибке.
Считывание данных осуществляется при помощи события или прерывания. Выбор осуществляется во вкладке свойства.
Кнопка создания метода обработки полученных данных.
Код программы под windows можете скачать тут
- < Назад
- Вперёд >
Добавить комментарий
Вольтметр переменного и постоянного тока с автоподстройкой диапазонана базе Arduino и TRMS
/ *********************************** ************************************
*
* Вольтметр переменного / постоянного тока Arduino с автоматическим выбором диапазона.
* Напряжение и частота печатаются на ЖК-экране 1602.
* Это бесплатное программное обеспечение БЕЗ ГАРАНТИЙ — используйте его на свой страх и риск!
* https://simple-circuit.com/
*
******************************* **************************************** /
#include
// Подключения ЖК-модуля (RS, E, D4, D5, D6, D7)
LiquidCrystal lcd (8, 9, 10, 11, 12, 13);
// определить контакты канала с автоматическим переключением диапазонов
#define CH0 2
#define Ch2 3
#define Ch3 4
#define Ch4 5
const uint16_t Time_Out time_Out = 500
периодов = 10; // количество периодов измерения (только для переменного напряжения)
// переменные
byte ch_number;
const uint16_t res_table [4] = {2444, 244, 94, 47}, // сопротивления делителя напряжения в десятых долях кОм
total_res = 22444; // общее сопротивление в десятых долях кОм
uint16_t current_res;
энергозависимых байтов на;
void setup (void)
{
pinMode (CH0, OUTPUT);
pinMode (Ch2, OUTPUT);
pinMode (Ch3, OUTPUT);
pinMode (Ch4, OUTPUT);
ЖК.begin (16, 2); // устанавливаем количество столбцов и строк ЖК-дисплея
lcd.setCursor (1, 0);
lcd.print («Напряжение:»);
ch_number = 0;
ch_select (ch_number);
// Конфигурация АЦП и аналогового компаратора
ADMUX = 0x03;
ADCSRA = 0x87;
ADCSRB = (0 << ACME); // выбираем AIN1 как отрицательный вход компаратора
ACSR = 0x13; // включить аналоговый компаратор
}
// аналоговый компаратор ISR
ISR (ANALOG_COMP_vect)
{
byte count = 0;
для (байт i = 0; i <50; i ++) {
если (ACSR & 0x20)
count ++;
}
if (count> 48)
per ++;
}
// основной цикл
void loop ()
{
bool dc_flag = 0; // бит флага постоянного напряжения
int32_t sum = 0; // сумма всех показаний
uint16_t n = 0; // количество отсчетов (отсчетов)
ACSR = (1 << ACI); // сброс флага прерывания аналогового компаратора
ACSR = (1 << ACIE); // разрешить прерывание аналогового компаратора
uint32_t current_m = micros (); // сохранить текущий миллис
байт current_per = per; // сохраняем номер текущего периода
while ((current_per == per) && (micros () — current_m if (micros () — current_m> = Time_Out) {// если есть событие тайм-аута ==> сигнал напряжения DC dc_flag = 1; для (байт i = 0; i <200; i ++) { ADCSRA | = 1 << ADSC; // запускаем преобразование while (ADCSRA & 0x40); // ждем завершения преобразования int16_t an = (int16_t) (ADCL | (uint16_t) ADCH << 8) - 511; сумма + = ан; n ++; // увеличиваем количество чтений delay (1); } } else {// здесь сигнал напряжения переменного тока current_m = micros (); // сохраняем текущий millis () per = 0; while ((per ADCSRA | = 1 << ADSC; // запускаем преобразование while (ADCSRA & 0x40); // ждем завершения преобразования int32_t an = (int16_t) (ADCL | (uint16_t) ADCH << 8) - 511; сумма + = sq (an); // sq: квадрат n ++; // увеличиваем количество показаний } } ACSR = (0 << ACIE); // отключение прерывания аналогового компаратора uint32_t total_time = micros () — current_m; // используется для вычисления частоты // вычисление напряжения float v; if (dc_flag) // если сигнал напряжения DC v = (4 * sum) / n; // вычислить напряжение постоянного тока аналогового канала Arduino в милливольтах else // здесь сигнал напряжения переменного тока v = 4 * sqrt (sum / n); // вычислить среднеквадратичное значение напряжения аналогового канала Arduino в милливольтах // вычислить фактическое (входное) напряжение в милливольтах (применить уравнение делителя напряжения) v = v * (float) total_res / current_res; v / = 1000; // получаем напряжение в вольтах uint16_t v_abs = abs (int16_t (v)); if ((v_abs> = 10 && ch_number == 0) || (v_abs> = 100 && ch_number == 1) || (v_abs> = 250 && ch_number == 2)) { ch_number ++; ch_select (ch_number); задержка (10); возврат; } if ((v_abs <220 && ch_number == 3) || (v_abs <80 && ch_number == 2) || (v_abs <8 && ch_number == 1)) { ch_number— ; ch_select (ch_number); задержка (10); возврат; } char _buffer [8]; ЖК.setCursor (0, 1); if (v <0) lcd.print (‘-‘); еще lcd.print (»); if (v_abs <10) sprintf (_buffer, «% 01u.% 02u», v_abs, abs ((int16_t) (v * 100))% 100); иначе, если (v_abs <100) sprintf (_buffer, «% 02u.% 01u», v_abs, abs ((int16_t) (v * 10))% 10); еще sprintf (_buffer, «% 03u», v_abs); lcd.print (_buffer); если (dc_flag) жк.печать («VDC»); else { lcd.print («VAC»); // вычисляем частоту сигнала в Гц uint32_t period_time = total_time / Periods; частота с плавающей запятой = 1000000.0 / период_времени; sprintf (_buffer, «% 02u.% 02uHz», (uint16_t) freq% 100, (uint16_t) (freq * 100)% 100); lcd.print (_buffer); } задержка (500); // ждать полсекунды } void ch_select (byte n) { switch (n) { case 0: digitalWrite (CH0, HIGH); digitalWrite (Ch2, LOW); digitalWrite (Ch3, LOW); digitalWrite (Ch4, LOW); перерыв; case 1: digitalWrite (CH0, LOW); digitalWrite (Ch2, HIGH); digitalWrite (Ch3, LOW); digitalWrite (Ch4, LOW); перерыв; case 2: digitalWrite (CH0, LOW); digitalWrite (Ch2, LOW); digitalWrite (Ch3, HIGH); digitalWrite (Ch4, LOW); ; case 3: digitalWrite (CH0, LOW); digitalWrite (Ch2, LOW); digitalWrite (Ch3, LOW); digitalWrite (Ch4, HIGH); } current_res = res_table [n]; } // конец кода. Файлы cookie — это крошечные файлы данных, которые хранятся в вашем веб-браузере, когда вы посещаете веб-сайт. На www.electromaker.io мы используем файлы cookie, чтобы персонализировать ваш опыт и помочь нам выявлять и устранять ошибки. Использование файлов cookie и аналогичных технологий в течение некоторого времени было обычным явлением, и файлы cookie, в частности, важны при предоставлении многих онлайн-услуг.Таким образом, использование таких технологий не запрещено Правилами, но они требуют, чтобы людям рассказывали о файлах cookie и им был предоставлен выбор в отношении того, какие из их действий в Интернете отслеживаются таким образом. (Офис уполномоченных по информации) Чтобы в полной мере использовать www.electromaker.io, пользоваться персонализированными функциями и гарантировать, что веб-сайты работают в полную силу, ваш компьютер, планшет или мобильный телефон должен будет принимать файлы cookie. Наши файлы cookie не хранят конфиденциальную информацию, такую как ваше имя, адрес или платежные реквизиты: они просто содержат информацию о том, как вы используете наш сайт, чтобы мы могли улучшить ваш опыт и исправить любые ошибки. Если вы предпочитаете ограничивать, блокировать или удалять файлы cookie с www.electromaker.io или любого другого веб-сайта, вы можете использовать для этого свой браузер. Все браузеры индивидуальны, поэтому проверьте меню «Справка» в своем конкретном браузере (или в руководстве к мобильному телефону), чтобы узнать, как изменить настройки файлов cookie. Вот список основных файлов cookie, которые мы используем, и для чего мы их используем: Каждый веб-браузер обрабатывает файлы cookie по-разному, следуйте инструкциям для выбранного браузера: by Уильям Уэйтс При тестировании Long Link to Eigg мы столкнулись с проблемой
мачта на солнечной энергии в Coille Mhialairigh.Когда бы мы ни ставили
определенная нагрузка на сеть, переключатель на мачте
перезагрузка — даже если сам трафик не коснулся переключателя. В
есть подозрение, что дополнительная нагрузка на блок питания вызывает
напряжение должно падать с допуском маленького сетевого переключателя. Однако проверить эту гипотезу непросто. Это может потребовать много
сидеть на морозе на вершине холма с вольтметром, пока
проблема воспроизводится. Намного лучше попытаться организовать, чтобы иметь возможность делать
это не выходя из дома, у теплого огня. Недавно в лагере EMF нам выдали значки, на которых было мало
платы с микроконтроллерами Arduino на борту. Эти
фантастически гибкие крошечные компьютеры, предназначенные в первую очередь для художников
делать электронные скетчи, и для использования в классе, чтобы помочь
преподают основы электроники, и, конечно же, для любителей, которые используют их
всевозможные виды использования. В данном случае задача довольно простая — измерить блок питания.
напряжение, которое на практике будет тем же источником питания, что и
Сама плата Arduino.Это делается с помощью аналогового входного контакта на
доска. Их шесть, но нам нужен только один. Эти булавки позволяют читать
напряжение в диапазоне 0-5 В, которое преобразуется в число от 0
и 1023. Блок питания нельзя напрямую подключить к аналоговому входу
потому что он работает от 12 В и сожжет контакт. Итак, простое напряжение
схема делителя используется: Резисторы R1 и R2 выбраны таким образом, чтобы их соотношение составляло
более или менее 3: 1. Это означает, что примерно входные данные могут варьироваться от
0-20В и при включении между резисторами будет
уменьшается на ¾, и то, что измеряется на выводе A0, будет в
правильный диапазон.{+} = A_0 \ frac {5} {1024} \ frac {R_1 + R_2} {R_2}
] Выбранные значения: \ (R_1 = 680 k \ Omega \), \ (R_2 = 220
к \ Омега \). Это соответствует при 12 В току \ (13 мкА \).
(ср. Закон Ома) — это означает, что измерение напряжения не будет заметно
разрядить батареи. Конечно, это нужно добавить к паре
сто миллиампер, которые сама оттянет плата. Чтобы было удобно получать показания, Arduino Ethernet
Shield используется вместе с библиотекой Webduino.Целиком
Программа представляет собой крошечные 162 строки кода, включая комментарии и пустые строки.
линий. Он выполняет две функции: Причина использования кольцевого буфера в том, что показания могут быть
сохраняется во время перезагрузки неисправного переключателя и затем считывается
без потери данных. Теперь вернемся на север, установим его и посмотрим, что мы найдем! — это испытательный прибор, который используется для измерения разности электрических потенциалов между двумя точками в цепи и отображает измеренные значения напряжения в дискретной числовой форме. Теперь, в этой статье, давайте попробуем спроектировать цифровой вольтметр с использованием Arduino UNO в программе моделирования TinkerCAD. Программное обеспечение для моделирования — это интерактивный инструмент, обычно используемый для экспериментов с схемой перед установкой ее на аппаратную часть / печатную плату. Это помогает проанализировать проектную схему, проверить целостность ее функций и убедиться в эффективности конструкции перед установкой ее на печатной плате. Давайте сначала начнем с требований, которые нам понадобятся для проектирования схемы с помощью программного обеспечения TinkerCAD. Эти компоненты требуются для разработки схем вручную, для # моделирования достаточно программного обеспечения TinkerCAD.Чтобы построить схему вручную, щелкните по приведенным ниже ссылкам, чтобы купить необходимые компоненты. 1. Макетная плата Макетная плата — это важный компонент прямоугольной формы с небольшими отверстиями в ней, которые используются для вставки компонентов для тестирования схем. Соединения не фиксированы и могут быть изменены. В макете отверстия на одной горизонтальной линии последовательно соединены друг с другом. Макетные платы изготавливаются из пластика или дерева и бывают всех форм, размеров и даже разных цветов. Наиболее часто используемые размеры для проектирования схем — это «полноразмерные», «половинные» и «мини» макеты. Купите Макет здесь. 2. Arduino UNO Разработайте более сильную концепцию Arduino с помощью этой статьи: — Что такое Arduino? # Плата Arduino — это микроконтроллер, который принимает входные данные от подключенных датчиков и обеспечивает выходное действие на желаемое устройство, подключенное к нему. Входы датчиков могут быть от датчиков обнаружения света, датчиков движения (ультразвуковых или ИК), датчиков температуры и т. Д.Выходные данные этого устройства могут быть получены через такие устройства, как светодиод, зуммер, последовательный монитор и т. Д. Купите Arduino UNO отсюда. 3. ЖК-дисплей 16 * 2 16 * 2 # ЖК-дисплей — это базовый модуль электронного дисплея в различных устройствах и схемах. Он имеет 16 контактов, которые включают в себя контакт заземления, контакт питания, контроль контрастности, выбор регистра, чтение / запись, включение, контакт данных с 0 по 7, светодиод + 5V и светодиод-заземление. Купите ЖК-дисплей 16 * 2 здесь. 4. Источник питания постоянного тока Источник питания важен, электронные устройства, которые используются для преобразования мощности переменного тока в выходную мощность постоянного тока. Он постоянно подает напряжение постоянного тока на свою нагрузку. Купите Блок питания постоянного тока здесь. 5. Резистор Резисторы — это пассивные устройства, которые ограничивают прохождение тока или делят напряжение по цепи. Входная мощность проходит через эти резисторы, а затем к датчикам, чтобы избежать повреждений.В этом проекте используются резисторы 220 Ом, 1 МОм и 10 кОм. Купите резисторы здесь. 6. Провода перемычки Это основные компоненты, которые используются для установления соединений между различными устройствами цепи. Есть три типа: от мужчины к женщине, от женщины к женщине и от мужчины к мужчине. Купите перемычки здесь. 7. Кабель USB Этот кабель используется для подключения макетных плат к источнику питания.Это также помогает при передаче данных. Купите USB-кабель здесь. 1. Программное обеспечение TinkerCAD: Это простое в использовании программное обеспечение для онлайн-моделирования, используемое для проектирования схем. В нем есть все основные электрические компоненты, необходимые для построения и анализа схемы. Посетите веб-сайт TinkerCad . Подключение контура включает следующие шаги: Во-первых, мы начнем с подключения ЖК-дисплея, подключим PIN-код данных 4,5,6 и 7 к 5 , 4,3,2 Цифровые выводы платы Arduino. Вывод питания (VCC) подключен к положительной клемме макетной платы. Подключите контакты RS и Enable ЖК-дисплея к 11-му и 12-му контактам платы Arduino соответственно. Затем подключите вывод GND, вывод Vo, вывод RW и один вывод светодиода ЖК-дисплея к отрицательным клеммам макета. Подключите другой вывод светодиода к одному выводу резистора 220 Ом, а другой вывод заземлите. Два резистора R1 = 1 МОм и R2 = 10 кОм используются для создания схемы делителя напряжения для максимального увеличения диапазона показаний напряжения. Подключите положительный конец клеммы источника питания к одному концу резистора 1 МОм, а другой конец — к резистору 10 кОм. А другой конец резистора 10 кОм заземлен. Отрицательный конец клеммы источника питания подключен к отрицательной клемме макетной платы. От соединения двух резисторов к аналоговому контакту A0 платы Arduino подключается терминал. Наконец, вывод GND вывода Arduino подключается к отрицательному выводу макетной платы, чтобы установить общее заземление. Затем VCC-5 вольт Arduino также подключается к положительной клемме макета соответственно. Давайте изучим код для измерения значения напряжения для числового вывода. Включите библиотеку Liquid Crystal в код, поскольку мы используем ЖК-дисплей. Инициализируйте контакты ЖК-дисплея, к которому он подключен, к плате Arduino. Переменные объявлены с использованием типа данных «float». Инициализируйте входное значение и значение температуры на 0,0. И объявите номиналы резисторов в переменных r1 и r2. В функции setup () объявите скорость передачи, если вам нужно, чтобы вывод отображался на последовательном мониторе. Lcd.begin используется для установки количества столбцов и строк на ЖК-дисплее для отображения вывода. И ЖК. функция печати для печати строки на ЖК-экране. В функции цикла analog_value объявляется с использованием типа данных float. Затем функция analogRead используется для считывания значений напряжения с аналогового вывода A0 платы Arduino. Переменная temp объявляется для вычисления значения входного напряжения. Он рассчитывается путем умножения аналогового_значения на напряжение питания (5 В) и деления его на 1024 для отображения выходного сигнала на дискретных аналоговых уровнях. Наконец, входное напряжение рассчитывается путем деления рассчитанного значения «температуры» с резисторами по правилу делителя напряжения. Используйте «если условие» для проверки значения напряжения. Если измеренное значение напряжения меньше 0,1 В, на выходе печатается 0,0. Распечатайте значение напряжения, равное или превышающее 0,1, и входное напряжение в последовательном мониторе с помощью функции Serial.print. Функция lcd.setcursor определяет столбец или строку, из которых должен быть напечатан вывод.Затем распечатайте инструкции, которые должны быть напечатаны на ЖК-экране, и с задержкой в 1000 миллисекунд операция цикла повторяется. Полный код этой программы можно найти в следующем документе. Цифровой вольтметр Arduino .docx Загрузить DOCX • 13 КБ ПРИМЕЧАНИЕ: Необходимо удалить код по умолчанию, присутствующий в окне TinkerCAD, и написать программный код.Загрузите документ и скопируйте и вставьте код в #TinkerCAD, чтобы смоделировать схему. Давайте сначала научимся работать с программой TinkerCAD #simulation. После входа на страницу TinkerCAD выберите схемы и найдите компоненты, необходимые для подключения. Необходимые компоненты нужно перетащить и вывести на экран схемы. Подключение необходимо произвести путем выбора перемычек. Можно выбрать провода разного цвета, чтобы различать каждое соединение. Подробнее о TinkerCad . Загрузите код и запустите моделирование, чтобы увидеть результат на ЖК-дисплее. На изображении ниже показана работа схемы после правильного подключения и составления кодировки. Значение напряжения в числовой форме отображается на ЖК-экране. Входное напряжение может быть изменено соответственно для желаемого выхода. Посмотрите рабочее видео с практическим объяснением проектирования схемы и узнайте больше о том, как работает программное обеспечение для моделирования. Видео Автор - Шри Харшита. Программное обеспечение для моделирования играет важную роль в создании больших схем, поскольку они помогают анализировать работу схемы, прежде чем ее можно будет построить на практике. Это помогает нам создать виртуальный дизайн схемы, которую мы хотим построить, и избежать повреждений схемы, если мы заранее не знаем о правильных соединениях схемы. Чтобы увидеть больше проектов через TinkerCad , нажмите здесь . Используя это программное обеспечение с открытым исходным кодом TinkerCad, спроектируйте свою собственную схему, запустите код в программном обеспечении и подтвердите свои проектные идеи. См. Также: Взаимодействие датчика температуры с Arduino с использованием TinkerCAD Проект интеллектуального уличного освещения с использованием Arduino UNO, LDR , и LED Цифровой вольтметр Arduino
Конфиденциальность и файлы cookie
Наша политика в отношении файлов cookie
Управление файлами cookie
Вольтметр Arduino
07 сентября 2012 Создание цифрового вольтметра с использованием Arduino UNO.
Цифровой вольтметр Требования к оборудованию:
Кабель USB Требования к программному обеспечению:
Подключение контура:
Подключение контура Пояснение кода:
#include "LiquidCrystal.h"
LiquidCrystallcd (12,11,5,4,3,2);
float input_voltage = 0,0;
температура поплавка = 0,0;
float r1 = 1000000.0; // 1 МОм
float r2 = 1000.0; // 10 кОм
пустая настройка ()
{
Serial.begin (9600); // открывает последовательный порт, устанавливает скорость передачи данных 9600 бит / с
lcd.begin (16, 2); //// настраиваем количество столбцов и строк на ЖК-дисплее:
lcd.print («ЦИФРОВОЙ ВОЛЬТМЕТР»);
}
пустая петля ()
{
// Формула преобразования напряжения
float аналоговое_значение = аналоговое чтение (A0);
temp = (аналоговое_значение * 5.0) / 1024,0;
входное напряжение = температура / (r2 / (r2 + r1));
если (входное_напряжение <0,1)
{
input_voltage = 0,0;
}
Serial.print ("v =");
Serial.println (input_voltage);
lcd.setCursor (0, 1);
lcd.print ("Voltage =");
lcd.print (input_voltage);
задержка (1000);
}
Полный код:
#include "LiquidCrystal.h"
LiquidCrystallcd (12,11,5,4,3,2);
float input_voltage = 0,0;
температура поплавка = 0,0;
float r1 = 1000000.0; // 1 МОм
float r2 = 1000.0; // 10 кОм
установка void ()
{
Serial.begin (9600); // открывает последовательный порт, устанавливает скорость передачи данных 9600 бит / с
lcd.begin (16, 2); //// настраиваем количество столбцов и строк на ЖК-дисплее:
lcd.print («ЦИФРОВОЙ ВОЛЬТМЕТР»);
}
пустой цикл ()
{
// Формула преобразования напряжения
float аналоговое_значение = аналоговое чтение (A0);
temp = (аналоговое_значение * 5.0) / 1024,0;
входное напряжение = температура / (r2 / (r2 + r1));
если (входное_вольт <0,1)
{
input_voltage = 0,0;
}
Serial.print ("v =");
Serial.println (input_voltage);
lcd.setCursor (0, 1);
lcd.print ("Voltage =");
lcd.print (input_voltage);
задержка (1000);
}
Рабочий:
Схема вольтметра Arduino с Tinkercad Simulation
В этом посте мы делимся простой схемой вольтметра с использованием Arduino UNO и ЖК-дисплея 16 × 2 на tinkercad для измерения напряжений более 5 вольт.
Схема очень проста, и вы можете увидеть ее в интерактивном моделировании Tinkercad.
Вот список компонентов:
LED NEON FLEX:Схема вольтметра Arduino на Tinkercad
привет и добро пожаловать, в этом эпизоде мы показываем вам, как сделать простой вольтметр, используя Arduino и 16 × 2 ЖК-дисплея для измерения напряжений более 5 вольт, поэтому, если вы еще не подписались на наш канал, подпишитесь, чтобы получать последние видео
, давайте посмотрим, как мы начинаем соединение с arduino uno, подключенным к ЖК-дисплею 16 × 2 с помощью четырех контактов:
- чтение запись подключено к земле
земля и vcc ЖК-дисплея подключены к земле и vcc arduino
светодиод подсветки подключен к vcc и подключен к земле через резистор 220 Ом
вход подключен к arduino к вывод 0 с помощью схемы делителя напряжения с двумя резисторами 100 кОм и 10 кОм
Эта схема делителя напряжения используется для измерения напряжений более 5 Ом, как мы все знаем этот аналоговый вход и все контакты Arduino могут вводить только до 5 вольт
, поэтому, если мы подадим более 5 вольт, мы повредим контакт микроконтроллера Arduino, поэтому мы используем эту схему делителя напряжения, эти резисторы и подключаем вход источник питания к делителю напряжения
, затем мы берем вход на контакт a0 Arduino, давайте посмотрим на простой код, который начинается с включения библиотеки lcd, затем определения переменной lcd с соединительными контактами
, затем аналогового входа и затем отображения значения на ЖК-дисплее, это простой код
, давайте начнем моделирование здесь, вход составляет 1 вольт, мы можем изменить его на 10 вольт, как мы видим, здесь arduino считывает входное значение, а затем мы можем изменить его на другие числа и разные значения Конечно,
есть некоторые ошибки в чтении из-за делителя напряжения, здесь источник питания может выдавать до 30 вольт, а Arduino может считывать эти значения, так что это была простая схема вольтметра, использующая arduino и 16 × 2 lcd
Вот интерактивное моделирование Tinkercad, которое включает схему и код Arduino:
Последние сообщения
- Как построить устройство для измерения скорости ультразвука на Arduino прямо сейчас? круто создать устройство для измерения скорости Arduino и учиться на нем? В предыдущих сообщениях мы видели, как мы можем использовать ультразвуковой датчик-преобразователь HC-SR04 для измерения расстояний с помощью ультразвуковых волн, посылая ультразвуковую волну, а затем принимая ее с помощью этого датчика и зная скорость звука…
Как создать скорость ультразвука в Arduino Измерительное устройство прямо сейчас Подробнее »
- Классный ультразвуковой датчик Arduino HC-SR04 Измерение расстояния с помощью Tinkercad Этот пост о том, как использовать ультразвуковой датчик HC-SR04 с Arduino Uno, чтобы сделать ультразвуковой датчик расстояния, аналогичный ультразвуковому датчику, используемому в автомобилях для помощи при парковке или робототехники.Компоненты Arduino UNO Amazon UK, Amazon CA, Amazon DE, Banggood 16 × 2 LCD Amazon UK, Amazon CA, Amazon…
Ультразвуковой датчик Arduino HC-SR04 Измерение расстояния с помощью Tinkercad Подробнее »
- Arduino Ping Pong LCD Game Made Simple на TinkercadGaming - хороший способ научиться программировать. Это делает обучение легким и увлекательным, и кодирование на Arduino не является исключением. Вот почему мы изучаем Arduino, создавая классные игры. Этот пост о знаменитой игре в пинг-понг, которую вы можете начать делать на Arduino и ЖК-дисплее 16 × 2, а вот…
Игра для пинг-понга для Arduino, сделанная просто на Tinkercad Подробнее »
- Super Easy Arduino Ohmmeter с 16 × 2 ЖК-дисплей на Tinkercad В этом посте мы увидим, как сделать эту простую схему омметра Arduino с помощью Arduino UNO и ЖК-дисплея 16 × 2.Здесь вы можете увидеть интерактивное моделирование Tinkercad, а также попробовать эту схему в физических компонентах. LED NEON FLEX: https://micromonitor.myshopify.com/ Сначала мы видим компоненты схемы: Arduino UNO Amazon UK, Banggood 16x2 LCD…
Super Easy Arduino Ohmmeter с 16x2 LCD на Tinkercad Подробнее »
Осциллограф - Super Cool с Arduino и ЖК-дисплеем 16 × 2 на Tinkercad Осциллограф Arduino LCD Tinkercad В этом посте мы делимся простой схемой осциллографа Arduino с простым в использовании ЖК-дисплеем 16 × 2 на tinkercad.Вот детали схемы подключения. И вы можете найти интерактивное моделирование Tinkercad ниже. давайте посмотрим на аппаратное обеспечение этой схемы: сначала мы используем Arduino uno, подключенный к ЖК-дисплею 16 × 2, используя… Осциллограф Super Cool
с Arduino и ЖК-дисплей 16 × 2 на Tinkercad Подробнее »
- Секундомер с Arduino и ЖК-дисплеем на Tinkercad В этом посте, мы сделали простой секундомер Arduino с ЖК-дисплеем на Tinkercad с минимальным набором компонентов: Arduino Amazon UK, Amazon DE, Banggood, 16 × 2 LCD Amazon UK, Amazon DE, Banggood Резистор 1 кОм 4 кнопки LED NEON FLEX: https: // микромонитор.myshopify.com/ привет и добро пожаловать, в этом эпизоде мы показываем вам этот простой…
Секундомер с Arduino и ЖК-дисплеем на Tinkercad Подробнее »
- Превосходные цифровые часы Arduino с Tinkercad без модуля часов реального времени Цифровые часы Arduino с Tinkercad - Сделать Часы Arduino без модуля часов реального времени RTC на ЖК-дисплее В этом посте мы увидим простую схему рабочих часов Arduino с ЖК-дисплеем 16 × 2 без модуля часов реального времени RTC. LED NEON FLEX: https://micromonitor.myshopify.com / привет и добро пожаловать в этом эпизоде. Я покажу вам этот простой…
Превосходные цифровые часы Arduino с Tinkercad без модуля часов реального времени Подробнее »
- Схема вольтметра Arduino на ЖК-дисплее 16 × 2 с проектом моделирования Tinkercad мы используем простую схему вольтметра с использованием Arduino UNO и ЖК-дисплея 16 × 2 на tinkercad для измерения напряжений более 5 вольт. Схема очень проста, и вы можете увидеть ее в интерактивном симуляторе Tinkercad. Вот список компонентов: Arduino Banggood 16 × 2 LCD Banggood 220 Ом Резистор 10 кОм…
Схема вольтметра Arduino на ЖК-дисплее 16 × 2 с проектом моделирования Tinkercad Подробнее »
Резюме
Название статьи
Схема вольтметра Arduino на ЖК-дисплее 16x2 с Tinkercad Simulation Project
Описание
Схема вольтметра Arduinoна ЖК-дисплее 16x2 с Tinkercad Simulation Project
Имя издателя
AeroArduino
15 на основе дизайна ADinoSmeter и Arduino Arduino
(PDF) для измерения удельного сопротивления постоянному току
Risky Martin Antosia: конструкция вольтметра на основе ADS115...
80
Таблица 5. Измерение разности потенциалов в нормальном положении
с источником напряжения 3 В
Таблица 5. Измерение разницы потенциалов при обратной полярности
с источником напряжения 3 В
Вольтметр в в системах [4] - [7]
не учитывалась разность потенциалов
измерений при обратной полярности, поэтому эта прототипная система
может их заменить. Эта система
очень хороша при замене вольтметра на [4] и [5]
из-за измерения разности потенциалов
до десятков вольт.Принимая во внимание, что вольтметр в [6]
и [7] проводил измерения в диапазоне до
десятков мВ, эта система не тестировалась при измерениях
в единичном диапазоне из-за ограниченных возможностей тестирования
. .
IV. ЗАКЛЮЧЕНИЕ
На основании тестирования системы с несколькими условиями
, система, построенная с использованием компонентов ADS1115 и
Arduino Uno, может использоваться как автоматический вольтметр диапазона
и измерять значение разности потенциалов
в обратной полярности, поэтому Система
может применяться для измерения удельного сопротивления постоянному току.
Исходя из данных измерений, вольтметр
подходит для измерения значения разности потенциалов в
материалах с низким сопротивлением ниже 10 кОм с уровнем достоверности
97%. В то время как для больших материалов сопротивление
не является хорошим, если измерения производятся выше 10 кОм
. Для дальнейшего развития необходимо
для снижения шума в системе и необходим источник напряжения
с диапазоном менее сотен
мВ для тестирования измерения разности потенциалов
в единичном диапазоне мВ, потому что существует
Возможно, при измерении фактического удельного сопротивления постоянного тока
значение разности потенциалов будет в пределах
этого диапазона единиц.
ССЫЛКИ
[1] RH Manrulu, A. Nurfalaq и ID Hamid,
«Pendugaan Sebaran Air Tanah Menggunakan
Metode Geolistrik Resistivitas Konfigurasi Wennerto Palampus 2 0003
, d. Флюс, об. 15,
нет. 1, стр. 6–12, февраль 2018 г.
[2] FD Sastrawan and JA Latifan, «Estimasi
Kedalaman Akuifer Dangkal Daerah TPA Manggar
dengan Menggunakan Metode Geolistrik
Konfenneriguras .5,
нет. 2, pp. 131-136, Oct. 2019.
[3] Хаким и Р. Х. Манрулу, «Апликаси Конфигураси
Веннер Далам Менганалисис Дженис Материал Бавах
Пермукаан», Jurnal Ilmiah Pendidikan Fisika Al- 2000 05, нет. 1, pp. 95-103, Apr. 2016.
[4] Б. Индарто, GRF Sudenasahaq, DB Rachmad,
MH Basri, и Х. Сунарно, «Rancang Bangun
Sistem Pengukuran Resistivitas Geolistrik dengan mengan
Sumber Arus Konstan », JurnalФизика Дан Апликасиня, т.12, вып. 2, pp. 83-89,
Jun. 2016.
[5] Maison, KN Sawitri, Samsidar, L. Handayani, R.
Purbakawaca, и J. Nurjaman, «Дизайн цифрового резистивиметра
для изучения недр », в IOP
Conf. Серия: Journal of Physics: Sriwijaya Int.
конф. по фундаментальным и прикладным наукам, 2019, с. 1-8.
[6] Д. Фатахиллах, Дарсоно и Нурьяни, «Недорогой многоэлектродный измеритель удельного сопротивления
на основе микроконтроллера
для томографии удельного электрического сопротивления
», в IOP Conf.Серия: Физический журнал:
9-е Междунар. Конф. по физике и ее приложениям
(ICOPIA), 2019, стр. 1-6.
[7] И. К. Сетиади, «Desain Sumber Arus Untuk Electrical
Импедансная томография (EIT)», Jurnal Arus
Elektro Indonesia, vol. 1, вып. 3, pp. 27-33, Dec.
2015.
[8] Scintrex Автоматизированная система визуализации удельного сопротивления
(SARIS) Руководство по эксплуатации, ред. 2, Scintrex Ltd.,
Concord, Онтарио, Канада, 2013 г., стр.5-1.
[9] (2020) Electronoobs. [Онлайн]. Доступно:
http://www.electronoobs.com/eng_arduino_tut84.p
л.с.
[10] С.Р. Манурунг и М. Синамбела «Перангкат
Пембеладжаран IPA Berbentuk LKS Berbasis
Laboratorium», Дж. Физика, т. 6, вып. 1, pp. 80-87, Feb. 2018.
[11] (2020) Веб-сайт Henrysbench [Online]. В наличии:
http: //henrysbench.capnfatz.com / henrys-
Bench / arduino-Voltage-Measures / arduino-
ads1115-diff-voltmeter-tutorial /
[12] (2020) Веб-сайт Henrysbench. [Онлайн]. Доступно:
http://henrysbench.capnfatz.com/henrys-
bench / arduino-Voltage-Measures / arduino-
ads1115-module-Getting-started-tutorial /
[13] (2019) Bill Earl . [Онлайн]. Доступно: https: // cdn-
learn.adafruit.com/downloads/pdf/adafruit-4-
channel-adc-breakouts.pdf? timestamp = 1591600159
[14] Модель UT61A / 61B / 61C / 61D / 61E: Эксплуатация
Руководство, ред. 9, UNI-Trend Technology (Китай)
Co., Ltd., Дунгуань, Гуандун, Китай, 2018, стр.
44.
Сделайте цифровой вольтметр, используя ЖК-дисплей 16 * 2 и интерфейс Arduino uno - KT931
Введение
В этом уроке мы создаем цифровой вольтметр с использованием ЖК-дисплея 16 * 2 с Arduino Uno.Относительно просто использовать Arduino для измерения напряжений. Arduino имеет несколько аналоговых входных контактов, которые подключаются к аналого-цифровому преобразователю (АЦП) внутри Arduino. АЦП Arduino представляет собой десятиразрядный преобразователь, что означает, что выходное значение будет находиться в диапазоне от 0 до 1023. Мы получим это значение с помощью функции analogRead (). Этот проект покажет вам значения до 5v.
Если вам известно опорное напряжение - в данном случае мы будем использовать 5 В - вы можете легко рассчитать напряжение на аналоговом входе.Для отображения измеренного напряжения мы будем использовать жидкокристаллический дисплей (ЖКД), который имеет две строки по 16 символов.
Arduino IDE 1.8.5 (программируемая платформа для Arduino)
Нажмите, чтобы загрузить: https: //www.arduino.cc/en/Main/Software
16 * 2 ЖК-ДИСПЛЕЙ- Режим ЖК-дисплея: STN, позитивный, полупрозрачный
- Цвет дисплея: темно-синий / желто-зеленый
- Угол обзора: 6H
- Способ вождения: 1/16 нагрузки, 1/5 смещения
- Подсветка: желто-зеленая светодиодная подсветка
- Габаритные размеры: 803615.8 MAX
ПРЕДОСТЕРЕЖЕНИЯ
- ЖК-панель сделана из стекла. Любой механический удар (например, падение с высоты) приведет к повреждению ЖК-модуля.
- Не прилагайте чрезмерных усилий к поверхности дисплея, это может вызвать ненормальное изменение цвета дисплея.
- Поляризатор ЖК-дисплея легко поцарапать. По возможности не снимайте защитную пленку ЖК-дисплея до последнего этапа установки.
- Никогда не пытайтесь разбирать или переделывать ЖК-модуль.
- Очищайте ЖК-дисплей только изопропиловым или этиловым спиртом. Другие растворители (например, вода) могут повредить ЖК-дисплей.
- При установке ЖК-модуля убедитесь, что он не скручен, не деформирован.
- Убедитесь, что между корпусом и ЖК-панелью имеется достаточно места (с подушкой), чтобы на нее не воздействовала внешняя сила, иначе это может вызвать повреждение ЖК-дисплея или ухудшить качество изображения.
- Держите ЖК-модуль только за бок. Никогда не удерживайте ЖК-модуль, прилагая усилие к термосварке TAB.
- Никогда не применяйте силу к компонентам ЖК-модуля. Это может вызвать невидимые повреждения или снизить надежность.
- ЖК-модуль может быть легко поврежден статическим электричеством. Будьте осторожны, чтобы обеспечить оптимальную антистатическую рабочую среду для защиты ЖК-модуля.
- При снятии защитной пленки с ЖК-дисплея статический заряд может привести к неправильному отображению изображения. Это нормально, и через короткое время оно вернется в норму.
- Будьте осторожны и не поранитесь об острый край ЖК-панели.
- Никогда не используйте модуль ЖКД с превышением абсолютных максимальных значений.
- Делайте сигнальную линию как можно короче, чтобы предотвратить попадание зашумленного сигнала на ЖК-модуль.
ЖК-дисплей 16x2, используемый в этом эксперименте, имеет всего 16 контактов. Как показано в таблице ниже, восемь контактов - это линии передачи данных (контакты 7-14), два - для питания и земли (контакты 1 и 16), три - для управления работой ЖК-дисплея (контакты 4-6), и один используется для регулировки яркости ЖК-экрана (контакт 3).Оставшиеся два контакта (15 и 16) питают подсветку.
Обратите внимание, что потенциометр подключен к источнику 5 В и GND, а средний контакт подключен к контакту 3 ЖК-дисплея. Вращение этого потенциометра изменяет яркость ЖК-дисплея. Четыре контакта данных DB4-DB7 подключены к контактам 4-7 Arduino. Enable подключается к выводу 9 Arduino, а RS подключается к выводу 8 Arduino. RW подключен к земле. Светодиод подсветки подключен к 5В и массе.В следующей таблице показаны соединения контактов:
DB4 -----> pin4
DB5 -----> pin5
DB6 -----> pin6
DB7 -----> pin7
RS -----> pin8
EN -----> pin9
В приведенной ниже программе используется библиотека Liquid Crystal. Эта библиотека содержит все функции, необходимые для записи на ЖК-дисплей.
Контур считывает аналоговое значение с аналогового входа, и, поскольку опорное напряжение составляет 5 В, он умножает это значение на 5, а затем делит на 1024 для вычисления фактического значения напряжения.