![Преобразуване на Arduino PWM сигнал в 0-10V аналогов изход (DAC) с LM358](http://ardudevelop.eu/wp-content/uploads/2024/11/Преобразуване-на-Arduino-PWM-сигнал-в-0-10V-аналогов-изход-DAC-с-LM358.png)
Въведение
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](http://ardudevelop.eu/wp-content/uploads/2024/11/ardudevelop-RS485-BOARD-DAC-part.jpg)
Отдолу ще намерите графика на изходното напрежение на DAC частта на разработеното от нас устройство, което ще разгледаме подробно в друга статия.
![ardudevelop RS485 BOARD графика на PWM към DAC](http://ardudevelop.eu/wp-content/uploads/2024/11/ardudevelop-RS485-BOARD-графика-на-PWM-към-DAC-1024x323.png)
Подробно описание на схемата и схемотехниката
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 сигнал.
![](http://ardudevelop.eu/wp-content/uploads/2024/11/Sallen-Key-филтър.png)
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 операционен усилвател и транзисторен изходен етап, тя осигурява стабилност и точност на изходния сигнал. Схемата е подходяща за разнообразни приложения, включително управление на промишлени процеси и аналогови контролни системи. Источник тук.