Меню

Как измерить напряжение 220 ардуино



Измерение напряжения 220 вольт на Arduino


Измерения напряжения бытовой сети с помощью трансформатора и делителя напряжения на Arduino.

Что нам понадобиться:
1. Трансформатор у меня был в наличии 220/7 вольт.
2. 4 диода.
3. 2 резистора (т.к у меня выходное напряжение 7 вольт я использую 2 одинаковых резистора по 50 кОм).
4. Конденсатор электролитический (главное чтобы номинал был больше чем выходное напряжение трансформатора ).

Делитель напряжения расчитывается таким образом чтобы при напряжении в сети 270 вольт наш делитель не выдавал более 5 вольт. Иначе мы спалим нашу Arduino.

Код:

Калибровка:
Сначала я подключил всю схему и посмотрел сколько показывает наш analogRead (закомментированная строка) у меня было порядка 740, далее я измерил напряжение в сети мультиметром у меня в сети 215 вольт теперь делим 215/740 = 0.2905 это мой поправочный коэффициент.

Как видим при подключении сразу показывает правильное напряжение однако при отключении напряжение падает до 94 вольт и медленно снижается у меня это происходит около минуты. Это происходит из за конденсатора в нашей схеме и пока он полностью на разрядится будут показания напряжения.

Правила перепечатки

Понравилась статья?
Лучшей наградой для меня будет ваш комментарий !

Источник

Arduino.ru

Вольтметр сети 220В

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Помогите, пожалуйста, найти простое решение для измерения напряжения сети с передачей информации arduin’ке.

Никак не смог нагуглить вольтметр с цифровым выходом, чтобы можно было просто соединить с arduino.

Задача в следующем: arduino будет управлять включением бытовых приборов на даче, однако при этом следует учитывать текущее значение напряжение в сети (часто бывают низкие значения, при которых некоторые приборы не работают, например, водный насос). Идея в том, чтобы arduino не включала прибор, если напряжение ниже порогового значения.

Вижу в продаже кучу цифровых вольтметров, которые просто показывают текущие значения, но вот как передать их — тишина.

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

Вам в раздел «ищу исполнителя».

  • Войдите или зарегистрируйтесь, чтобы получить возможность отправлять комментарии

GoodGosha, Ардуино и так почти вольтметр, тем более что для вашего применения высокая точность совершенно не нужна. Вопрос лишь в том, какое схемотехническое решение вы сможете самостоятельно воплотить. Если вы ранее не очень дружили с паяльником и с высокими напряжениями, то я бы порекомендовал самый безопасный и лёгкий вариант -взять готовый трансформаторный блок питания без стабилизатора (внутри у него только трансформатор, диоды или диодный мост и конденсатор), расчитать делитель напряжения, и подключить БП через делитель к аналоговому входу ардуино. Дальше считывать командой analogRead. Если при напряжении в сети 220 вольт команда выдаёт к примеру 1000 единиц, то при 200 вольтах будет около 900, при 180 вольтах -800, и так далее пропорционально. Этот метод даст вполне достаточную точность для вашего применения.

Источник

Digitrode

цифровая электроника вычислительная техника встраиваемые системы

Вольтметр на Arduino

В этой статье приводится интересная схема для любителей экспериментов и Arduino. В ней представлен простой цифровой вольтметр, который может безопасно измерять постоянное напряжение в диапазоне от 0 до 30 В. Сама плата Arduino может питаться от стандартного источника 9 В.

Как известно, с помощью аналогового входа Arduino можно измерить напряжение от 0 до 5 В (при стандартном опорном напряжении 5 В). Но этот диапазон можно расширить, воспользовавшись делителем напряжения.

Делитель понижает измеряемое напряжение до приемлемого для аналогового входа уровня. Затем специально написанный код высчитывает фактическое напряжение.

Аналоговый датчик в составе Arduino определяет напряжение на аналоговом входе и преобразует его в цифровой формат, воспринимаемый микроконтроллером. К аналоговому входу A0 мы подключаем делитель напряжения, образованный сопротивлениями R1 (100K) и R2 (10K). С такими значениями сопротивлений на Arduino можно подавать до 55 В, поскольку коэффициент деления в данном случае получается 11, поэтому 55В/11=5В. Для того, чтобы быть уверенным в безопасности измерений для платы, лучше проводить измерение напряжения в диапазоне от 0 до 30 В.

