Микроконтроллер и аналоговый выход.

Обсуждаем контроллеры компании Atmel.
Ответить
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Микроконтроллер и аналоговый выход.

Сообщение melandr »

Добрый день, уважаемые коты! Хотел посоветоваться по такому вопросу. Есть цифровой датчик температуры и влажности SHT10. Выдает влажность и температуру по I2C. Но получать эти параметры должен промышленный PLC в виде аналогового сигнала 0- 10 В. Планирую данные с SHT10 получать микроконтроллером ATmega8, а дальше микроконтроллер преобразует цифру в два ШИМ сигнала, интегрируем RC-цепочкой. Потом ставим масштабирующий усилитель на ОУ с питанием 10 В.
Шкалы будут:
влажность 0-100% в 0 -10 В
температура 0-120 град.Ц в 0-10 В.
Есть правда сомнения, насколько будет линейна такая связка. Или может лучше вместо ШИМ и RC-цепочки использовать какой-нибудь ЦАП с SPI, I2C входом? Также непонятно с ОУ, достаточно сделать питание 10 В, чтобы получить диапазон 0-10В?
Такие приборчики видел промышленные, но у всех диапазон измерения 50 град.Ц. Хотя SHT10 работает до 125 град. Ц. Искал как реализуется в промышленных контроллерах выход 0-10В, но так ничего и не нашел. Заранее спасибо за помощь
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Микроконтроллер и аналоговый выход.

Сообщение akl »

Возможно PLC имеет свободный вход счетчика, тогда можно преобразовать данные с датчика в частоту. Получается довольно просто. У меня было так. Термометр сопротивления Pt100-AD7788-ATtiny2313-частота в формате (1000+T)Гц.
Последний раз редактировалось akl Пн дек 05, 2016 16:54:46, всего редактировалось 1 раз.
Аватара пользователя
khomych
Мучитель микросхем
Сообщения: 423
Зарегистрирован: Сб фев 21, 2009 16:11:32
Откуда: Харьков
Контактная информация:

Re: Микроконтроллер и аналоговый выход.

Сообщение khomych »

10 в для питания ОУ недостаточно. ОУ должны быть Rail to Rail
может стоит посмотреть в сторону цифровых потенциометров?
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Re: Микроконтроллер и аналоговый выход.

Сообщение melandr »

akl писал(а):Возможно PLC имеет свободный вход счетчика, тогда можно преобразовать данные с датчика в частоту.

К сожалению PLC не имеет счетного входа. Имеет только аналогово-дискретные 14 входов. Читает напряжение, сопротивление и дискретный.
khomych писал(а):10 в для питания ОУ недостаточно. ОУ должны быть Rail to Rail

Так и есть. ОУ будет Rail to Rail. Просто почему не хватит 10 В?
Вот такой TS912IDT например. Или ADA4851.
Может еще посоветуете недорогие Rail to Rail ОУ с напряжением питания более 10 В, можно два в одном корпусе.
ЗЫ: Как вариант использовать вот такой : MCP4921-E/SN 12 битный ЦАП, SPI
А дальше ОУ раскачивающий до 10 вольт. Правда не понятно,нужно ли использовать внешний ЦАП, или будет достаточно ШИМ микроконтроллера. Также еще не понятно, как ограничить выход ОУ на 10 В?
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Микроконтроллер и аналоговый выход.

Сообщение Z_h_e »

Получившийся напряжёвый сигнал с ШИМ заведите обратно на вход АЦП контроллера ,как обратную связь. Сможете устанавливать напряжение с точностью АЦП.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Микроконтроллер и аналоговый выход.

Сообщение Vov123 »

8)
Последний раз редактировалось Vov123 Вт дек 06, 2016 16:08:36, всего редактировалось 1 раз.
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Re: Микроконтроллер и аналоговый выход.

Сообщение melandr »

Вот такой ПЛК используется:
http://www.raut-automatic.kiev.ua/kontr ... exy-s.html
Вопрос так и остался. Как лучше реализовать аналоговый выход? Через ЦАП или использовать ШИМ контроллера? Если ШИМ контроллера использовать, какую частоту необходимо использовать?
Линейность от датчика не зависит. Датчик выдает значения температуры и влажности в цифровом коде. Как Ds18B20. А дальше микроконтроллер генерирует два ШИМ сигнала со скважностью от 0 до 100%.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Микроконтроллер и аналоговый выход.

Сообщение Starichok51 »

вполне будет достаточно использовать ШИМ.
процесс изменения температуры и влажности - весьма медленный. поэтому частоту ШИМ можно делать небольшую и делать хороший фильтр сигнала ШИМ. большая инерционность фильтра для медленных процессов не будет иметь никакого значения.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Re: Микроконтроллер и аналоговый выход.

Сообщение melandr »

