Задатчик двухполярного напряжения 10В

Электросхема
Сборка платы
Тестовый стенд
Что нужно для проекта
Тестовый скетч

Фото задатчика
Версия для печати

Вернуться на главную

Наряду с таким стандартом передачи аналогового сигнала, как "токовая петля 4-20 мА", в автоматизации современной промышленности и на транспорте получил распространение стандарт "-10В...+10В" постоянного тока. На этой страничке представлено устройство, которое преобразует цифровой сигнал с Arduino в указанное выше напряжение.

Фото. Задатчик двухполярного напряжения

Задатчик двухполярного напряжения

Arduino UNO имеет шесть каналов выдачи ШИМ-сигналов (цифровые пины 3, 5, 6, 9, 10, 11), которые можно использовать для дальнейшей обработки, но, к сожалению, они работают в диапазоне от 0 до +5 вольт, то есть получить с них отрицательное напряжение нельзя. Решить эту проблему можно с помощью операционного усилителя, который инвертирует и усилит выходной сигнал с микроконтроллера.

Нам нужно иметь на выходе напряжение от -10 В до +10 В, то есть с одного пина и отрицательный и положительный вольтаж, что практически невозможно. А почему бы не использовать два выходных ШИМ-канала, вместо одного, ведь у Arduino UNO их целых шесть? Один канал пустим на положительную ветвь напряжения (неинвертирующий усилитель), второй на отрицательную (инвертирующий усилитель), а затем объединим оба сигнала сумматором того же ОУ. Естественно, в скетче нужно прописать переключение между этими пинами в зависимости от знака задаваемого пользователем сигнала.

Данное решение имеет еще один плюс. Как известно, ШИМ-сигнал Arduino UNO 8-битный, то есть его разрешающая способность всего 256 градации (0...255), но используя два канала, мы повысим разрешение прибора в два раза.

Что еще нужно предусмотреть для работы этого устройства? Так как мы будем иметь дело с отрицательным вольтажем, нам понадобится источник двухполярного напряжения. При этом, скорее всего, в наличии у нас будет только 24 вольта постоянного тока. Не проблема, на этой страничке представлен преобразователь однополярного напряжения в двухполярное, который вы сами можете собрать из подходящих радиокомпонентов.

Еще одна проблема связана с тем, что выход с Arduino представляет из себя ШИМ-сигнал, использовать который напрямую просто так нельзя, его нужно выровнять. Для этого в схеме задатчика предусмотрена фильтрация с помощью простейших RC-фильтров.

На рисунке ниже представлена электросхема задатчика двухполярного напряжения. Еще ниже приведены пояснения, которые помогут лучше понять принцип работы устройства.

ЭЛЕКТРОСХЕМА

Центральной частью задатчика напряжения является микросхема LM324 (datasheet), представляющая из себя четыре операционных усилителя на одном кристалле. Сигнал, отвечающий за положительную часть напряжения (0...255), подается с Arduino (например с цифрового пина D3) на вход 1 клеммницы PWM, а отвечающий за отрицательную часть (например с цифрового пина D9), на вход 2. Далее эти сигналы фильтруются в RC-фильтрах (R1-C1 и R4-C2) и поступают на неинвертирующие усилители A и B. Сигнал с ОУ B инвертируется в усилителе С, после чего они поступают на сумматор D, на выходе с которого стоит еще один фильтр (R14-C3).

Электросхема задатчика напряжения

Электросхема задатчика напряжения

Рассмотрим назначение элементов схемы подробней.

  • Питание на LM324 подается от двухполярного источника. При использовании в качестве основного питания 24 вольта, на входе в LM324 мы получим -12В...+12В. Падение напряжения на этой микросхеме составляет 1,5-1,8 вольта на плечо, поэтому, чтобы получить на ее выходе требуемые нам -10В...+10В, не снижайте общее напряжение питания ниже 24 вольт.
  • С другой стороны, максимальное напряжение питания LM324 составляет -15В...+15В. Поэтому общее напряжение питания не должно превышать 30 вольт.
  • Клеммница питания LM324 имеет три подвода : 1 - положительный, 3 - отрицательный, 2 - общий провод. Общий провод является "землей" для всех элементов схемы.
  • Выход с задатчика выполнен в виде двойной клеммницы OUT-GND. Отвод №1 - собственно выходной сигнал -10В...+10В, а №2 - еще один выход на "землю" (он соединен с общим проводом клеммницы SUPPLY). Этот зажим удобен для контрольных замеров (относительно него измеряются все напряжения в схеме).
  • Подвод ШИМ-сигналов от Arduino идет через клеммницу PWM. При этом положительный подводится к зажиму №1, а отрицательный (на самом деле он тоже положительный) к зажиму №2.
  • Все конденсаторы в схеме керамические. Номинал конденсаторов С1 и С2 4,7 мкФ, а С3 - 0,47 мкФ.
  • Если вы хотите подобрать свои параметры RC-фильтров, воспользуйтесь осциллографом.
  • В плечи неинвертирующих усилителей А и В включены подстроечные резисторы, чтобы калибровать устройство. Они имеют номинал 10К, но выставлены на 5К, чтобы была возможность регулировки как в одну, так и в другую сторону.
  • Резисторы R3 и R6 выполняют роль подтягивающих. Они обеспечивают ноль на выходе при отсутствии сигнала с Arduino.
  • Обратите внимание, "отрицательный" сигнал с Arduino поступает сначала на неинвертирующий усилитель, а затем на инвертирующий. Почему сразу нельзя его пустить на инвертирующий ОУ, а неинвертирующий вообще убрать. Такое решение принято из соображений безопасности. При любых неполадках (например исчезновение питания) устройство, по возможности, должно на выходе выдавать ноль. Но инвертирующий усилитель не может этого обеспечить, так как резисторы R7 и R8 образуют "байпас" ОУ, поэтому даже при отсутствии питания на микросхему LM324 сигнал с Arduino (пусть и искаженный) будет доходить до выводной клеммницы OUT-GND. Включение неинвертирующего ОУ позволяет решить эту проблему.

