Анализ 24-вольтового быстрого ШИМ-сигнала в Arduino

В настоящее время я пытаюсь установить головку 3D-принтера на дешевый китайский фрезерный станок с ЧПУ. До сих пор мне удавалось успешно управлять вентилятором, нагревательным элементом (включая считывание показаний термистора) и двигателем питателя с помощью Arduino Uno.

Сам ЧПУ имеет клемму, которая подключается к двигателю шпинделя фрезерного станка. Это производит ШИМ-сигнал 24 В 2 МГц, предназначенный для управления скоростью двигателя шпинделя.

После того, как я установлю печатающую головку, я хотел бы иметь возможность контролировать скорость двигателя устройства подачи нити, используя настройку скорости вращения шпинделя ЧПУ. Для этого мне нужно, чтобы Arduino мог считывать вывод терминала скорости вращения шпинделя.

Теперь к моему вопросу: как можно сдвинуть ШИМ-сигнал 24 В до 5 В, чтобы я мог считывать и измерять рабочий цикл с помощью моего Arduino?

Моей первой мыслью было использовать оптопару: это кажется возможным, но мои оптопары (LTV-817A) имеют граничную частоту 80 кГц, поэтому, насколько я понимаю, они слишком медленны для ШИМ на 2 МГц. сигнал.

Какие у меня есть альтернативы?

Вы на 100% уверены, что это несущая частота 2 МГц для ШИМ?
Я голосую за то, чтобы закрыть этот вопрос как не по теме, потому что это старая заброшенная проблема XY. Фабрики делают плохие 3D-принтеры, а подача нити требует большей точности, чем просто скорость. В этом есть целое искусство и совокупность знаний, которые вы упускаете из виду, пытаясь воспроизвести эксперимент, который мог бы показаться интересным в сфере хобби 15 лет назад, когда мало кто знал о FDM за пределами нескольких компаний, но сегодня он давно устарел. .
Я согласен с тем, что завод никогда не будет конкурировать со специализированными принтерами, хотя бы потому, что расстояние Z, которое он может покрыть, слишком мало, чтобы печатать что-либо значимое. Вот почему я спросил об электрической проблеме обработки ШИМ-сигнала, который, я уверен, имеет и другие применения, помимо 3D-печати. Первый абзац моего вопроса был просто для контекста.

Ответы (2)

Мое предложение:

  1. Фильтр нижних частот ШИМ-сигнала с частотой 2 МГц для получения сигнала 0–24 В пост. тока, пропорционального скорости. Достаточно простой RC-цепи. При частоте 2 МГц постоянная времени будет намного короче, чем скорость разгона/торможения двигателя.
  2. Буферизируйте этот сигнал.
  3. Управляйте аналоговым оптоизолятором.
  4. Подайте аналоговый выход на аналоговый вход вашего микроконтроллера.

Шаг 2 должен работать, не загружая фильтр слишком сильно.

У Воутера ван Оойена есть несколько предложений в его ответе на « Нужна оптопара для получения прямо пропорционального выхода, гальванически изолированного от входа постоянного тока» . В частности, интересно выглядит усилитель с линейной развязкой HCPL-7510 .

Если земля является общей между ШИМ-контроллером и Arduino, вы можете просто использовать резисторный делитель.

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Не на 2 МГц с такими значениями!