Владимир, а не подскажете разрядность ШИМ какую нужно брать? Я планирую использовать 16 бит таймер/счетчик 1. Частота процессора будет 16 МГц. Насколько я понимаю, от разрядности ШИМ зависит, какую скважность я могу получить. При 8 бит будем иметь 255 отсчетов. При выходном напряжении 10.00 В имеем 125 град. Ц. Следовательно на 1 град. Ц соответствует 80мВ. Но 1 градус не очень точное деление шкалы. Хотелось бы иметь точность хотя бы 0,1 град. Ц. Следовательно, нужно иметь минимум 1250 отсчетов. Также по поводу операционного усилителя. Советуют Rail-to-Rail. В принципе неплох. Но есть одно но, с питанием более 10 В не очень большой выбор ОУ. Я присмотрел LM358 . Во-первых, два канала ОУ, во-вторых, напряжение питания до 32 В. То что он не Rail-to-Rail будет иметь значение только в начале шкалы при напряжении близком к 0. А так как мы влажность будем иметь не менее 10-15 %, а температуру не менее 25 град. Ц. то низ шкалы значения не имеет.
Также по поводу частоты ШИМ. Я так понимаю, если бы я работал со звуком, то тогда частота ШИМ нужна высокой. А так как мне нужно постоянное напряжение, то частоту ШИМ можно понизить. Но непонятно, какая должна быть величина частоты ШИМ.
Вот нашел схему.
Изображение
Первый ОУ - это повторитель напряжения, для согласования нагрузок. второй ОУ это фильтр второго порядка Саллена-Ки. Ну и соответсвенно RC-фильтр низкой частоты первого порядка сразу на входе. Правда еще не определился с номиналами.
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Микроконтроллер и аналоговый выход.

Сообщение Z_h_e »

Хоть вопрос бы не ко мне, но отвечу тоже.
По-моему где-то два года назад, по просьбе одного товарища, делал своеобразный калибратор.

Сам не собирал, предложил схему и написал прошивку. Вот схема
СпойлерИзображение

Контроллер измерял фактическое напряжение и поправлял его, при необходимости. Какой был применен ОУ уже не помню. Номиналы кондеров 10 мкф и 100нф, может были потом изменены при отладки.

Все работало отлично. ШИМ задавался 16битным таймером. Частоту не помню. Могу потом поглядеть период ШИМ.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Микроконтроллер и аналоговый выход.

Сообщение Starichok51 »

melandr писал(а):То что он не Rail-to-Rail будет иметь значение только в начале шкалы при напряжении близком к 0.
вот, в начале шкалы он, как раз, самый натуральный Rail, так как допускает на входе даже минус 0,3 Вольта.

повторитель перед фильтром совершенно не нужен. выход порта (включено/выключено) всяко имеет меньше выходное сопротивление, чем выход ОУ.
а усиление фильтра нужно сделать более двух, так как максимальный сигнал ШИМ будет меньше 5 Вольт.

при частоте процессора 16 МГц можно получить достаточно высокую частоту ШИМ, если тайммер/счетчик использовать без предделителя. и при более высокой частоте и фильтрацию легче сделать более высокую, с мизерной пульсацией.

тебе же нужно организовать два канала ШИМ. на одном таймере разрядность ШИМ (дискретность) и для температуры и для влажности получится одинаковой.
но поскольку на выходах будет аналоговый сигнал, такой уж принципиальной разницы в разрядности ШИМ, я думаю, нет. лишь бы получилось не хуже, чем это требуется.
и если нужно минимум 1250 дискрет, то разрядность ШИМ можно сделать и 1250, и 5000, и 10000.
хотелось бы сначала узнать, с какой точностью (разрядностью) по температуре и по влажности передает датчик свою информацию.
ведь тебе придется еще пересчитывать принятую разрядность к разрядности ШИМ. и повысить точность (разрядность) принятого сигнала не получится.
если принятая от PLC точность равна 0,1 градуса или даже выше, то можно передаваемую точность ограничить по 0,1 градуса.

я не знаком с приборами PLC. и я не знаю, каким образом этот PLC 0-10 Вольт должен преобразовать в 0-125 градусов с дискретностью по 0,1 градуса.
или PLC еще придется "научить" такому преобразованию?

то есть, я хочу сказать, что нельзя озадачиваться только вопросом выбора разрядности ШИМ, а решать нужно комплексно, учитывая возможности всех используемых приборов.
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Re: Микроконтроллер и аналоговый выход.

Сообщение melandr »

Спасибо за помощь. По поводу разрядности и точности. Датчик SHT10 имеет точность по влажности - 4,5% по температуре - 0,5 град.Ц. Сам ПЛК может измерять напряжение. Пообщался с производителем ПЛК. Говорят что разрешающая способность по напряжению 0,01В. А это получается 10 бит в шкале 10В. поэтому ШИМ тоже имеет смысл делать не более 10 бит. Владимир, А не подскажете. Вы говорите, что напряжение на выходе ШИМ будет менее 5 В. То есть мне нужно будет подбирать коэффициент усиления ОУ уже по факту, на готовом приборе чтобы получить на максимуме шкалы 10 В.
Аватара пользователя
Starichok51
Модератор
Сообщения: 19039
Зарегистрирован: Сб авг 14, 2010 15:05:51
Откуда: г. Озерск, Челябинская обл.