Читайте также:  Измерение эффективности организационных систем

Если показания дисплея не соответствуют показанием поверенного вольтметра, следует использовать прецизионный цифровой мультиметр для нахождения точных значений R1 и R2. При этом в коде нужно будет заменить R1=100000.0 и R2=10000.0 своими значениями. Затем стоит проверить питание, измерив на плате напряжение между 5V и GND. Напряжение может быть 4.95 В. Тогда в коде vout = (value * 5.0) / 1024.0 нужно заменить 5.0 на 4.95. Желательно использовать прецизионные резисторы с погрешностью не более 1%. Помните, что напряжение выше 55 В может вывести плату Arduino из строя!

Плата Arduino Uno
Резистор 100 КОм
Резистор 10 КОм
Резистор 100 Ом
Потенциометр 10 КОм
LCD-дисплей 16×2

Источник

Arduino AREF пин: измеряем точное напряжение

В этом материале мы рассмотрим, как можно с большей точностью измерять меньшие напряжения, используя аналоговые выводы Arduino или совместимой плате вместе с выводом AREF.

Обзор

Вы можете вспомнить, что вы можете использовать функцию Arduino analogRead() для измерения напряжения электрического тока от датчиков и т.п., используя один из выводов аналогового входа. Значение, возвращаемое функцией analogRead(), должно быть в диапазоне от 0 до 1023, где ноль представляет собой ноль вольт, а 1023 представляет рабочее напряжение используемой платы Arduino.

И когда мы говорим, рабочее напряжение — это напряжение, доступное Arduino после схемы питания. Например, если у вас есть типичная плата Arduino Uno и вы запускаете ее через разъем USB (для платы есть доступные 5 В через разъем USB на вашем компьютере), то напряжение немного уменьшается, поскольку ток идет через всю схему к микроконтроллеру или USB-источник может не давать абсолютное значение.

Это можно легко продемонстрировать, подключив Arduino Uno к USB и установив мультиметр для измерения напряжения на контактах 5В и GND. Некоторые платы возвращают напряжение до 4,8 В, некоторые показывают значения выше 4,8 В, ниже 5 В. Поэтому, если вы стремитесь к точности, питайте вашу плату от внешнего источника питания через разъем постоянного тока или Vin-контакт, например, 9 В постоянного тока. Затем, после этого, пройдя через цепь регулятора мощности, вы получите хорошее напряжение 5 В.

Это важно, поскольку точность любых значений analogRead() будет зависеть от отсутствия истинных 5 В. Если у вас нет никакой опции, вы можете использовать некоторые математические расчеты в своем эскизе, чтобы компенсировать падение напряжения. Например, если ваше напряжение равно 4,8 В — диапазон analogRead() от 0 до 1023 будет относиться к 0

5 В. Это может звучать тривиально, однако, если вы используете датчик, который возвращает значение в виде напряжения (например, датчик температуры TMP36) — рассчитанное значение будет неверным. Поэтому в интересах точности используйте внешний источник питания.

Почему analogRead() возвращает значение от 0 до 1023?

Это связано с разрешением АЦП. Разрешение (в рамках этой статьи) — это степень, в которой что-то может быть представлено численно. Чем выше разрешение, тем выше точность, с которой что-то можно представить. Мы измеряем разрешение в терминах количества бит разрешения.

Например, 1-битное разрешение позволит использовать только два (два в степени одного) значения — ноль и единицу. 2-битное разрешение позволило бы получить четыре (два в степени двух) значения — ноль, один, два и три. Если мы попытаемся измерить диапазон в пять вольт с двухбитным разрешением, а измеренное напряжение будет равно четырем вольтам, наш АЦП вернет числовое значение 3 — при падении четырех вольт между 3,75 и 5В. Проще представить это с изображением выше.

Таким образом, в нашем примере АЦП с 2-битным разрешением может представлять напряжение только с четырьмя возможными результирующими значениями. Если входное напряжение падает между 0 и 1,25, АЦП возвращает цифру 0; если напряжение падает между 1,25 и 2,5, АЦП возвращает числовое значение 1. И так далее. С диапазоном АЦП нашего Arduino от 0 до 1023 — у нас есть 1024 возможных значения — или от 2 до 10, поэтому у наших Arduino есть АЦП с 10-битным разрешением.

