Оглавление:
- Шаг 1: демонстрация
- Шаг 2. Используемые ресурсы
- Шаг 3: блок-схема
- Шаг 4: Схема
- Шаг 5: LM386 - закрепление
- Шаг 6: AmpOp - дифференциал (вычитатель)
- Шаг 7: AmpOp - инверторный сумматор
- Шаг 8: Maple Mini - Pinage
- Шаг 9: Maple Mini - закрепление - A / D, используемый при захвате
- Шаг 10: Сборка
- Шаг 11: построение графика с полученными данными
- Шаг 12: Расчет среднеквадратичного значения
- Шаг 13: Исходный код
- Шаг 14: файлы
Видео: Измерение истинного среднеквадратичного значения переменного напряжения: 14 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11:52
Сегодня мы будем использовать STM32 Maple Mini для чтения переменного тока. В нашем примере мы получим среднеквадратичное значение энергосистемы. Это очень полезно для тех, кто хочет контролировать электрическую сеть для Интернета вещей. Затем мы создадим приложение, используя вычислительную мощность Maple Mini, применим электронную схему, позволяющую регистрировать сигнал 127 В переменного тока, а также применим расчет среднеквадратичного значения (RMS) к образцам.
Шаг 1: демонстрация
В нашей сегодняшней сборке у нас есть STM32, в дополнение к нашей аналоговой схеме, чтобы сделать вход 110. Чтобы избежать ударов, изолируйте резистор, который входит, на 110.
Схема довольно чувствительная. У меня есть 110, но я уменьшаю его в 168 раз с помощью делителя напряжения и вставляю его в операционный усилитель, который имеет несколько функций.
У нас также есть дополнительные конденсаторы для фильтрации источника. Если ваш источник хорошего качества, вам не нужно его использовать.
Вход AD рассчитывается через осциллограф, на котором вы видите синусоиду, которая не равна 110 (но она хорошо сформирована). Другое дело, что напряжение в нашей электросети не 110 (на самом деле 127 вольт). Но так как у нас идет стабилизатор, он будет настраиваться на 115В.
Значение, отображаемое на мониторе последовательного порта, рассчитывается в среднеквадратичном значении, то есть идентифицируется измерителем Fluke Meter.
Шаг 2. Используемые ресурсы
• Джемперы
• Кленовый мини
• Протоборд
• Усилитель LM386
• Симметричный источник (+ 5В и -5В)
• Многооборотный подстроечный резистор 10k (или потенциометр)
• Четыре конденсатора из полиэстера 100 нФ
• Три резистора по 10 кОм
• Четыре резистора 470 кОм
• Один резистор 5 кОм
• Один стабилитрон 1n4728A
Шаг 3: блок-схема
Шаг 4: Схема
Это схема, которую я разработал на основе спецификаций, которые я считаю лучшими для этого измерения, но есть несколько других примеров, которые можно найти в Интернете.
Шаг 5: LM386 - закрепление
LM386 имеет два усилителя для преобразования или усиления сигнала.
Шаг 6: AmpOp - дифференциал (вычитатель)
Шаг 7: AmpOp - инверторный сумматор
Шаг 8: Maple Mini - Pinage
Пины отмечены на:
Красный >> 3V3 Tolerant
Зеленый >> 5 В толерантный
Шаг 9: Maple Mini - закрепление - A / D, используемый при захвате
Я подчеркиваю, что использованный мною вывод - это D11, который (в номенклатуре STMicroelectronics) - это PA0.
Шаг 10: Сборка
Для нашей схемы вам понадобится симметричный источник, подобный тому, который мы создали для этого проекта. В противном случае вам понадобятся два источника.
Шаг 11: построение графика с полученными данными
Шаг 12: Расчет среднеквадратичного значения
Шаг 13: Исходный код
Исходный код - Определения и константы
Сначала мы определили показание вывода как D11, а также различные константы, используемые в расчетах.
#define leituraTensao D11 // AD CH0 no pino PA0 // valor teórico divisor de tensão = 168.85714285714285714286 const float fatorDivisor = 168.40166345742404792461; // Теоретическая ценность амплификации = 1.0 const float fatorAmplificador = 1.0; // Доблесть, используемая для умножения с использованием функции const float fatorMultiplicacao = fatorDivisor * fatorAmplificador; // Теоретическая ценность питания Vcc = 3.3V const float Vcc = 3.3; // теоретическая ценность смещения do ampificador = Vcc / 2.0; const float offSet = 1.66; // Теоретический преобразователь в AD = 3.3 / 4095.0 const float fatorAD = Vcc / 4095.0; const int amostras = 71429; // результат 1, 027 segundos para cada atualização // const int amostras = 35715; // resulta em 0, 514 segundos para cada atualização
Исходный код - Глобальные переменные
Теперь мы определяем некоторые глобальные переменные.
поплавок Vrms = 0,0; // Armazena o valor rms da tensãofloat Vmax = 0.0; // использовать максимальное обнаружение доблести с плавающей запятой Vmin = 10000.0; // Вооружение или минимальное обнаружение доблести float Vmed = 0.0; // armazena o valor médio entre Vmáx e Vmín
Исходный код - Настройка ()
Запустите последовательный порт на скорости 1 Мбит / с. Мы настроили порт AD как вход и подождали 5 секунд, прежде чем начать сбор данных. Время ожидания не является обязательным.
void setup () {Serial.begin (1000000); // инициализация последовательного порта em 1 Мбит / с pinMode (leituraTensao, INPUT); // установить порт для AD como entrada delay (5000); // aguarda 5s antes de iniciar a coleta. (опционально)}
Исходный код - Loop () - запускает переменные сбора данных
В цикле у нас есть переменная для итерации. Здесь мы также сохраняем показания AD в 0,0 и перезапускаем переменную VRMS также в 0,0.
void loop () {int я = 0; // параметр переменной float leitura = 0.0; // Armazena как лейтуры делают AD Vrms = 0.0; // reinicia a varável Vrms
Исходный код - фиксирует и выполняет отдельные вычисления для каждого образца.
На этом этапе, если i меньше выборки, мы запускаем цикл выборки, пока i не достигнет количества выборок. Мы запускаем analogRead, чтобы прочитать аналоговый порт и вычислить сумму квадратов считанных напряжений. Наконец, мы увеличиваем итератор.
while (i <amostras) {// inicia um ciclo de amostragem até que i alcance o número de amostras leitura = analogRead (leituraTensao); // это аналоговый порт //Serial.println(leitura); // Описать синтаксический анализатор для выполнения AD Vrms = Vrms + pow (((leitura * fatorAD) - offSet), 2.0); // вычислить сумму, равную квадрадикам, на основе теней, равных i ++; // увеличение итератора}
Исходный код - Общие расчеты выборок и определение максимума, минимума и среднего
Мы применяем факт умножения для определения действительного значения напряжений. Мы определяем, является ли значение максимальным или минимальным, и вычисляем среднее значение текущего максимального и минимального значений.
// Применение мультипликатора для определения действительных значений силы Vrms = (sqrt (Vrms / amostras)) * fatorMultiplicacao; // обнаруживаем максимальную доблесть, если (Vrms> Vmax) {Vmax = Vrms; } // обнаруживаем минимальное значение доблести, если (Vrms <Vmin) {Vmin = Vrms; } // вычислить максимальную и минимальную стоимость Vmed = (Vmax + Vmin) / 2.0;
Исходный код - параметры вывода
У нас есть три варианта «рисования» выходного значения. Мы отформатировали вывод на последовательный плоттер Arduino IDE, например CSV или Jason.
// указан формат для последовательного порта плоттера IDE Arduino Serial.print (Vrms, 3); Serial.print (","); Серийный отпечаток (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); / * // используется формат json Serial.print ("{" instante (ms) ":"); Serial.print (миллис ()); Serial.print (","); Serial.print ("\" Vrms (V) ":"); Serial.print (Vrms, 3); Serial.print (","); Serial.print ("\" Vmax (V) ":"); Серийный отпечаток (Vmax, 3); Serial.print (","); Serial.print ("\" Vmin (V) ":"); Serial.print (Vmin, 3); Serial.print (","); Serial.print ("\" Вмед (В) ":"); Серийный принт (Вмед, 3); Serial.println ("}"); * / / * // укажите формат в CSV Serial.print (millis ()); Serial.print (","); Serial.print (Vrms, 3); Serial.print (","); Серийный отпечаток (Vmax, 3); Serial.print (","); Serial.print (Vmin, 3); Serial.print (","); Serial.println (Vmed, 3); * /}
Шаг 14: файлы
Загрузите файлы:
Я НЕТ
Рекомендуемые:
Nest Hello - звонок дверного звонка со встроенным трансформатором UK (220-240 В переменного тока - 16 В переменного тока): 7 шагов (с изображениями)
Nest Hello - звонок дверного звонка со встроенным трансформатором Великобритания (220–240 В переменного тока - 16 В переменного тока): я хотел установить дома дверной звонок Nest Hello, приспособление, которое работает от переменного тока 16–24 В (ПРИМЕЧАНИЕ: обновление программного обеспечения в 2019 году изменило Европу диапазон версий до 12 В - 24 В переменного тока). Стандартные дверные звонки со встроенными трансформаторами доступны в Великобритании на
Измерение частоты и напряжения источника питания с помощью Arduino: 6 шагов
Измерение частоты и напряжения источника питания с использованием Arduino: Введение: цель этого проекта - измерить частоту и напряжение источника питания, которые находятся в диапазоне от 220 до 240 Вольт и 50 Гц здесь, в Индии. Я использовал Arduino для захвата сигнала и расчета частоты и напряжения, вы можете использовать любой другой микроконтакт
Принципиальная схема бесконтактного детектора напряжения переменного тока: 6 шагов
Принципиальная схема бесконтактного детектора напряжения переменного тока: Схема идентификатора напряжения переменного тока представляет собой первичную схему, основанную на полностью NPN-транзисторах, таких как BC747, BC548. Схема состоит из 3-х отдельных ступеней. После этого хрупкий знак получил твердый знак, и эта цепь может управлять Drove так же, как колокол. Здесь я
Схема источника питания переменного напряжения с использованием IRFZ44N Mosfet: 5 шагов
Схема источника питания переменного напряжения с использованием МОП-транзистора IRFZ44N: Привет друг, сегодня я собираюсь сделать источник питания переменного напряжения с использованием МОП-транзистора IRFZ44N. В другой схеме нам требуются разные напряжения для работы цепи. Таким образом, с помощью этой схемы мы можем получить желаемое напряжение (до -15V). Приступим
Источник переменного напряжения и тока: 5 шагов
Источник питания с переменным напряжением и током: просмотрите видео выше для всех шагов. Самодельный источник питания, идеально подходящий для тестирования светодиодов, двигателей и другой электроники. Список использованных материалов: - Двойной измеритель здесь или здесь - Модуль постоянного тока - Прецизионный потенциометр 10K Здесь или Вот или - Нормальный потенциометр 10к