Re: Микроконтроллер и аналоговый выход.

Сообщение Starichok51 »

напряжение "1" на выходе порта всегда меньше питания (5 Вольт).
усиление можно сделать и фиксированным, например, 2,5. тогда в своем приборе ты сделаешь калибровочный коэффициент, чтобы привести максимальный выход ШИМ к 10,00 Вольт.
а можешь подстроечный резистор поставить для подстройки усиления. тогда не надо будет возиться с цифровой калибровкой внутри прошивки.
я в своих проектах (смотри в разделе "Питание") делаю цифровую калибровку каналов ШИМ и цифровую калибровку каналов АЦП, подстроечники не использую.
но с цифровой калибровкой теряется "точность", так как "число делений" ШИМ, соответствующее максимальному сигналу, получается меньше 1024. например, у меня калибровочный коэффициент (максимальное число ШИМ) получается около 950.
с подстроечником такой потери точности уже не будет, ШИМ всегда будет иметь одно и то же "число делений".
и я уже начал подумывать о переделке своих проектов на подстроечники...
Мудрость приходит вместе с импотенцией...
Когда на русском форуме переходят на Вы, в реальной жизни начинают бить морду.
melandr
Вымогатель припоя
Сообщения: 580
Зарегистрирован: Пт ноя 08, 2013 01:01:18

Re: Микроконтроллер и аналоговый выход.

Сообщение melandr »

Еще возник вопрос, а какой режим работы нужно будет выбрать для таймера/счетчика 1 для генерации Ш,ИМ. А то у меня мозг взрывается режимов несколько, а какой нужен мне непонятно...
Аватара пользователя
pyzhman
Друг Кота
Сообщения: 7016
Зарегистрирован: Вс июл 12, 2009 19:15:29
Откуда: Ижевск
Контактная информация:

Re: Микроконтроллер и аналоговый выход.

Сообщение pyzhman »

Запараметрируйте по очереди и посмотрите какой нужен.
Docendo discimus
Аватара пользователя
khunpoum9
Родился
Сообщения: 9
Зарегистрирован: Вт окт 31, 2017 03:51:23

Re: Микроконтроллер и аналоговый выход.

Сообщение khunpoum9 »

Посмотрите мою схему - буду рад замечаниям,
по симуляции в протеусе 8.6 sp2 вроде все работает и линейность хорошая, благодаря pc817 есть опто-развязка и выходной управляющий сигнал зависит только от скважности ШИМ сигнала, и не зависит от входящей амплитуды ШИМ (если провод с ШИМ например длинный и на нем происходит падение напряжения)
на скрине ниже скважность ШИМ 75% на выходе 7.5v
важно, что питание 5v(должно быть точным) думаю через стабилизатор взять из 12v

цель: управлять частотником(трех-фазный вентилятор) по каналу 0-10в через сей девайс и Ардуино на основе датчиков температуры
те цепочка будет такая: <датчики температуры цифр DS18B20 ->OneWire > -> <Ардуино -> ШИМ 5в амплитута> -> <это устройство> -> <вход управления частотником 0-10в> -> <вентилятор>

исходник https://www.dropbox.com/s/7nctvthk4bmci ... dsprj?dl=1

Изображение
Аватара пользователя
Z_h_e
Собутыльник Кота
Сообщения: 2708
Зарегистрирован: Сб май 14, 2011 21:16:04
Откуда: г. Чайковский

Re: Микроконтроллер и аналоговый выход.

Сообщение Z_h_e »

Странно, что в точке PWM-after-pc817 амплитуда сигнала близка к 5В, что-то здесь не так.
Изображение
Добро всегда побеждает зло. Поэтому кто победил - тот и добрый.
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: Микроконтроллер и аналоговый выход.

Сообщение akl »

Думаю, что фильтр R5C3||C4 под нагрузкой будет плохо выполнять свою задачу. Лучше перенести его на вход ОУ с теми же номиналами как R2C2. Задействовать U1:B повторителем напряжения, чтобы цепь ОС R4R3 не работала на линию.
Аватара пользователя
khunpoum9
Родился
Сообщения: 9
Зарегистрирован: Вт окт 31, 2017 03:51:23

Re: Микроконтроллер и аналоговый выход.

Сообщение khunpoum9 »

собрал в итоге так

тест в железе (ШИМ 490гц от Arduino, замеры на осциллографе Rigol ds1054)
Изображение Изображение Изображение Изображение Изображение Изображение

скетч используемый для тестирования:

Код: Выделить всё

int pwmPin = 2;      // PWM out connected to digital pin 2

void setup()
{
  pinMode(pwmPin, OUTPUT);   // sets the pin as output
}

void loop()
{
  // analogWrite values from 0 to 255
  analogWrite(pwmPin, 255*0.50); // 50% скважность ШИМ
}


исходник в протеус 8.6 sp2 https://www.dropbox.com/s/ldueja0y3cqv4 ... dsprj?dl=1

ЛУТ в pdf https://www.dropbox.com/s/lhsrc170ha741 ... t.pdf?dl=1
Ответить

Вернуться в «AVR»