Измеритель мощности Arduino: измерение напряжения, тока и мощности
Как инженеры-электронщики, мы всегда должны полагаться на контрольно-измерительные приборы для измерения и анализа условий работы цепей. От простых мультиметров до сложных анализаторов качества электроэнергии или DSO – все имеет свое уникальное применение. Большинство этих счетчиков легко доступны и могут быть приобретены на основе измеряемого параметра и его точности. Но иногда мы можем столкнуться с необходимостью создать собственный счетчик. Допустим, вы работаете над солнечным фотоэлектрическим проектом и хотите рассчитать энергопотребление нагрузки. В этом случае мы можем использовать простую платформу микроконтроллера, такую как Arduino, для создания собственного измерителя мощности.
Создание собственного счетчика не только снижает стоимость тестирования, но и дает нам возможность упростить процесс тестирования. Например, измеритель мощности, построенный с использованием Arduino, можно легко настроить для отслеживания результатов на последовательном мониторе и рисования графики на последовательном плоттере или добавления карты SD для автоматической записи значений напряжения, тока и мощности через предварительно определенные интервалы времени.
Необходимые материалы
● Совет по развитию Arduino Nano
● операционный усилитель LM358
● 7805 регулятор напряжения
● ЖК-дисплей 1602
● тестовая нагрузка
● макет
● Сварочный комплект
Принципиальная схема
Полная принципиальная схема измерителя мощности Arduino выглядит следующим образом:
Для простоты понимания схема измерителя мощности Arduino разделена на две части. Верхняя часть схемы – это единица измерения, а нижняя часть – это блок вычисления и отображения. Для тех, кто не знаком с этим типом схемы, пожалуйста, обратитесь к этикетке. Например, тег + 5 В означает, что все контакты, подключенные к тегу, должны обрабатываться так, как если бы они были соединены вместе. Этикетки часто используются для того, чтобы принципиальные схемы выглядели аккуратно.
Эта конструкция схемы подходит для систем с диапазоном рабочих напряжений 0-24 В и диапазоном тока 0-1 А с учетом спецификаций солнечной фотоэлектрической генерации. Но как только вы поймете, как работает схема, вы можете легко расширить диапазон. Основным принципом работы схемы является измерение напряжения на нагрузке и тока через нее для расчета потребляемой мощности. Все измеренные значения будут отображены на ЖК-дисплее 1602.
Пожалуйста, обратитесь к следующим ссылкам для получения дополнительной информации:https://www.yiboard.com/thread-943-1-1.html
что это такое? Популярно для начинающих
Arduino это недорогая, доступная в смысле покупки электронная плата с микроконтроллером и выводами входов-выходов. Arduino выпускаются в различных версиях, но поддерживают один и тот же, простой язык программирования. Огромный успех Ардуино, с уважением к другим микроконтроллерам, связан с тем, что аппаратное и программное обеспечение были опубликованы в открытом бесплатном для общего пользования виде: вы можете читать, изучать и даже расширять его возможности как в плане программного обеспечения, так и с точки зрения аппаратных средств.
Вся информация об Ардуино доступна под лицензией “Creative Commons Attribution-ShareAlike 3.0 License”.Вы можете использовать Arduino в реализации различных целей: от обучения до домашней автоматики, от научных целей до коммерчески доступных устройств, а также просто получать удовольствие (вы будете удивлены узнав насколько много применений люди придумывают и реализовывают для Ардуины). Благодаря его очень простому доступу к портам ввода / вывода Arduino, вы можете управлять множеством различных устройств, как дискретными так и аналоговыми. Например, вы можете измерять напряжение с помощью аналоговых входов или управлять двигателем постоянного тока с помощью дискретного выхода. Также Вы можете включать и выключать светодиод или реле, используя дискретные выходы и передавать / принимать данные на / от более сложных устройств, таких как модуль GSM. Задание (по крайней мере, большая часть) физики – измерить какую-либо физическую величину: Arduino датчики в этом смысле могут быть очень полезным инструментом и в смысле контроля за аппаратными измерениями и в качестве непосредственного измерительного устройства само по себе (для многих целей Arduino может быть достаточно точным, чтобы заменить профессиональные дорогие измерительные приборы).
Дизайн плат Arduino таков, что его форм-фактор (почти) не зависит от модели Arduino. В первых платах Arduino стояли довольно крупные по размеру микроконтроллеры; теперь микроконтроллер значительно уменьшили по габаритам, однако размер и форма платы Arduino остались все теми же (и даже, освободили много свободного места на ней). Это решение по неизменности размеров плат дало одно большое преимущество: сторонние производители периферии могут легко разрабатывать, производить и продавать модули, которые расширяют функциональные возможности любой Arduino, и пользователи могут легко подключить их к платам Arduino, включая начинающих пользователей.
На самом деле, эти платы, называемые модулями имеют набор контактов, которые просто подключить в соответствующие контакты на Arduino и нет необходимости в особых переподключениях выводов для нормальной работы модуля. Вы за несколько баксов можете купить, модули предназначенные для Интернет или GSM соединения, использования GPS, управления шаговыми двигателями и многого другого.
Используя Arduino, любой с довольно посредственными знаниями электроники имеет возможность с легкостью создавать комплексы электронных устройств: сложные электрические связи элементов электроники в этом случае конвертируются в программное обеспечение, следовательно, даже люди, не работавшие с аналоговыми и дискретными устройствами, такими как диоды, транзисторы, операционные усилители, интегральные схемы, логические порты, и т.д., могут реализовать интересные проекты. Начинающим программистам интернета вещей мега полезно попробовать работу с платформой Arduino. Учебные материалы по Arduino могут быть легко найдены в Интернете как реализации различных задач: выложены с открытым исходным кодом исходников проекта, люди стремятся делиться своими проектами с другими, так что любой может извлечь что-то интересное для себя из опыта другого.
Измеритель толщины ЛКП на Arduino nano
В процессе поиска, подходящего для меня автомобиля с пробегом, столкнулся с необходимостью проверки лакорасочного покрытия (ЛКП) на однородность, для выявления крашеных или шпаклеваных деталей. Сначала в руки мне попал профессиональный измеритель толщины ЛКП, но давали мне его ненадолго, а процесс поиска машины, наоборот, растянут по времени. Измеритель пришлось вернуть владельцу, а подходящая машина найдена не была.
Первым результатом поиска по интернету, стала классическая схема, на основе двухобмоточного трансформатора с открытой магнитной системой.
На первичную обмотку подается некий сигнал, а со вторичной обмотки подается сигнал на измеритель. Измеряемый образец, замыкает магнитную систему и чем толще краска, тем меньше связь между обмотками, тем меньше выходной сигнал. Но искать подходящее железо для трансформатора и мотать его было лень, продолжил поиски. Кроме этого подобные схемы имеют сильную нелинейность зависимости уровня сигнала от толщины покрытия.
А нельзя ли еще проще? Ход мыслей примерно такой: “если датчик – это индуктивность, значит нужно устройство измерения индуктивности”
Еще я вспомнил, что у меня валяется несколько плат Arduino. Брал пару лет назад поиграться.
Сформулировал, для себя, задачу – “Измерение индуктивности на Arduino минимумом навесных деталей”.
В результате поисков, наткнулся на страницу https://github.com/sae/Arduino-LCQmeter/blob/master/LC-gen.ino
эта программа и стала прототипом простейшего измерителя ЛКП.
В качестве основной платы, выбрана Arduino nano за небольшие габариты.
В результате, показания счетчика пропорциональны резонансной частоте LC контура.
Сначала опробовал идею на столе, с выводом информации на компьютер. Вроде работает
Хотя у меня был LCD модуль, но с ним устройство получалось громоздким и требовало изготовления корпуса.
Решил сделать индикацию толщины на светодиодах.
Нарисовал схему, спаял шилд на макетке, предусмотрел контроль напряжения батареи.
Проблемой оказалось изготовление катушки. Если чашек ферритовых броневых сердечников нашел много и разных, то каркасов катушек не нашел ни одного. После нескольких попыток сделать каркас самостоятельно, было найдено следующее решение: на коническом корпусе шариковой ручки были установлены две картонные щечки, намотано приблизительно подходящеее количество витков, чтоб поместилось внутрь сердечника. Провод взял минимальной толщины, какой был под рукой (около 0.08) количества витков не помню, что-то около 100. после намотки, одну щечку снял. и подталкивая за другую щечку поместил получившуюся катушку внутрь сердечника. Выпавшие витки, заправил в катушку пинцетом. После этого капнул на витки суперклеем и закрыл катушку оставшейтся щечкой. Катушку на плате закрепил термоклеем.
В результате, получилась такая конструкция:
Текст программы для загрузки: Скетч для Arduino.zip
Работа с устройством:
Поскольку разные машины имеют разную тощину ЛКП, сначала делается процедура калибровки.
После проведения калибровки, значение толщины ЛКП, выраженное в “условных единицах” записывается в eeprom.
для проведения измерения, прибор прикладывается к разным местам ЛКП автомобиля и нажимается кнопка “Измерение”. Если отклонение измеренного результата от записанного, невелико, загорается зеленый светодиод.
Если отклонение превышает некоторую границу – загорается белый светодиод – “подозрительно”
Если есть второй слой краски, или была полировка – загорается один из синих “краска” или “полировка”
Если покрытие близко к нулю или превышает 0.2, то загораются красные светодиоды “шпаклевка” или “металл”
Каждое измерение толщины производится 3 раза, а потом значение усредняется. Возможно, одного раза достаточно. Это позволит получать результат практически мгновенно.
Не стоит рассматривать эту поделку, как образец готового изделия. Это всего лишь пример того, как можно решить поставленную задачу “подручными” средствами. Но, подозреваю, что на основе этого измерителя, можно изготовить измеритель с профессиональной точностью. Для этого нужно будет, качественно намотать катушку, подобрать конденсатор, с минимальным TKE, подключить экранный модуль, подобрать формулу пересчета “сырого” значения в микрометры.
Борис Падорин, ООО “Долина-Сервис”
Еще записи по теме
Использование плат микроконтроллера Arduino для измерения задержек отклика
Создание сценария E-Prime для интерфейса Arduino
В следующем разделе мы продемонстрируем, как Arduino можно интегрировать в обычное программное обеспечение для проведения экспериментов, а именно E-Prime. E-Prime имеет встроенный интерфейс для последовательных портов. Однако он не рассматривает последовательный порт как встроенное устройство ввода. Таким образом, для интеграции Arduino мы используем сценарий (называемый InLine в E-Prime), который взаимодействует с Arduino и соответствующим образом обновляет журналы ответов.
В качестве первого шага необходимо добавить последовательное устройство на вкладку «Устройства» эксперимента. Мы выбираем имя последовательный, 115 200 бит в секунду, восемь бит данных, без контроля четности и один стоповый бит в качестве значений по умолчанию. COM-порт и его характеристики должны соответствовать тем, которые назначены виртуальному последовательному порту Arduino (что можно проверить в диспетчере устройств Windows, где также скорость передачи данных может быть отрегулирована до той, которая используется в E-Prime).
Добавление полей в таблицу стимулов
Затем мы настраиваем презентации стимулов внутри списка, как это обычно делается в E-Prime.Наш список стимулов называется StimulusList , а для представления стимулов мы используем объект TextDisplay с именем trialStimulus . В таблице StimulusList мы добавляем несколько дополнительных свойств: TrialDuration , которое передается в Arduino и сообщает ему максимальное время ожидания ответа в миллисекундах; это единственное дополнительное поле, которое экспериментатор должен заполнить. Затем мы добавляем TrialNr , который будет содержать случайный идентификационный номер испытания.Мы также добавляем ArduinoTrialNr , ArduinoRT , ArduinoButtons , которые представляют собой три значения, которые будут возвращены Arduino после ответа, с указанием номера проверочного испытания, задержки ответа и нажатых кнопок, соответственно. . Наконец, мы добавляем InlineRT
Кроме того, если необходимо предоставить обратную связь, также должен быть атрибут, в котором указан правильный ответ (для этой цели мы используем атрибут правильный ). Обратите внимание, что в нашей нынешней настройке мы передаем только целые числа в Arduino и из него, поэтому ответ должен быть положительным целым числом от 0 до 32 767 (или целым числом от 0 до 9, если ввод также будет проверяться с клавиатуры). На рисунке 1 показан пример этой таблицы.
Рис.1Таблица E-Prime (разделенная на две части) с добавленными полями для связи и управления Arduino: TrialDuration , TrialNr , ArduinoTrialNr , ArduinoRT , ArduinoButtons , InlineStartTime , InlinePostSendingTime , InlineEndTime и InlineRT .Экспериментатор-программист
должен заполнить только TrialDuration .Настройка объекта предъявления стимула
В настройке объекта представления стимула trialStimulus длительность установлена на короткое значение (мы использовали 50 мс), а для PreRelease установлено то же значение (ввод такой же, как длительность ). Если обратная связь должна быть предоставлена, то клавиатура должна быть добавлена в качестве устройства ввода, а атрибут списка, содержащий правильный ответ, будет добавлен в поле «Правильно» ( [правильно] ). Предел времени установлен на , как и продолжительность . Снимок экрана с этими настройками в E-Prime см. На рис. 2.
Рис. 2Свойства объекта презентации стимула E-Prime, здесь TextDisplay. Для продолжительности установлено очень короткое значение (фактическая продолжительность контролируется TrialDuration в таблице StimulusList). Клавиатура и Correct добавлены для обеспечения обратной связи и тестирования. Регистрация данных включена
Обратите внимание, что эта схема подразумевает, что E-Prime закрывает объект trialStimulus через 50 мсек, с двумя последствиями.Во-первых, на этом этапе время реакции и отклик устанавливаются равными нулю и должны быть изменены позже. В то же время эти изменения могут произойти только по истечении этого времени. Если необходимо измерить реакцию быстрее 50 мс, либо продолжительность должна быть меньше, либо сценарий должен подождать некоторое время.
Добавление сценария InLine после предъявления стимула
За пробной версией Stimulus следует встроенный скрипт, который взаимодействует с Arduino.Установка для PreRelease того же значения, что и продолжительность, гарантирует, что встроенный скрипт будет выполняться сразу после инициирования представления стимула. Скрипт показан в листинге 1 (размещен в качестве дополнительных материалов) Footnote 3 и состоит из четырех частей: (1) установка значений для передачи, (2) передача значений в Arduino, (3) ожидание и получение ответ от Arduino и (4) дизассемблирование ответа и сохранение атрибутов ответа.
В рамках настройки мы заполняем trialNr случайным целочисленным значением, давая каждому испытанию уникальный идентификатор.В нашем примере сценария мы отправляем в Arduino три целых числа: (1) пробный номер, который также передается обратно Arduino в качестве контрольного значения; (2) продолжительность судебного разбирательства; и (3) переменная, которая может дать указание Arduino выполнить дальнейшее действие или вывод (и которую мы фактически не используем в этом примере). Продолжительность испытания считывается из атрибута TrialDuration, установленного ранее в StimulusList. Обратите внимание, что StimulusList не упоминается явно, а через объект контекста c .Три значения объединяются в одну строку, разделяются запятыми и заканчиваются точкой. Эта строка записывается в последовательное устройство. Берутся две отметки времени, до и после этого (см. Исследование 5).
Затем сценарий непрерывно читает с последовательного устройства, добавляет любую строку, которая поступает во временную переменную, и проверяет, получена ли точка – это сигнал остановки от Arduino. Когда это происходит, сохраняется другая отметка времени для документирования процесса, но учтите, что это не фактическая задержка ответа.Вместо этого сценарий ожидает, что Arduino отправит обратно список из трех чисел: пробный номер, задержка ответа, измеренная Arduino в микросекундах, и число, кодирующее ответ, зарегистрированный в Arduino.
Полученная строка затем разбирается на эти три отдельных числа, которые сохраняются в соответствующих атрибутах StimulusList (на основе Margolis, 2011). Обратите внимание, что задержка ответа относится к типу Long, которая может составлять максимум 2 31 – 1.Поскольку единица измерения составляет микросекунды, максимальная задержка ответа составляет 35 минут. Две зарегистрированные отметки времени (также в микросекундах) также сохраняются вместе с разницей; эта разница, очевидно, всегда должна быть больше, чем задержка ответа, зарегистрированная Arduino.
Поскольку объект trialStimulus уже завершен к тому моменту, когда скрипт получает ответ, в этот момент он содержит только нулевой ответ, а журнал будет содержать пустые поля для времени реакции и ответа.Это проблема, если необходимо предоставить обратную связь. Таким образом, если ответ был зарегистрирован, сценарий исправляет сохраненный нулевой ответ, сохраняя время ответа (но теперь в миллисекундах для соответствия стандартам E-Prime) и сам ответ также в атрибутах .RT и .RESP объекта стимула. . Он также сравнивает ответ с правильным ответом и соответствующим образом корректирует . ACC. Любой следующий FeedbackDisplay может затем использовать объект trialStimulus в качестве входного объекта.
Программирование Arduino для взаимодействия с E-Prime
Программы для платформы Arduino называются эскизами.Наш скетч (см. Листинг 2 в дополнительных материалах) сначала устанавливает последовательное соединение (с теми же значениями, которые зарегистрированы в Windows и E-Prime). Он также устанавливает контакты, к которым подключаются кнопки, как вход. Затем он ожидает передачи трех целых чисел от E-Prime (разделенных запятыми и заканчивающихся точкой). Когда они получены, он инициирует судебное разбирательство. В начале испытания эскиз сохраняет отметку времени ( starttime , в микросекундах) и вычисляет максимальное время, добавляя продолжительность испытания чтения к времени начала.
Использование do. . . в то время как цикл , эскиз затем постоянно проверяет, переходит ли один из входов ВЫСОКИЙ уровень или отведенное время до завершения. Когда происходит одно из этих событий, берется отметка времени, которая используется для вычисления времени ответа (которое равно или больше разрешенной продолжительности испытания, если ответ не был получен).
Затем скетч определяет, что должно быть возвращено в качестве целого числа ответа (0 для отсутствия ответа, 1 или 2 для одной из кнопок и 3, если обе кнопки были нажаты одновременно).Затем отправляются три целых числа: номер испытания, время ответа (в микросекундах) и ответ, снова разделенные запятыми и заканчивающиеся точкой. Это строка, которая будет проанализирована E-Prime. Обратите внимание, что в программе Arduino время начала и время окончания имеют тип unsigned long, что может быть не более 2 32 – 1. Часы запускаются, когда Arduino сбрасывается, открывая последовательное соединение в начале эксперимент; отметки времени перевернутся примерно через 70 мин.Для более продолжительных экспериментов следует использовать альтернативный код, измеряющий только миллисекунды.
Измерение расстояния, код ультразвукового датчика Arduino, моделирование с ЖК-дисплеем
Проектирование и разработка прибора для измерения расстояния с использованием Arduino UNO и ультразвукового датчика SR04
Ультразвуковой датчик, взаимодействующий с Arduino Ультразвуковые датчикине только позволяют измерять расстояние без физического контакта, но и позволяют нам проводить измерения без шума и света, в отличие от лазерных приборов для измерения расстояния.Кроме того, эти инструменты дешевы и более надежны даже при дневном свете, когда лазерные инструменты часто снижают свою эффективность. Приборы для измерения расстояния использовались веками, и с течением времени их конструкция была улучшена. Сегодня инструменты для измерения расстояния, такие как футовая линейка и дюймовая лента, устарели, и цифровые инструменты используются для таких целей в более крупном масштабе. Высокая точность и удобство измерения любого расстояния от одной точки упростили этот процесс. Такие инструменты широко используются на строительных площадках и для контроля уровня жидкости. В контейнерах и на объектах, где мониторинг уровня жидкости должен быть точным и дистанционно управляемым, приборы для измерения расстояния на основе ультразвуковых датчиков обеспечивают легкость. Поскольку конструкция основана на встроенных системах, а весь процесс управляется микроконтроллером, в него можно добавить множество функций. Например, дистанционная передача уровня жидкости и, соответственно, функция ВКЛ / ВЫКЛ для цифрового переключателя жидкости.
Теория
МикроконтроллерArduino UNO завоевал популярность благодаря своей обширной библиотеке и простоте программирования.Цифровые контакты и контакты ввода-вывода с несколькими таймерами позволили нам с легкостью проектировать и разрабатывать сложные проекты. Плата Arduino UNO совместима с различными датчиками и предлагает исключительную эффективность при невысокой стоимости. Микроконтроллер – это бесплатная разработка и одна из самых требовательных плат в мире.
Ультразвуковые датчики, также известные как датчики сонара, используются в течение десятилетий. Когда-то они использовались для картографирования кораблей в море и обнаружения сломанных / неисправных частей в механических системах.Ультразвуковой датчик работает путем передачи ультразвуковых волн, и эти волны сталкиваются с препятствиями, расположенными перед передатчиком. Волны отражаются и попадают в приемник. Время, затрачиваемое волнами от передачи до приема относительно скорости ультразвуковых волн, используется для измерения расстояния до препятствия, находящегося впереди.
Скорость звука в воздухе составляет примерно 341 метр (1100 футов) в секунду. Ультразвуковой датчик расстояния использует эту информацию вместе с разницей во времени между отправкой и получением звукового сигнала для определения расстояния между объектами.Он использует следующую математическую формулу.
Расстояние = Время x Скорость звука, деленное на 2
Время = время между передачей ультразвуковой волны и ее получением.
это число делится на 2, потому что звуковая волна должна пройти к объекту и обратно.
Поскольку расстояние не может быть изменено физически в симуляции, имитационная модель SR04 связана с потенциометром, и расстояние для датчика изменяется с помощью этого потенциометра.
Диапазон ультразвукового датчикаИзмерение расстояния необходимо каким-то образом выразить, и для встраиваемых систем лучше всего использовать ЖК-дисплей. ЖК-дисплей с драйвером 16 × 2 HDD44780 обеспечивает эффективную и бесперебойную работу по низкой цене. 16 столбцов и 2 строки предлагают достаточно места для отображения результатов. ЖК-дисплей совместим со всеми моделями плат Arduino, что делает его пригодным и для этого проекта.
- Компоненты, необходимые для этого проекта, просты и недороги.
- Arduino UNO MCU
- Ультразвуковой датчик SR04
- ЖК-дисплей 16 × 2 (на основе драйвера HDD44780)
- Аккумулятор 6 В или источник питания USB 5 В (мобильный адаптер / ноутбук)
- Потенциометр 10 кОм
- Перемычки
- Макетная плата
Здесь была продемонстрирована имитационная модель на основе Proteus 8. Это моделирование позволяет проектировщикам и разработчикам проверять функционирование схемы, прежде чем приступить к проектированию оборудования.Непосредственная разработка оборудования на печатной плате или вертикальной плате может быть сложной задачей, если конечный продукт не работает из-за неправильного подключения. Моделирование помогает отслеживать ошибки и улучшать проекты, вы всегда можете добавить больше творчества в свой дизайн и протестировать его на моделировании. Имитационные модели, используемые для Arduino UNO и ультразвукового датчика в Proteus, легко доступны в Интернете. Единственное, что нужно сделать, это подключить все компоненты, как описано на принципиальной схеме.
Рабочий механизм этого проекта прост и понятен.Ультразвуковой датчик имеет 4 контакта, 2 из которых предназначены для питания, а оставшиеся 2 контакта – для триггера и эха. MCU передает ультразвуковые волны через триггерный штифт, а затем считывает время приема этой ультразвуковой волны на эхо-контакте. Определяется скорость распространения ультразвуковой волны и, соответственно, измеряется расстояние.
Важно добавить шестнадцатеричный файл кода Arduino в его имитационную модель. Шестнадцатеричный файл имеет форму двоичных инструкций, передаваемых MCU для обработки.
LCD служит графическим интерфейсом для отображения результатов. Яркость дисплея можно отрегулировать, подав напряжение 0-5 В на контакт 3, что не требуется в случае моделирования, но хорошо работает для проектирования оборудования. Убедитесь, что контакты аккуратно подключены к Arduino, как указано на принципиальной схеме.
Использование предустановки 10k только в моделировании для создания объекта между датчиками. Здесь пресет работает как объект.
Использование потенциометра с ультразвуковым датчиком позволяет пользователю контролировать входное расстояние для датчика и соответственно наблюдать изменения результатов.Значение этого потенциометра должно быть выше 1 кОм.
Поскольку имитационная модель обеспечивает правильное функционирование проекта, если ваше моделирование работает правильно, вы можете перейти к разработке дизайна аппаратного обеспечения. Однако в случае, если ваша симуляция работает некорректно, вам необходимо устранить ошибку.
Если на ЖК-дисплее отображается расстояние, которое меняется, но оно неверно, возможно, вы неправильно направляете ультразвуковой датчик, убедитесь, что путь между целевым препятствием и ультразвуковым датчиком свободен, и датчик обращен к препятствию.В качестве альтернативы, соединение ультразвукового датчика с Arduino может быть неправильным. Если на ЖК-дисплее нет дисплея, вам необходимо проверить код и соединения ЖК-дисплея с Arduino.
Если не подключить все компоненты, как указано на принципиальной схеме, имитация может не работать или показывать неожиданное поведение.
Кодировка была скомпилирована на Arduino IDE. Код начинается с библиотеки LCD. Контакты для ЖК-дисплея и Arduino UNO предназначены для правильной связи. Затем определяются все используемые компоненты и контакты.
Функция настройки определяет скорость передачи данных и делает выбор между функциями ввода / вывода контактов. Здесь определяется размер ЖК-дисплея 16 × 2, и изначально для очистки ЖК-дисплея используется несколько команд.
Функция цикла содержит основную часть инструкций. Он продолжает повторяться, пока работает MCU. Здесь весь механизм ультразвукового измерения обрабатывается с помощью нескольких команд. Расстояние вычисляется после того, как результаты вычислений отображаются на ЖК-дисплее с помощью команд.
Ультразвуковой датчик Ардуино код
#include < LiquidCrystal .h>; LiquidCrystal lcd (10,9,5,4,3,2); const int trigPin = 13; // определяет номера контактов const int echoPin = 11; большая продолжительность; // определяет переменные int distanceCm, distanceInch; void setup () { Серийный . Начало (9600); lcd.begin (16,2); // Инициализирует интерфейс для ЖК-экрана и задает размеры (ширину и высоту) дисплея pinMode (trigPin, ВЫХОД); pinMode (echoPin, ВХОД); } void loop () { digitalWrite (13, LOW); // Очищает trigPin delayMicroseconds (2); digitalWrite (13, ВЫСОКИЙ); // Устанавливает trigPin в ВЫСОКОЕ состояние на 10 микросекунд delayMicroseconds (10); // Устанавливает trigPin в ВЫСОКОЕ состояние на 10 микросекунд digitalWrite (13, LOW); duration = pulseIn (11, HIGH); // Получить отраженный сигнал.distanceCm = продолжительность * 0,0340 / 2; // Расчет расстояния distanceInch = продолжительность * 0,0133 / 2; lcd.setCursor (0,0); // Устанавливает место, где будет отображаться текст, записанный на ЖК-дисплей lcd.print ("Расстояние ="); // Выводит строку "Distance" на ЖК-дисплей lcd.print (расстояние см); // Печатает значение расстояния от датчика lcd.print ("см"); задержка (20); lcd.setCursor (0,1); lcd.print ("Расстояние ="); lcd.print (distanceInch); lcd. print ("дюйм"); задержка (20); }
Что такое измеритель tds – датчик измерителя TDS DFROBOT с Arduino
Gravity: аналоговый датчик / измеритель TDS для Arduino Обзор
Гравитация: Аналоговый датчик / измеритель TDS для Arduino – это совместимый с Arduino комплект измерителя TDS для измерения значения TDS воды, чтобы отразить чистоту воды.Измеритель TDS может применяться для тестирования качества воды в домашних условиях, на гидропонике и в других областях. Вы также можете ознакомиться с Руководством по выбору датчиков жидкости, чтобы лучше ознакомиться с нашей серией датчиков жидкости. TDS (Total Dissolved Solids) указывает, сколько миллиграммов растворимых твердых веществ растворено в одном литре воды. Как правило, чем выше значение TDS, тем больше растворимых твердых веществ растворяется в воде и тем менее чистая вода. Следовательно, значение TDS можно использовать в качестве одного из эталонов для отражения чистоты воды.
(Цитировано из Google)
Ручка TDS – широко используемое оборудование для измерения значения TDS. Цена доступная, и им легко пользоваться, но он не может передавать данные в систему управления для онлайн-мониторинга, чтобы провести некоторый анализ качества воды. Профессиональный прибор имеет высокую точность и может передавать данные в систему управления, но для обычных людей цена высока. С этой целью мы выпустили набор аналоговых датчиков TDS, который совместим с Arduino, подключается и воспроизводится и прост в использовании.В сочетании с контроллером Arduino вы можете легко построить детектор TDS для измерения значения TDS жидкости.
Этот датчик tds поддерживает входное напряжение 3,3 ~ 5,5 В и аналоговое выходное напряжение 0 ~ 2,3 В, что делает его совместимым с системой управления или платой 5 В или 3,3 В. Источником возбуждения является сигнал переменного тока, который может эффективно предотвращать поляризацию зонда и продлевать срок его службы, в то же время повышая стабильность выходного сигнала. Зонд TDS водонепроницаем, его можно погружать в воду на длительное время измерения.
Этот измеритель tds может использоваться в системах контроля качества воды, таких как вода для бытовых нужд, гидропоника. С помощью этого продукта вы можете легко собрать детектор TDS, чтобы он отражал чистоту воды для защиты вашего здоровья.
Если вы хотите сделать простой очиститель воды, рекомендуем покупать вместе с Гравитация: Водонепроницаемый комплект датчика DS18B20
Внимание:
1. Датчик нельзя использовать в воде с температурой выше 55 градусов по Цельсию.
2. Зонд нельзя оставлять слишком близко к краю емкости, иначе это повлияет на показания.
3. Головка и кабель датчика водонепроницаемы, но разъем и плата передатчика сигнала не являются водонепроницаемыми. Пожалуйста, будь осторожен.
Gravity: аналоговый датчик / измеритель TDS для Arduino TECH SPECS
Плата передатчика сигналовДатчик TDS
Самодельный мультиметр Arduino
Многофункциональный измерительный прибор своими руками В этом уроке я объединил несколько датчиков вместе, чтобы измерить расстояние с помощью датчиков инфракрасного света, измерить длину с помощью поворотного энкодера и колеса, напечатанного на 3D-принтере, измерить уровень с помощью модуля IMU, а также углы с помощью того же модуля и, наконец, измерить обороты. с другим типом ИК-датчика.Все находится внутри 3D-печатного корпуса, который я спроектировал, а также у нас есть аккумулятор и зарядный модуль с USB. Для управления режимами и многим другим у нас есть 4 бесконтактные кнопки в зависимости от емкости, которая может находиться под пластиковым корпусом. Для печати значения мы используем OLED-дисплей, а на корпусе также есть указатель лазерного модуля. Посмотрим, как это сделать.
ЧАСТЬ 1 – Что нам нужно
Хорошо, ребята, давайте начнем этот урок и сначала посмотрим, что нам нужно.Давайте сначала посмотрим на , электронику , а затем мы увидим корпус , напечатанный на 3D-принтере, . Хорошо, я хочу измерить расстояние. Для этого я выбрал 2 датчика и вот почему. Один имеет хороший диапазон до 80 см, но другой датчик имеет лучшую точность, но только до 20 см. Поэтому я использовал SHARP gp2y0a21 для измерения расстояния до 80 см с разрешением в сантиметры. Затем я использовал датчик VL53L0X для измерения расстояния до 20 см с точностью до миллиметра. Оба используют инфракрасный свет для измерения расстояния, но VL53L0X основан на лазере и имеет лучшую точность.
Хорошо, теперь я хочу измерить углы и определить уровень. Для этого я буду использовать модуль гироскопа и ускорителя MPU6050. С помощью этого модуля я могу измерять угол и затем выполнять всевозможные операции. Он будет помещен в середину корпуса. Я также хочу измерить длину и для этого воспользуюсь модулем поворотного энкодера и колесом, напечатанным на 3D-принтере. Я знаю периметр колеса, поэтому, когда оно вращается, я могу измерить длину. Хорошо, я также хочу измерить обороты, и для этого я использовал другой инфракрасный модуль с ИК-светодиодом и ИК-фототранзистором.С этим и белой полосой на вращающемся валу я могу считать обороты. Я буду использовать модуль лазерной указки, чтобы измерить углы между измерителем и точкой на противоположной стене.
Теперь проверим необходимые нам финальные детали. Конечно, нам понадобится Arduino. Затем нам понадобятся 4 бесконтактные кнопки по изменению емкости. Нам понадобится аккумулятор на 3,7В и зарядный модуль с разъемом USB. Наконец, нам понадобится OLED-дисплей, ползунок для включения и выключения счетчика и зуммер для звуковых уведомлений.Нам, конечно, понадобятся провода, припой и паяльник, а затем корпус, напечатанный на 3D-принтере.
ЧАСТЬ 2 – Схема
Как вы можете видеть ниже, на схеме есть много соединений для всех датчиков. OLED-дисплей с MPU6050 и VL5L0X использует связь i2c, и они будут подключены к контактам A4 и A5 Arduino для данных и часов. Датчик SHARP имеет на выходе делитель напряжения. Я должен использовать внутреннее опорное напряжение 1,1 В, которое есть внутри ATmega328, чтобы сделать analogRead.Это потому, что я использую батарею 3,7 В, и если я не использую внутреннюю ссылку 1,1 В для analogRead, значение будет меняться вместе с напряжением батареи. Измерьте значения делителя напряжения и поместите их в код. Подключите все модули к цифровым контактам. Убедитесь, что в лазере есть токоограничивающий резистор, иначе вы его сожжете.
ЧАСТЬ 3 – Монтаж всего
3.1 Энкодер
Сначала я добавляю поворотный энкодер, который будет использоваться для измерения длины.Для этого нам нужно напечатанное на 3D-принтере колесо, и нам нужно знать диаметр колеса, это важно для последующих вычислений в коде, поэтому измерьте диаметр. Припаяйте 3 провода для земли, данных и часов. Добавьте пластиковое колесо, затем пропустите провода через отверстие в корпусе и поместите энкодер с колесом на его место. Приклейте кодировщик горячим клеем, но не добавляйте клей на верхнюю сторону кодировщика, потому что эта часть будет прижиматься верхней частью корпуса, напечатанного на 3D-принтере.
3.2 датчика VL5L0X и SHARP
Теперь припаяйте провода к модулям VL5L0X и SHARP 2YA021. Для одного требуется 4 провода, а для другого 3. Прикрутите VL5L0X к одной стороне корпуса так, чтобы датчик был обращен к внешней стороне корпуса. Затем прикрутите датчик SHARP и убедитесь, что он не выходит за пределы корпуса, потому что, если он дозирует, он выровняет измеритель, и нам нужно, чтобы нижняя часть была плоской для режима измерения уровня. Если он дозируется, просто добавьте несколько шайб и немного приподнимите его.
Помогите мне, поделившись этим постом
измеритель расстояния на базе Arduino | Проект полной электроники
Подпишитесь на обновления Отписаться от обновленийЭтот измеритель расстояния на базе Arduino может использоваться для измерения расстояния между датчиком и объектом в диапазоне от 2 см до 400 см с помощью ультразвукового датчика. Авторский прототип и ультразвуковой модуль показаны на рис. 1 и 2 соответственно.
Рис. 1: Авторский прототип Рис. 2: Модуль ультразвукового датчикаЦепь и работа
Принципиальная схема дальномера представлена на рис. 3. Он построен на базе платы Arduino Uno (board1), ультразвукового датчика HC-SR04 и некоторых других компонентов. HC-SR04 – недорогой ультразвуковой датчик, состоящий из передающего и приемного блоков.
Рис. 3: Принципиальная схема дальномерана базе Arduino. Когда контроллер подает высокий сигнал на контакт срабатывания датчика, датчик излучает восьмицикловые звуковые импульсы с частотой 40 кГц. После отправки звуковых импульсов датчик устанавливает высокий уровень эха до тех пор, пока звуковые импульсы не вернутся к датчику. Длина, пройденная этим импульсом, показывает, как далеко находится объект.
Ультразвуковые волны следуют свойствам обычных звуковых волн. Из-за этого может происходить (микроскопическое) изменение скорости звуковых волн в любом направлении с изменением температуры. Это изменение приводит к ошибкам в расчетах и, следовательно, при изменении температуры для одного и того же объекта, находящегося в одном и том же месте, получаются разные значения. Чтобы преодолеть это, используется специальный алгоритм, который дает точное расстояние. Этот алгоритм основан на вероятности и статистике.
Программное обеспечение
Программное обеспечение, используемое для программирования Arduino Uno, – это Arduino IDE.Его можно бесплатно скачать по этой ссылке. Программное обеспечение Arduino с открытым исходным кодом (IDE) позволяет легко писать коды и загружать их на плату.
В этом проекте используется библиотека Ultrasonic Library, которую можно скачать по этой ссылке. Чтобы установить эту библиотеку, извлеките загруженную папку, скопируйте и вставьте ее в папку Documents-> Arduino-> Libraries.
Строительство и испытания
Соберите компоненты в соответствии со схемой, приведенной на рис. 3. Подключите кабель USB к Arduino Uno.Откройте Arduino IDE, перейдите в FileExamplesUltrasonicButtonSerial и откройте код.
Рис. 4: Временная диаграмма ультразвукового датчикаСкомпилируйте и загрузите этот код в Arduino Uno. Откройте Serial Monitor в разделе Инструменты Arduino IDE, чтобы увидеть выходной сигнал датчика (расстояние между датчиком и объектом). Убедитесь, что скорость передачи составляет 9600 бод. Обратите внимание, что совмещение ультразвукового модуля с объектом играет важную роль в получении точного выходного сигнала датчика.
Держите объект рядом с датчиком. Когда переключатель S1 замкнут, датчик излучает ультразвуковые волны.Расстояние между объектом и датчиком отображается на последовательном мониторе, как показано на рис. 5.
Рис. 5: Выходной сигнал датчика от последовательного монитораАрнав Бансал в настоящее время работает инженером по исследованиям и разработкам в компании по автоматизации. В основном он работает на настраиваемых устройствах Интернета вещей (IoT).
IRJET-Запрошенная вами страница не найдена на нашем сайте
IRJET приглашает статьи из различных инженерных и технологических и научных дисциплин для Тома 8, выпуск 10 (октябрь 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 10, Октябрь 2021 г. Публикация продолжается…
Обзор статей
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы управления качеством.
IRJET приглашает исследователей различных инженерных и технологических и научных дисциплин для Тома 8, выпуска 10 (октябрь 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 10, октябрь 2021 г. Публикация продолжается…
Обзор статей
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы управления качеством.
IRJET приглашает исследователей различных инженерных и технологических и научных дисциплин для Тома 8, выпуска 10 (октябрь 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 10, октябрь 2021 г. Публикация продолжается…
Обзор статей
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы управления качеством.
IRJET приглашает исследователей различных инженерных и технологических и научных дисциплин для Тома 8, выпуска 10 (октябрь 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 10, октябрь 2021 г. Публикация продолжается…
Обзор статей
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы управления качеством.
IRJET приглашает исследователей различных инженерных и технологических и научных дисциплин для Тома 8, выпуска 10 (октябрь 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 10, октябрь 2021 г. Публикация продолжается…
Обзор статей
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы управления качеством.
IRJET приглашает исследователей различных инженерных и технологических и научных дисциплин для Тома 8, выпуска 10 (октябрь 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 10, октябрь 2021 г. Публикация продолжается…
Обзор статей
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы управления качеством.
IRJET приглашает исследователей различных инженерных и технологических и научных дисциплин для Тома 8, выпуска 10 (октябрь 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 10, октябрь 2021 г. Публикация продолжается…
Обзор статей
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы управления качеством.
IRJET приглашает исследователей различных инженерных и технологических и научных дисциплин для Тома 8, выпуска 10 (октябрь 2021 г.)
Отправить сейчас
IRJET Vol-8, выпуск 10, октябрь 2021 г. Публикация продолжается…
Обзор статей
IRJET получил «Импакт-фактор научного журнала: 7,529» за 2020 год.
Проверить здесь
IRJET получил сертификат регистрации ISO 9001: 2008 для своей системы управления качеством.
Амперметр Arduino – Как измерить постоянный ток с помощью Arduino?
Амперметр – это прибор, используемый для измерения тока в цепи, который измеряется в амперах. В цифровом амперметре мы измеряем напряжение на шунтирующем сопротивлении, подключенном последовательно к нагрузке; следовательно, ток через нагрузку и шунтирующий резистор одинаков. Амперметр подключается последовательно с нагрузкой, а вольтметр подключается к нагрузке. Потому что ток в цепи всегда один и тот же последовательно, а напряжение – параллельно.
Шунтирующий резистор должен иметь очень низкое сопротивление, то есть на нем не должно падать значительного напряжения. Поскольку фактический ток нагрузки меняется, если последовательно добавляется дополнительное сопротивление.
Амперметр Arduino с использованием последовательного монитора
В цепи амперметра постоянного тока Arduino аналоговый вход A0 и GND подключены к двум клеммам шунтирующего резистора R.Взяв разность напряжений между входом A0 и GND, мы можем получить напряжение на сопротивлении R. Из значения напряжения, измеренного на шунтирующем сопротивлении, мы вычисляем ток в цепи, применяя закон Ома, падение напряжения на резисторе, V = IR Тогда ток I = V / R Тогда ток в цепи равен напряжению на шунтирующем резисторе, деленному на известное значение сопротивления шунта. Код – серийный дисплей
поплавок Vacross, Iamp = 0; const int Shunt_Res = 100; void setup () { Серийный .begin (9600); } void loop () { Vacross = analogRead (A0); Вакросс = (Вакросс * 5,0) / 1023,0; Iamp = (Vacross * 1000) / Shunt_Res; Серийный .print ("Current ="); Серийный .print (Iamp); Серийный номер .println («мА»); задержка (1000); }
Амперметр с ЖК-дисплеем
На схеме показано, как измеряется ток через светодиод с помощью амперметра постоянного тока Arduino. Светодиод, шунтирующий резистор 100 Ом и резистор 1 кОм включены последовательно, поэтому ток через них всегда имеет одинаковое значение.Тогда можно рассчитать, что ток через светодиод – это падение напряжения на шунтирующем сопротивлении 100 Ом, деленное на значение сопротивления шунта 100. I = Vacross / 100 Код – ЖК-дисплей
#include < LiquidCrystal . h> float Vacross, Iamp = 0; const int Shunt_Res = 100; LiquidCrystal дисплей (12, 11, 5, 4, 3, 2); void setup () { lcd.begin (16, 2); } void loop () { Vacross = analogRead (A0); Вакросс = (Вакросс * 5.0) / 1023,0; Iamp = (Vacross * 1000) / Shunt_Res; lcd.setCursor (8, 0); lcd.print ("Текущий ="); lcd.print (Iamp); lcd.print («мА»); задержка (1000); }
Разрешение измеренного значения тока можно регулировать, изменяя номинал шунтирующего резистора. Для измерения нагрузок с низким сопротивлением, то есть с большим током, значение шунтирующего резистора может быть выбрано низким. И если сопротивление нагрузки высокое, означает небольшой ток, то требуется шунтирующий резистор с более высоким сопротивлением, чтобы получить минимальное падение напряжения для измерения.Регулируя этот диапазон измерения, прибор может измерять ток в широком диапазоне ампер. Максимальное входное напряжение вывода Arduino составляет 5 В. Следует учитывать, что падение напряжения на выводе аналогового входа никогда не превышает 5 В.
В приведенных выше схемах вы можете обнаружить, что напряжение на аналоговом входе A0 и GND всегда будет ниже 5 В для внешнего источника питания 9 В. Потому что значение напряжения более 4 В однозначно падает на резисторе 1 кОм и светодиоде. Следовательно, напряжение на A0 не падает выше 5 В.В целях безопасности к резистору можно добавить дополнительный стабилитрон на 5 В для обхода любого напряжения выше 5 В. Даже при том, что не рекомендуется падать напряжение 5 В на шунте, потому что падение на нем всегда должно быть как можно меньше. То есть он не вызывает никакого сопротивления или падения напряжения в цепи. Также примите во внимание номинальную мощность резистора, чтобы ток в цепи не превышал его максимальный номинальный ток.
.