Получение данных от сети 120В 50/60Гц

Как я могу получить данные от основного источника питания моего дома и восстановить их сигнал? Я использовал трансформатор и инверторный усилитель для понижения напряжения до 5 вольт и считывал его с аналогового вывода A0, но получил очень странные данные и всего несколько цифр

данные = AnalogRead(A0); Serial.println(данные);

, 👍-1

Обсуждение

Какие данные вы пытаетесь получить?, @VE7JRO

Волна Sin на частоте 60 Гц, @Victor Vital

Пожалуйста, покажите нам скетч, который вы использовали, который дал вам «... очень странные данные и всего несколько цифр»., @VE7JRO

Пожалуйста, покажите нам полный скетч и образец соответствующих данных, @chrisl


1 ответ


Лучший ответ:

1

Последовательный вывод на Arduino довольно медленный. Распечатав свой вывод, вы настолько замедлите показания, что это покажется ерундой.

Вы должны собрать серию показаний в массив C с плавающей запятой в ОЗУ, остановить запись, а затем зарегистрировать этот массив значений.

Обратите внимание, что на большинстве плат Arduino у вас недостаточно оперативной памяти, поэтому вы сможете записать лишь небольшое количество значений. Mega 2560 имеет гораздо больше памяти, чем другие (8 КБ). Это все еще не много, но лучше, чем на других платах. Один из Arduino на базе ARM будет иметь гораздо более быстрый процессор и гораздо больше оперативной памяти.

,

У меня есть рабочий код, который можно добавить к этому ответу после небольшой очистки https://github.com/jandrassy/Regulator/blob/4c1f15e00f51d618293ae441706c3f6027a56405/util/RegulatorDev/RegulatorDev.ino#L243, @Juraj

Действительно ли скорость передачи данных является такой большой проблемой, что вам нужно буферизовать данные? Я имею в виду, это всего лишь 60 Гц. Я думаю, этого достаточно, чтобы выбрать более высокую скорость передачи данных., @chrisl

«Неужели скорость передачи данных здесь такая большая проблема...?» Да. Представьте, что Serial.write() занимает 1/10 секунды. Что вам нужно, 10 показаний за полный цикл синусоиды, чтобы получить грубое представление о ее форме? Это означало бы, что вам потребуется 600 показаний в секунду. Если вместо этого вы получите 10 показаний в секунду, не совпадающих по фазе с волной, вы увидите кажущиеся случайными показания., @Duncan C