Преобразуване на Arduino PWM сигнал в 0-10V аналогов изход (DAC) с LM358

Преобразуване на Arduino PWM сигнал в 0-10V аналогов изход (DAC) с LM358

Въведение

Arduino платките са изключително полезни за проекти, изискващи управление на устройства с цифрови сигнали. Един от недостатъците на Arduino е, че то не разполага с вграден DAC (Digital-to-Analog Converter). Вместо това, Arduino използва PWM (Pulse Width Modulation) за симулиране на аналогов изход. Въпреки, че PWM е ефективен, в някои случаи е необходим истински аналогов сигнал с точно определено напрежение, например в индустриални приложения, където се изисква 0-10V аналогов вход. В тази статия ще разгледаме схема, която преобразува Arduino PWM сигнал в стабилен аналогов изход от 0 до 10V, използвайки LM358 операционен усилвател и изходен NPN транзистор.

Схема на Arduino PWM сигнал към 0-10v DAC

Преобразуване-на-Arduino-PWM-сигнал-в-0-10V-аналогов-изход-DAC-с-LM358

С тази схема можем да допълним функционалността на Arduino, като направим изходен DAC с някой от PWM пиновете на платформата. Как се генерират PWM сихнали с Arduino може да прочетете в нашата статия Arduino PWM output.

Схемата може лесно да се интегрира в по-сложни устройства направени с Arduino ( Atmega328p), като така прибавяме DAC към функционалността на устройството.

ardudevelop RS485 BOARD DAC part

Отдолу ще намерите графика на изходното напрежение на DAC частта на разработеното от нас устройство, което ще разгледаме подробно в друга статия.

ardudevelop RS485 BOARD графика на PWM към DAC

Подробно описание на схемата и схемотехниката

1. Захранваща част

Схемата се захранва от +12V DC източник, който осигурява захранването както за операционния усилвател LM358, така и за изходния транзистор 2SC2073. Кондензаторите C3 (470µF) и C4 (100nF) служат за филтриране на захранващото напрежение, като премахват шумове и пулсации.

2. PWM вход от Arduino

PWM сигналът от Arduino се въвежда през входен пин, маркиран като “PWM from Arduino“. Този сигнал има амплитуда от 0 до 5V и се използва за симулиране на аналогов изход чрез регулиране на ширината на импулсите (широчинно импулсна модулация или PWM).

3. Първи операционен усилвател (U1A)

Първият операционен усилвател U1A (LM358) е конфигуриран като инвертиращ усилвател с възможност за регулиране на усилването. Входният PWM сигнал от Arduino преминава през резистор R1 (2.4kΩ), който служи за ограничаване на тока и намаляване на шума от PWM сигнала.

Делител на напрежение (R8 и R2): След това сигналът минава през резисторния делител, съставен от R8 (12kΩ) и R2 (10kΩ). Този делител повдига напрежението от PWM сигнала, като го адаптира към работния обхват на операционния усилвател U1A.

Инвертиращият вход на U1A получава сигнала от делителя, а неинвертиращият вход е свързан към земя (GND), което осигурява стабилна референтна точка. Изходът на U1A осигурява изгладен и пропорционален аналогов сигнал спрямо входния PWM.

4. RC филтър

RC филтърът е ключов компонент, който преобразува PWM сигнала в истински аналогов сигнал. Филтърът е конфигуриран като Sallen-Key нискочестотен филтър от втори ред, който премахва високочестотните пулсации и шумове, като по този начин осигурява плавен и чист аналогов изход. Честотата на прекъсване на този филтър е настроена около 1.07Hz, което е достатъчно ниско, за да премахне пулсациите от типичен Arduino PWM сигнал.

5. Втори операционен усилвател (U1B)

Вторият операционен усилвател U1B (LM358) е конфигуриран като неинвертиращ усилвател. Той получава изгладения сигнал от RC филтъра и го усилва до диапазона 0-10VКондензаторът C1 (220nF), свързан между изхода и инвертиращия вход, стабилизира усилвателя и предотвратява високочестотни осцилации.

6. Транзисторен изходен етап

Изходният сигнал се подава към NPN транзистор Q1 (2SC2073), който е свързан в конфигурация с общ емитер. Транзисторът усилва изходния ток и осигурява достатъчно мощност за управление на външни устройства. Резисторът R4 (150Ω) ограничава тока към базата на транзистора, а R5 (470Ω, 1W) служи като токово-ограничаващ резистор на изхода, за да предпази транзистора и свързаното натоварване.

7. Изходен DAC сигнал (0-10V)

Изходът от схемата е стабилен аналогов сигнал в диапазона 0-10V, което позволява директна интеграция с промишлени устройства и системи, изискващи стандартен аналогов вход.


Заключение

Тази схема е ефективно решение за преобразуване на Arduino PWM сигнал в 0-10V аналогов изход. Чрез използването на LM358 операционен усилвател и транзисторен изходен етап, тя осигурява стабилност и точност на изходния сигнал. Схемата е подходяща за разнообразни приложения, включително управление на промишлени процеси и аналогови контролни системи. Источник тук.

Translate »