Читайте также:  Математика 5 класс перевод величин другие единицы измерения

Что такое AREF?

Когда ваш Arduino берет аналоговое показание, он сравнивает напряжение, измеренное на используемом аналоговом выводе, с так называемым опорным напряжением. При обычном использовании аналогового чтения эталонное напряжение — это рабочее напряжение платы.

Для более популярных плат Arduino, таких как платы Uno, Mega, Duemilanove и Leonardo / Yún, рабочее напряжение 5В. Если у вас есть плата Arduino Due, рабочее напряжение составляет 3,3 В. Таким образом, если у Вас есть опорное напряжение 5 В, каждый блок, возвращаемого analogRead() оценивается в 0.00488 В. (Это рассчитывается путем деления 1024 на 5В). Что если мы хотим измерить напряжения между 0 и 2 или 0 и 4,6? Как АЦП узнает, что составляет 100% от нашего диапазона напряжений?

И в этом заключается причина существования вывода AREF. AREF означает Analog Reference. Это позволяет нам «скормить» Arduino опорное напряжение от внешнего источника питания. Например, если мы хотим измерить напряжения с максимальным диапазоном 3,3 В, мы бы подали хорошие плавные 3,3 В на вывод AREF, например, от ИС регулятора напряжения.

Тогда каждый шаг АЦП будет представлять около 3,22 милливольт (разделить 1024 на 3,3В). Обратите внимание, что самое низкое опорное напряжение вы можете иметь 1.1В. Существует две формы AREF — внутренняя и внешняя, поэтому давайте их проверим.

Внешний AREF

Внешний AREF тот, куда направляется внешний источник опорного напряжения на плате Arduino. Это может происходить от регулируемого источника питания, или, если вам нужно 3,3 В, вы можете получить его от 3,3 В вывода Arduino. Если вы используете внешний источник питания, обязательно подключите GND к выводу GND Arduino. Или, если вы используете источник 3,3 В Arduno — просто установите перемычку с контакта 3,3 В на контакт AREF.

Чтобы активировать внешний AREF, используйте следующее в void setup ():

Это устанавливает опорное напряжение на то, что вы подключили к пину AREF, что, конечно, будет иметь напряжение между 1,1В и напряжением работы платы.

Очень важное примечание — при использовании внешнего опорного напряжения вы должны установить analogReference() на EXTERNAL (внешнее), прежде чем использовать analogRead(). Это предотвратит вас от короткого замыкания активного внутреннего опорного напряжения и вывода AREF, которое может повредить микроконтроллер на плате. При необходимости вы можете вернуться к рабочему напряжению платы для AREF (то есть — вернуться в нормальное состояние) с помощью следующей команды:

Как нам продемонстрировать внешний AREF в работе? Используя AREF 3,3 В, следующий скетч измеряет напряжение от A0 и отображает процентная доля всего AREF и рассчитанного напряжения:

Результаты скетча показаны на видео выше.

Внутренний AREF

Микроконтроллеры на наших платах Arduino также могут генерировать внутреннее опорное напряжение 1.1В, и мы можем использовать это для работы AREF. Просто используйте строку:

Для плат Arduino Mega в void setup() используйте:

Для Arduino Mega есть также опорное напряжение 2.56В, которое активируется так:

Наконец, прежде чем останавливаться на результатах, полученных на вашем выводе AREF, всегда откалибруйте показания по известному исправному мультиметру. Функция AREF дает вам больше гибкости при измерении аналоговых сигналов.

Источник

Как измерить частоту и значение напряжения в электросети (Arduino Uno, 1602A)

Схема самодельного прибора на основе Arduino Uno, который предназначен для измерения частоты и напряжения в розетке с отображением результатов на дисплее 1602A . Прибор очень прост в изготовлении, благодаря применению готового модуля ARDUINO UNO.

Принципиальная схема

Индикатором служит ЖК-дисплей типа 1602А, он стандартный, на основе контроллера HD44780. Обозначение 1602А фактически значит, что он на две строки по 16 символов в строке.

