Помогите: нужно получить аналоговый +/- 10В с помощью Arduino

Здравствуйте коллеги
задача в общем такова:
нужно получать сигнал от -10В … до +10В (в идеале -15…+15)
с шагами, например 0…255 analogWrite подойдет
Как вариант -использовать два выхода, при необходимости получить 0…+10В идет сигнал, например с D5 (0…255), при необходимости получить -10…0В - задаем с D6 (0…255)
то есть нужно получать выходное напряжение от -10В до +10В на двух проводках (совсем по простому) с шагом хотя бы 50мА
Использование модуля MX1508 (драйвер двигателей) не подошло, так как с него у меня не получилось снять более-менее линейную характеристику…
(Или может я что-то не так делал)…
Может есть идеи, какая дополнительная схема или может готовый модуль есть?
Спасибо, если кто что сможет подсказать…

Марат

Брррр, пойду поем… А то мерещится всякое…

3 лайка

Это невозможно в принципе.

А так, получение сигнала от 0 до 10В подробно обсуждается вот в этой теме. Если надо от -10 до +10 - поменяйте включение операционного усилителя и питание.

Спасибо за пинок в нужную сторону :slight_smile:

Уточните, какой ток или какая нагрузка на выходе?

Ну, как какой ток? Сказано же

чего непонятного-то?

2 лайка

Так то оно канешно так)
А вот, если подумать, то и вопрос то мой лишний. Шагов 255, один шаг 50 мА, значит макс. выходной ток 255*0.05/2=6.4 А. Надо уметь читать между строк!)

2 лайка

При напряжении +/-10В это (20В в размахе) = 128 Вт(!)
Ну а если +/-15В, то … все 192 Вт (!)

Просто на математику перед сном потянуло… :smiley:

ЗЫ: А зачем на два делил?

Так у него 127 шагов в положительной полярности и 127 шагов в отрицательной. 10 В х 6.4 А =64 Вт всего то.

Ээээ… Два вывода, по 255… перечитай…

ЗЫ: Мои расчеты из #8, похоже, нужно на 4 умножать )))

Ой ёей :slight_smile: вот отшибся вместо мВ написалось мА.
Проще говоря: есть установка с электромоторами, на которые надо подавать полярный сигнал. -15В…0 - вращение в одну сторону, 0…+15В - вращение в другую сторону, моторы мощные, управляются модулем управления с описанными выше параметрами. Модуль управления блоком управления (прошу прощения за тавтологию) вышел из строя. Нужно найти более менее простое решение.
Можно попробовать всять дифференциальный сигнал с PWM-входов ардуинки, но там получается -5В… +5В (например с выводов 5 и 6).
В этом случае - будем иметь скорость моторов просто в два раза ниже.
Терпимо на крайний случай, но в поиске решения расширить диапазон (-10В…+10В хотя бы)… Важно, что управлять нужно и с малыми напряжениями, для очень медленного вращения.
Как то так. Мощность управляющего сигнала крайне мала, достаточно батарейки от часов.
Вопрос ещё в процессе решения. Если что нито придумается, отпишусь

Хм…

Шим сигнал берите с ардуинки, и управляйте им транзисторным ключом Изменяйте полярность с помощью реле

1 лайк

Не надо в наше время ничего городить для подобной задачи !!!
Берем I2C или SPI переменник на 10+ кОм. На крайние точки подаём + и - в нужных пределах. Средней точкой управляем программно и снимаем с неё нужное напряжение …

А вот тут пжлста поподробнее… Это что за I2C (или SPI) переменник?
что то про такое первый раз слышу? Можно пнуть где ознакомится с этим, да и про управление “средней точкой” как-то не тривиально.

Цифровые потенциометры | купить в розницу и оптом

1 лайк

ЗдОрово, вот только как их применить к моей задаче?
“содержат подробные описания”… где? хоть бы пример какой …

Если взять обычный переменник и подать на один конец +10 на другой -10, то что будет на среднем контакте ?

arduino digital potentiometer — Яндекс: нашлось 13 тыс. результатов

Интересный вопрос. :slight_smile: относительно чего будем смотреть средний контакт?
… Почитал, что на всидку нашлось про “цифровые переменники”, как-то не сказал бы что это “простое решение”. Что то мне подсказывает, что в таком случае в половину точность теряем.
Спасибо, конешно, что и про яндекс и про чип и дип… Я тоже так умею. Вот только конкретики бы.

На 256 шагов есть варианты.