СБОРКА ПЛАТЫ

Схема пайки элементов задатчика напряжения представлена на рисунке ниже. За базу взята макетная плата 80х60 мм. Конечно вы можете расположить элементы по другому и более компактно.

Схема пайки задатчика напряжения на макетной плате

Схема пайки задатчика напряжения на макетной плате

Примечания :

  1. Микросхема LM324 устанавливается в панель DIP14. Хотя вы можете сразу впаять ее в плату.
  2. Все подводы и отводы выполнены в трех вариантах : клеммница, штыревой соединитель "папа" и "мама" для проводов Dupont.
  3. Мощность всех резисторов (включая подстроечные) 0,5 ватт.
  4. В двух местах на плате (Е38 и Т37) провода перехлестываются, автор не смог провести их в плоскости платы, пустите их по "воздуху".

ТЕСТОВЫЙ СТЕНД

Прежде, чем начать работать с задатчиком напряжения, его нужно откалибровать. А для этого нам понадобится тестовый стенд, схема которого представлена ниже. Наша задача выставить с помощью подстроечных резисторов реальное напряжение на выходе с устройства в соответствии с заданным с помощью кнопок и отображаемым на экране LCD. После этого вы можете заменить в скетче вольтаж на регулируемый параметр, например, угол разворота лопастей ВРШ или положение пера руля.

Схема подключения задатчика для тестирования

Схема подключения задатчика для тестирования

Управлять системой можно с помощью двух кнопок : ВВЕРХ и ВНИЗ. Нажимая их, мы фактически будем менять скважность сигнала ШИМ с выходных пинов. При этом на LCD в верхней строчки вы увидите скважность сигнала (-255...+255) и номер пина с которого в данный момент идет передача сигнала. А в нижней - расчетный вольтаж на выходе с задатчика.

КАЛИБРОВКА

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

Подсоедините к выходным клеммам задатчика мультиметр. Кнопкой ВВЕРХ установите уровень ШИМ-сигнала 255, что соответствует расчетным +10В на выходе с устройства. Теперь с помощью потенциометра POTI1 установите +10В по мультиметру. Далее кнопкой ВНИЗ выставите уровень ШИМ-сигнала -255 (расчетные -10В). Затем подстроечным резистором POTI2 установите значение на тестере -10В. Калибровка закончена.

Естественно, при использовании данного задатчика в реальных приложениях, вам нужно заменить в скетче расчетные вольты на регулируемый параметр.

Стенд для калибровки

Стенд для калибровки

ЧТО НУЖНО ДЛЯ ПРОЕКТА

Задатчик двухполярного напряжения

  • макетная плата под пайку 80х60 мм - 1 шт
  • клеммницы двойные - 2 шт
  • клеммница тройная - 1 шт
  • микросхема LM324 (datasheet) в корпусе DIP-14 - 1 шт
  • панелька DIP-14 - 1 шт
  • резистор 10К (0,5 Вт) - 7 шт
  • резистор 16К (0,5 Вт) - 2 шт
  • резистор 20К (0,5 Вт) - 1 шт
  • резистор 220К (0,5 Вт) - 4 шт
  • резистор подстроечный многооборотный типа 3296 (datasheet) на 10К - 2 шт
  • конденсатор керамический 4,7 мкФ - 2 шт
  • конденсатор керамический 0,47 мкФ - 1 шт
  • провод типа AWG - 20 см
  • штыревой соединитель - 14 шт
  • разъем PBS - 14 шт

Тестовый стенд

  • PLC Arduino UNO (datasheet) - 1 шт
  • Sensor Shield v 5.0 (datasheet) - 1 шт
  • понижающий DC-DC преобразователь типа LM2596 (не менее 2А) (datasheet) - 1 шт
  • LCD-дисплей 1602 (datasheet) + модуль I2C - 1 шт
  • кнопка тактовая с колпачком (datasheet) - 2 шт
  • макетная плата под пайку 35х50 - 1 шт (для монтажа кнопок)
  • резистор 10 кОм (0,25 Вт) - 2 шт
  • стойка мама-мама М3х15 - 8 шт (для монтажа LCD-дисплея и задатчик двухполярного напряжения)
  • гайка М3 - 50 шт и более в зависимости от способа крепления вышеуказанных элементов
  • болт М3х15, М3х10 - 20 шт и более
  • провод Dupont мама-мама или папа-мама (20 см) - 30 шт и более в зависимости от типа пинов соединяемых элементов
  • провод типа AWG - 50 см (соединение штекер - DC-DC преобразователь - Sensor Shield)
  • штекер питания DC 2.1 мм с клеммной колодкой папа и мама - 1 пара (для подключения шилда)
  • кусок оргстекла или т.п. - 20х30 см (для монтажа всех элементов)
  • болт М6х15 и гайка - 4 шт (ножки оргстекла)

ТЕСТОВЫЙ СКЕТЧ

Ниже представлен скетч системы управления. В этом окне он неудобочитаем, поэтому скачать его в формате ino вы можете по этой ссылке.

Для работы этого скетча вам понадобятся дополнительные библиотеки :

  • Wire.h - библиотека для работы с протоколом I2C. Это стандартная библиотека, она входит в комплект среды программирования Arduino IDE.
  • LiquidCrystal_I2C.h - библиотека для работы с LCD по протоколу I2C. Скачать.

Если есть возможность, проверьте эти библиотеки на наличие обновлений.