Основой прибора служит ARDUINO UNO, это относительно недорогой готовый модуль, — небольшая печатная плата, на которой расположен микроконтроллер ATMEGA328, а так же вся его «обвязка», необходимая для его работы, включая USB-программатор и источник питания.

Читайте также:  Косвенные измерения примеры решения задач

Прибор питается от электросети и измеряет вышеуказанные параметры. Источник питания одновременно служит и датчиком для получения данных о частоте и напряжении в электросети. Источник питания сделан на основе маломощного готового трансформатора Т1, у которого есть две одинаковые обмотки по 9V переменного напряжения каждая.

Рис. 1. Принципиальная схема измерителя частоты и значения напряжения в электросети, использованы Arduino Uno и 1602A.

Одна обмотка служит для получения напряжения питания. Переменное напряжение с неё поступает на выпрямительный мост на диодах VD1-VD4. Конденсатор С3 сглаживает пульсации выпрямленного напояжения.

На С3 полVчается постоянное напряжение около 12V, которое поступает на разъем для подачи питания на плату ARDUINO UNO, на вход имеющегося на этой плате стабилизатора напряжения 5V, которым и питается вся плата и индикатор Н1.

Другая вторичная обмотка трансформатора служит датчиком измерения параметров электросети. Переменное напряжение с неё через R1 поступает на формирователь импульсов с частотой электросети, выполненный на транзисторе VТ1 по схеме ключа. Эти импульсы поступают на цифровой порт D10 платы ARDUINO UNO.

Переменное напряжение сети измеряется при помощи выпрямителя на диоде VD5 и конденсаторе С2. Величина переменного напряжения в сети определяется по величине постоянного напряжения на этом конденсаторе и через настраиваемый делитель на резисторах R4 и R5 поступает на аналоговый вход А1 платы ARDUINO UNO.

Программа

Программа на C++ с подробными комментариями приведена в таблице 1. Для измерения частоты используется функция pulseln , которая измеряет в микросекундах длительность положительного либо отрицательного перепада входного импульса.

Рис. 2. Исходный код программы для измерения частоты и значения напряжения в электросети.

Так что, для того чтобы узнать период нужно сложить длительность положительного и отрицательного полупериодов, а чтобы узнать частоту в герцах нужно 1000000 разделить на вычисленный период.

Измерение длительности периода состоит из двух частей, сначала измеряются длительности положительной и отрицательной полуволны в строках:

Затем, происходит вычисление полного периода в строке:

И потом, вычисление частоты в строке:

Действие программы по измерению напряжения основано на чтении данных с аналогового входа и расчета результата измерения. Выход аналогового порта преобразуется АЦП микроконтроллера в цифровую форму. Для получения результата в единицах вольт, нужно его умножить на 5 (на опорное напряжение, то есть, на напряжение питания микроконтроллера) и разделить на 1024.

Для того чтобы можно было измерять напряжение более 5V, вернее, более напряжения питания микроконтроллера, потому что реальное напряжение на выходе 5-вольтового стабилизатора на плате ARDUINO UNO может отличаться от 5V, и обычно немного ниже, нужно на входе применить обычные резистивные делители. Здесь это делитель напряжения на резисторах R5 и R4.

К тому же играет роль и применение трансформатора, а так же отличие значение постоянного напряжения от переменного. Поэтому добавляется исходный коэффициент деления величиной 0,016. Чтение данных с аналогового порта происходит в строке:

Затем, производится вычисление фактического напряжения с учетом коэффициента деления делителя входного напряжения:

В этой строке число 5.0 — это напряжение на выходе стабилизатора платы ARDUINO UNO. В идеале должно быть 5V, но для точной работы вольтметра это напряжение нужно предварительно измерить.

Подключите источник питания напряжением 12V и измерьте достаточно точным вольтметром напряжение +5V на разъеме POWER платы. Что будет, то и вводите в эту строку вместо 5.0, например, если будет 4.85V, строка будет выглядеть так:

Затем, результаты измерений выводятся на ЖК-дисплей. Напряжение вносится в первую строку дисплея, а частота во вторую. Единицы измерения указаны как «V» и «Hz». Что касается измерения частоты, — налаживание не требуется вообще. А вот для измерения напряжения нужно откалибровать прибор по образцовому подстройкой резистора R5.

Источник