Измерение переменного напряжения Arduino uno
- Войдите на сайт для отправки комментариев
Доброго времени суток, совсем недавно начал изучать такую материю как "Ардуино" и пока смотрел ролики на ютубе все было крайне просто). Но обзавелся я Arduino uno и первой задачей себе поставил слепить вольтметр постоянного напряжения с выводом значений на дисплей, с этим я вполне справился докупив АЦП ADS1115 для пущей точности. Захотел расширить данное создание до измерения переменного напряжения до 5 В с точностью 1 % (было бы идеально) и понял что набрел на стену. Изучив всевозможные тематические форумы стало понятно что вопрос этот поднимается часто, но решения я не нашел. Пойдя по пути наименьшего сопротивления изначально попробовал использовать данную библиотеку со приложенным примером скетча, но ничего не вышло. Затем пошел по самому ожидаемому пути-использованию диодного моста и нашел данную схему:
Собрал ее:
Использовал следующий текст программы:
int Volt = A0; // Для входа переменного напряжения void setup() { pinMode(Volt, INPUT); Serial.begin(9600); } //Loop Function Start Here void loop() { int AcVolt = analogRead(Volt); // считывание аналогового входа float AcVoltOut = (AcVolt * (5.098 / 1023)); // преобразование в вольты Serial.println(AcVolt); // отображение в последовательном мониторе //lcd.setCursor(0,0); Serial.print("AC Voltage"); Serial.println(AcVoltOut); // отображение в последовательном мониторе значения в вольтах delay(100); }
Немного отредактировал приложенную к источнику скетч для вывода в серийный порт, а не на дисплей. И снова ничего не вышло. В диапазоне от 0-1 В показания серийного порта в области 0,300 В. С повышением переменного напряжения на выходе моста измеряемые значения не пропорционально растут и вблизи 2 В уже сравниваются, а затем превышают значение подаваемое на вхож моста.
Господа, уверен выслушаю всего интересного в свой счет, но я не прошу кого-то что-то за меня делать. Просто если кто-то знает в чем моя ошибка, либо уже делал подобные вещи и подскажет правильное направление или схематическое решение-буду крайне благодарен.
Потому что мост нелинейный. Не годится схема принципиально. Потому что чтобы делать такие вещи нужно учить схемотехнику, а не arduino.
Конструктивно и быстро, спасибо.
Вот так это делается для изолированного источника переменного тока. R4 и R5 считается как делитель до 2.5V максимум. И не забывая, у 5 вольт переменного тока амплитуда не равна 5 вольтам. Дальше вычитаем 2.5 смещения и считаем по обычной RMS формуле.
Спасибо, если можно то задам вопрос:
имеет ли смысл не делать смещение при использовании ADS1115 как АЦП, ведь как я понял по даташиту в диф. режиме он меряет отрицательное напряжение и могу сравнивать по модулю и так искать наибольшее значение?
Мост дейсвительно вещь нелинейная. Но если измерять в диапазоне 165 - 300 вольт, а не от нуля, То погрешность от нелинейности минимальна, а факт отсутсвия напряжения чётко фиксируется. Другое дело, что конденсаторы в измерительной цепи заряжаются до максимального напряжения, которое престичывается однозначно в действующее значение только если входное напряжение чистый синус, чего в наших сетях не бывает. Форма напряжения всегда искажена. Поэтому, если хотим измерять действующее напряжение сети, надо рассчитывать RMS огибающей напряжения. Для этого надо снять как минимум 20 точек (чем больше тем лучше) на период и по формуле расчитать RMS. Как раз схема rkit заточена под данный метод. Делитель R4 R5 выбирается из соображений наксимального переменного напряжения, которое не долно превышать половины максимального напряжения АЦП. Для ардуины 5 вольт, напряжение на R5 - 2.5 вольта. При действующем напряжении вторичной обмотки трансформатора 12 вольт, максимальное напряжение будет 12*1.44*1.4 =17.3 вольта соответственно резисторы, если взять R5=2.5 кОм, то R4 17.3 - 2.5 = 14.7 - ближайший резистор большего номинала 15 кОм.
Спасибо, если можно то задам вопрос:
имеет ли смысл не делать смещение при использовании ADS1115 как АЦП, ведь как я понял по даташиту в диф. режиме он меряет отрицательное напряжение и могу сравнивать по модулю и так искать наибольшее значение?
Почему искать максимальное значение неправильно я уже написал. Нужно считать RMS -wiki в помощь. В дифрежиме измерять без смещения можно, но делитель R4 R5 нужен. Его надо рассчитать под максимальное напряжение 1115 АЦП.
Тогда это уже TRMS (если я не путаю), но все равно большое спасибо, буду пробовать двигаться в этом направлении.
TRMS это обозначение на тестерах, что они показывают не пересчитанное максимальное, а рассчитанное честно RMS.
ведь как я понял по даташиту в диф. режиме он меряет отрицательное напряжение
Отрицательное напряжение относительно другого входа, не относительно нуля питания. Ты можешь подключить напряжение смещения на один из дифференциальных входов и не делать вычитания в софте.
Отрицательное напряжение относительно другого входа, не относительно нуля питания. Ты можешь подключить напряжение смещения на один из дифференциальных входов и не делать вычитания в софте.
Так то оно да, но только если делитель смещения будет точно на половину напряжения. Обычными резисторами это сделать очень проблематично, а деже малое смещение будет существенно влиять при расчёте RMS. Поэтому всё равно приходится вычитать постоянную составляющую из полученного ряда значений напряжения перед расчётом. Поэтому нет смысла в делителе на на вторую ногу. Достаточно просто резистора между диф входами.
А на сколько глупо/критично/абсурдно брать 5 В для смещения с самой ардуино?
В условиях сборки с фото - большой разницы не сделает.
Оценил) Сборка естественно улучшится в случае положительных результатов, спасибо за помощь.
Захотел расширить данное создание до измерения переменного напряжения до 5 В с точностью 1 % (было бы идеально) и понял что набрел на стену. Изучив всевозможные тематические форумы стало понятно что вопрос этот поднимается часто, но решения я не нашел.
Невозможно найти решение не сформулированной задачи.
Если напряжение постоянное, то его величина - константа. По определению.
Если напряжение переменное - то его величина функция времени. Но никак не единственное число.
Если хотите чего-то осмысленного, нужно сформулировать критерий, как произвольную функцию следует преобразовывать в единственное число.
В дальнейшем обсуждении фигурирует аббревиатура RMS - да, это один из возможных вариантов подобного преобразования. Но отнюдь не единственный. Тем более, что в схеме с диодом Вы пытались получить что-то совершенно иное. Поэтому и неудивительна кардинальная разница в результатах.
Пожалуй, Вы правы, сформулировал так себе. В идеале хотел бы получить измеренное RMS напряжение 50 Гц до 5 В.
В идеале хотел бы получить измеренное RMS напряжение 50 Гц до 5 В.
Ну так nik182 уже описал вариант решения.