Цифровой многоканальный термометр на ATmega8

Очень часто мы сталкиваемся с необходимостью измерения температуры и у каждого на то свои причины. Один мой хороший знакомый попросил ему в лабораторию сделать 3- канальный измеритель температуры который подключается к ПК и умеет вести лог. событий (проще говоря — журнал изменений температуры). При этом измерение температуры должно быть в диапазоне: 0 — 370 градусов. Так как задача поставлена, переходим к ее осуществлению.

Граница измеряемой температуры может доходить до 400 градусов, использование датчиков ds18b20 и подобных с диапазоном -55 / +125 — невозможно. В связи с этим было принято решение в качестве датчиков температуры использовать — термопару. Термопары — известны возможностью измерять высокие температуры, а также высокой линейностью и стабильностью показаний. Есть много разновидностей термопар, в этом проекте применены хромель-алюмелевые термопары (тип К).

Для наглядности сделал график в Excel:

Зависимость_термопара

 

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

Для получения данных с датчика его нужно подключить к микроконтроллеру, но и тут возникает проблема. Так как выходное напряжение очень маленькое, порядка нескольких десятков мВ, при прямой оцифровке с помощью АЦП про какой-либо результат можно забыть, так как измеряемое напряжение просто смешается с шумами. Для того чтоб работать с этим сигналом, его необходимо усилить, как это сделать написал в статье про операционный усилитель.

Теперь собственно немного слов о самом устройстве:

Характеристики:

Подключение к ПК: COM-порт / USB
К-во подключаемых термопар: 3 шт.
Диапазон измерянмых температур: 0 — 400 градусов
Диапазон питающих напряжений: 7 — 20 Вольт (5 Вольт)
Ток потребления: 15 — 50 мА
Габариты платы: 65*65 мм

untitled-7

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

Схема устройства:

термопара_3канала_мега8

Читать далее »

Операционный усилитель

Работа с различными датчиками подразумевает под собой получение выходного сигнала, его дальнейшую обработку, оцифровку, вывод на LCD или ПК в зависимости от поставленной задачи. Не всегда есть возможность получение данных по готовому интерфейсу/протоколу приема/передачи данных ( SPI, I2C,USART ). В придачу к этому выходной сигнал может быть слабым (порядка десятка мВ). Так как напряжение довольно маленькое его нужно как-то усилить и потом его уже можно использовать для оцифровки с помощью АЦП. В качестве усилителя сигнала можно применить операционный усилитель.

Операционный усилитель — это усилитель постоянного тока с дифференциальным входом и большим коэффициентом усиления сигнала. Как правило имеет только один выход и два входа, один из них прямой, а другой инверсный. Входы ОУ высокоомные в идеале входное сопротивление равно бесконечности, на самом деле оно равно порядка сотен мОм. В следствии чего можно сказать что влияние ОУ на входное напряжение минимально.

Схема операционного усилителя:

sheme_lm358

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

Схема неинвертирующего включения операционного усилителя:

sheme_lm358_amp

Здесь нет ничего нового — это классика. Но несмотря на это, дает нам возможность работать с малыми сигналами, при этом мы еще можем самостоятельно задавать необходимый коэффициент усиления. Подбирая значения резисторов обратной связи R2 и R3 устанавливаем необходимый коэффициент усиления. Отношение входного и выходного напряжений описывает формула: Vout/Vin = 1 + (R2/R1). Переменный резистор R4 служит для точной подстройки необходимого коэффициента усиления. При соблюдении номиналов на данной схеме, коэффициент усиления равен 50.

Читать далее »

Отладочный модуль для ATmega х8

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

maketnaya_plata2

Из личного опыта могу сказать, что из-за частой смены микросхем фиксирующие выводы расшатываются и контакт уже не тот. Ну а при отладке отсутствие контакта, это лишний повод подумать что есть баг в программе или еще что-то не учтено. В итоге для ускорения и упрощения работы удобно собирать и тестировать устройство на уже готовой платформе c подключенным к ней микроконтроллером. Так резко снижается риск неправильного подключения МК, исчезает наличие плохого контакта и закороченных портов ввода-вывода. В результате получится небольшой модуль, который можно использовать где угодно и с чем угодно. Достаточно подключить необходимые порты к датчикам или другим модулям и написать программку управления.

Модуль для ATmega х8:

 IMG_7297

Для удобства все выводы микроконтроллера и их назначения уже подписаны на плате. Это упростит работу с незнакомым микроконтроллером. Все выводы подведены к рядам пинов, которые потом можно подсоединять к небольшим модулям и сборкам. Для программирования МК достаточно подключить питание и программатор к линиям программирования. Дальше прошиваем МК и можем приступать к процессу отладки. Использовать данный модуль можно с микроконтроллерами:  ATmega8, ATmega48, ATmega88, ATmega168, ATmega328.

 IMG_7300

Читать далее »

Модуль часов реального времени PCF8583 / PCF8593

       Зачастую в своих проектах приходится работать с отсчетом времени и даты. В системе где нужно вести лог событий или точный отсчет времени, пропадание напряжения питания равносильно выходу ее из строя. Так как в результате в показаниях данных будет каша, и ничего толкового с этого не выйдет. Во избежания этой беды используют, так называемые, часы реального времени (Real Time Clock). Они позволяют вести отсчет даже при пропадании напряжения питания, а при возобновлении мы получим необходимые нам данные без потерь.  Делать аппаратно на микроконтроллере это можно за счет наличия асинхронного таймера, но это уже другой разговор. Производители позаботились и выпустили целую линейку RTC — микросхем   DS1307 / PCF8583 / PCF8563 / PCF8593 и тд.  В основном они имеют схожие параметры, характеристики и даже корпуса.

Real Time Clock PCF8583

pcf8583

Небольшой 8- выводной корпус, на выбор DIP/ SO8/ HVQFN20. На борту имеет часы, календарь, таймер, будильник да в придачу еще 240 байт памяти под наши нужды. Общение с микроконтроллером происходит по I2C интерфейсу. Для подключения, из обвязки практически ничего не требует. Понадобится часовой кварц на 32.768 kHz, пару диодов, резисторов и батарейка.

Схема включения  PCF8583:

pcf8583_sh

Читать далее »

Модуль датчика температуры на LM75

Для контроля за температурой часто прибегают к аналоговым термометрам, они не дороги и весьма доступны. Но что делать если диапазон измерений будет не стандартный, а например от -50  до + 150 градусов. При этом еще должна соблюдаться точность до десятой градуса. Или к примеру нужно сделать термостат с выводом поточной температуры и состояния на LCD дисплей.  Бесспорно в этом случае лучше применить цифровой датчик температуры, с соответствующим диапазоном и точностью. В качестве датчика используем недорогую (по сравнению с остальными) и доступную на рынке — микросхему LM75AD.

Цифровой датчик температуры LM75

lm75

Датчик выполнен в 8 — выводном SOIC / VSSOP — корпусе. На борту имеет термометр и систему контроля температуры. Общение с микроконтроллером происходит через I2C интерфейс. При подключении, из обвязки потребуется: несколько резисторов и конденсатор.

Схема включения LM75

lm75_sh

Читать далее »