ATMEGA16 датчик температуры цифровой или с АЦП
ATMEGA16 датчик температуры цифровой или с АЦП
Добрый день.
Я начал программировать МК ATMEGA16 и сталкнулся с некоторыми проблемами, а именно:
Не как не врублюсь как пользоватьься АЦП хотел использую низкоомный резисторсоорудить датчик температуры (30 ОМ), но вот загвоздка.. с ацп, читал всю инфу и дадачит и в инете. так и непонял,
используются какието регистры и на вход AREF нужно подавать напряж: от2.5 до Uпит
НО как этим пользоваться и выбирать характеристики для отображения текущей температуры так и не разобрался, пожалуйста подскажите!
Этот был первый, а второй - это взять датчик температуры с цифровым выходом, но они денег стоят... да и как цифровой сигнал по одной линии обрабатывать я тоже незнаю..
Поэтому прошу помощи в большой степени по первому вырианту с реализацией на низкообном ризисторе либо с использованием медной проволки.
В заранее благодарен с Ув. Алексей
Я начал программировать МК ATMEGA16 и сталкнулся с некоторыми проблемами, а именно:
Не как не врублюсь как пользоватьься АЦП хотел использую низкоомный резисторсоорудить датчик температуры (30 ОМ), но вот загвоздка.. с ацп, читал всю инфу и дадачит и в инете. так и непонял,
используются какието регистры и на вход AREF нужно подавать напряж: от2.5 до Uпит
НО как этим пользоваться и выбирать характеристики для отображения текущей температуры так и не разобрался, пожалуйста подскажите!
Этот был первый, а второй - это взять датчик температуры с цифровым выходом, но они денег стоят... да и как цифровой сигнал по одной линии обрабатывать я тоже незнаю..
Поэтому прошу помощи в большой степени по первому вырианту с реализацией на низкообном ризисторе либо с использованием медной проволки.
В заранее благодарен с Ув. Алексей
Последний раз редактировалось AJIEKCEu Сб дек 09, 2006 18:00:34, всего редактировалось 1 раз.
МяУУууУуУу
- Реклама
Sailanser Я просматривал вссе страницы этой веточки, не видел прости, дай пожалуйста ссылочку прочту...
Ну это по втотрому варианту, а я хотел бы всетаки освоить первый вариант и попробывать АЦП, т.к. мы делали по нему курсовую, целую систему проектировали с ИОН, компаратором и прочей.. не в МК, а на микросхемах и аналоговых компонентах!
Хотя бы маленький опыт получить... преобразования напряжения в цифровой код на МК
Ну это по втотрому варианту, а я хотел бы всетаки освоить первый вариант и попробывать АЦП, т.к. мы делали по нему курсовую, целую систему проектировали с ИОН, компаратором и прочей.. не в МК, а на микросхемах и аналоговых компонентах!
Хотя бы маленький опыт получить... преобразования напряжения в цифровой код на МК
МяУУууУуУу
- Мышонок
- Друг Кота
- Сообщения: 3792
- Зарегистрирован: Чт сен 14, 2006 11:42:09
- Откуда: Обитаю на чердаке
- Контактная информация:
Вначале был аналог. Потом код (цифра). В DS1820 просто уже встроен АЦП, а температуру в нём измеряет грубо говоря транзистор. Т.е. чисто цифровых датчиков температуры не существует. Температура сначала преобразуется в электрический вид (напряжение, сопротивление), а затем уже в цифровой. 
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
И насколько предыдущий пост относится к теме ветки? А еще модератор...
Aheir, это я на это:
Что положено Юпитеру..., в общем знаешь
Просто разные варианты возникают, не обязательно зацикливаться на каком-то... мышонок
По теме.
Если хочется использовать АЦП и терморезистор, то сразу возникает вопрос: будет ли линеаризоваться сигнал или в контроллер будет зашита температурная кривая в виде таблицы или уравнения?
С точки зрения программирования разница не сильно большая, а вот аппаратная часть будет отличаться.
В первом случае понадобится операционник, во втором - достаточно будет делителя.
Я бы все таки остановился на первом, да и опыт построения таких систем у Вас имеется, судя по постам.
Далее по процессору.
На чем пишете?
Вы правы, опорное напряжение подается на Aref, причем мега имеет встроееный опорник на 2.56В. Параметры не ахти, но пользоваться можно.
Далее - просто грамотная инициализация по даташиту.
Более подробно не пишу, т.к. на С с этим проблем нет, а если Вы на асме пишите, то это для меня сложнее.
Вопросы с цифровыми датчика весьма проработаны и в И-нете масса библиотек для работы с ними.
В качестве промежуточного варианта могу предложить аналоговые датчики температуры с выходным напряджением, пропорциональным температуре. Например, TMP35/TMP36/TMP37 - калиброванный выход до 500мВ/град, цена порядка 20р.
Сам пользовался именно в связке с АЦП в Меге16, без проблем.
Точность правда не высокая, но у всех свои задачи
Aheir, это я на это:
Aheir! Соблюдай субординацию!Sailanser писал(а): ...для семисегметного индикатора на одном порту + подключение датчика DS18s20 это цифровой термометрер.
По теме.
Если хочется использовать АЦП и терморезистор, то сразу возникает вопрос: будет ли линеаризоваться сигнал или в контроллер будет зашита температурная кривая в виде таблицы или уравнения?
С точки зрения программирования разница не сильно большая, а вот аппаратная часть будет отличаться.
В первом случае понадобится операционник, во втором - достаточно будет делителя.
Я бы все таки остановился на первом, да и опыт построения таких систем у Вас имеется, судя по постам.
Далее по процессору.
На чем пишете?
Вы правы, опорное напряжение подается на Aref, причем мега имеет встроееный опорник на 2.56В. Параметры не ахти, но пользоваться можно.
Далее - просто грамотная инициализация по даташиту.
Более подробно не пишу, т.к. на С с этим проблем нет, а если Вы на асме пишите, то это для меня сложнее.
Вопросы с цифровыми датчика весьма проработаны и в И-нете масса библиотек для работы с ними.
В качестве промежуточного варианта могу предложить аналоговые датчики температуры с выходным напряджением, пропорциональным температуре. Например, TMP35/TMP36/TMP37 - калиброванный выход до 500мВ/град, цена порядка 20р.
Сам пользовался именно в связке с АЦП в Меге16, без проблем.
Точность правда не высокая, но у всех свои задачи
- Реклама
- Sailanser
- Друг Кота
- Сообщения: 3126
- Зарегистрирован: Ср фев 01, 2006 22:29:02
- Откуда: г.Ростов-на-Дону
AJIEKCEu
Вот ссылка на эту ветку http://radiokot.ru/forum/viewtopic.php?t=172
Вот ссылка на эту ветку http://radiokot.ru/forum/viewtopic.php?t=172
- Мышонок
- Друг Кота
- Сообщения: 3792
- Зарегистрирован: Чт сен 14, 2006 11:42:09
- Откуда: Обитаю на чердаке
- Контактная информация:
Aheir писал(а):И насколько предыдущий пост относится к теме ветки? А еще модератор...
Aheir! Соблюдай субординацию!Что положено Юпитеру..., в общем знаешь
![]()
По теме.
Если хочется использовать АЦП и терморезистор, то сразу возникает вопрос: будет ли линеаризоваться сигнал или в контроллер будет зашита температурная кривая в виде таблицы или уравнения?
С точки зрения программирования разница не сильно большая, а вот аппаратная часть будет отличаться.
Если используются стандартные датчики температуры (термометры-сопротивления или термопары), то таблицы и уравнения линеаризации для них можно найти в ГОСТах. Аппаратно делать линеаризацию муторно, проще программно. Это к сведению.
Память очень интересная штука: бывает так, что запомнишь одно, а вспомнишь другое...
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
2 мышонок:
Вы счастливый... мышонок
, если за время своей практики сталкивались исключительно с ГОСТированными терморезисторами и термопарами. А термопары от китайских тестеров по какому ГОСТу сделаны?
. Да и приведенной в справочных данных температурной кривой доверять стоит в последнюю очередь, самому надо снимать, а уж потом в контроллер шить.
Линеаризация в диапазоне - один операционник. Ну 2, если эстетствовать. Это все тоже так, к сведению...

И не стоит насчет субординации...
Ах, если бы, ах если бы - не жизнь была б, а песня бы...
Всякое приходилось... Конечно стараемся с фирменными и станд. работать, потому что мы всё таки измериловку изобретаем. А снабженцы постоянно хотят "косых" подсунуть. И нормоконтроль нулевой, НТД часто по своим связям добываем...
мышонок
По существу:
Еще раз прошу уточнить: Вы пишите на Асме или на С? Если на С, могу дать кусок кода, если на Асме, то не ко мне.
Какой диапазон температур и точность необходимы? Какова вообще цель проекта?
Обычно проблемы возникают, если НЕ читать даташит, он как раз их-то и решает...
А вот это абсолютно правильно! Надо цель иметь, а исходя из этого и выбирать средства!
мышонок
Вы счастливый... мышонок
Линеаризация в диапазоне - один операционник. Ну 2, если эстетствовать. Это все тоже так, к сведению...
И не стоит насчет субординации...
Ах, если бы, ах если бы - не жизнь была б, а песня бы...
По существу:
Еще раз прошу уточнить: Вы пишите на Асме или на С? Если на С, могу дать кусок кода, если на Асме, то не ко мне.
Какой диапазон температур и точность необходимы? Какова вообще цель проекта?
Обычно проблемы возникают, если НЕ читать даташит, он как раз их-то и решает...
А вот это абсолютно правильно! Надо цель иметь, а исходя из этого и выбирать средства!
- moLCHec
- Мявтор!
- Сообщения: 825
- Зарегистрирован: Вс дек 18, 2005 20:04:42
- Откуда: Свердловская обл.
- Контактная информация:
В данном случае аппаратно те наврядли точно линеаризовать. можешь применить полевик с n-каналом но в любом случае апроксимацию делать надо буит. кстати можно попробовать уравнение преобразовать в изображение(пр-я Лапласа) и затем реализовать на ПИ или ПИД звеньях. В какой-то степени мона компенсировать нелинейность зацепив паралельно датчику резюк.
- Вложения
-
- kty83.pdf
- кстати у этих терморезисторов зависимость почти линейная и стоят они копейки
- (66.06 КБ) 1031 скачивание
Настоящий кот всегда либо голоден,
либо невыспался ...
либо невыспался ...
Aheir Вообщетот на асме пишу, но на Си тооже можно, хотя не желательно...
На вопрос про цель проекта:
Ознокомление и получение навыков с работой АЦП в АТмега 16
... Из всех разговоров я так и не выудил для себя важной информации...
Таблицы и формулы это уже второе дело, первое дело подключить датчик, и снять некоторую характеристику.. (тообишь некоторе напряжение)
Вот я подаю опрное напряжение на вход Aref , а на какой вход подключать сам датчик? и какая последовательность действий в обработке результата...?
На вопрос про цель проекта:
Ознокомление и получение навыков с работой АЦП в АТмега 16
... Из всех разговоров я так и не выудил для себя важной информации...
Таблицы и формулы это уже второе дело, первое дело подключить датчик, и снять некоторую характеристику.. (тообишь некоторе напряжение)
Вот я подаю опрное напряжение на вход Aref , а на какой вход подключать сам датчик? и какая последовательность действий в обработке результата...?
МяУУууУуУу
- Aheir
- Модератор
- Сообщения: 4517
- Зарегистрирован: Пн апр 03, 2006 11:43:25
- Откуда: Санкт - Петербург
- Контактная информация:
В шестнадцатой Меге под входы АЦП отдан порт А. Выход датчика подключаешь ко входу АЦП через резистор на несколько десятков кОм, на сам вход вешаешь конденсатор 0,1 на землю, на всякий случай. Если опорное напряжение уже подал - с аппаратной частью все.
Далее - программирование.
Если на С, то каким софтом пользуешься?
Далее - программирование.
Если на С, то каким софтом пользуешься?
-
Гость
Re: ATMEGA16 датчик температуры цифровой или с АЦП
Если мерить сопротивление, то опорник не нужен. Питание возмите с AVCC программной перемычкой, а с наружи питание датчика тоже с AVCC. AVCC можно взять с +5V питания через делитель, предварительно отфильтровать RC цепочкой.AJIEKCEu писал(а):Добрый день.
Я начал программировать МК ATMEGA16 и сталкнулся с некоторыми проблемами, а именно:
Не как не врублюсь как пользоватьься АЦП хотел использую низкоомный резисторсоорудить датчик температуры (30 ОМ), но вот загвоздка.. с ацп, читал всю инфу и дадачит и в инете. так и непонял,
используются какието регистры и на вход AREF нужно подавать напряж: от2.5 до Uпит
НО как этим пользоваться и выбирать характеристики для отображения текущей температуры так и не разобрался, пожалуйста подскажите!
Этот был первый, а второй - это взять датчик температуры с цифровым выходом, но они денег стоят... да и как цифровой сигнал по одной линии обрабатывать я тоже незнаю..
Поэтому прошу помощи в большой степени по первому вырианту с реализацией на низкообном ризисторе либо с использованием медной проволки.
В заранее благодарен с Ув. Алексей
- ARV
- Ум, честь и совесть. И скромность.
- Сообщения: 18647
- Зарегистрирован: Чт дек 28, 2006 08:19:56
- Откуда: Новочеркасск
- Контактная информация:
Попробую помочь так, как я это понимаю:
Чтобы работать с АЦП на Меге8 (с Мега16 не работал, там, возможно, есть мелкие отличия в регистрах) надо сделать примерно так:
1. ADMUX - устанавливаешь нужный вход АЦП (т.е. вывод порта, с которого сигнал подается на АЦП) и заодно источник опроного напряжения.
2. ADCSRA - запускаешь цикл измерения
3. ждешь, пока в ADCSRA встанет флаг ADIF - признак завершения измерения
4. сбрасываешь этот флаг, читаешь из ADCL-ADCH результат
5. обрабатываешь результат, как тебе надо
Я написал для варианта, когда прерывания от АЦП запрещены, можно то же самое и по прерыванию. Никаких других действий для первого опыта не потребуется. Назначение битов в регистрах ADCSRA, ADMUX и т.п. смотри в даташите. Рекомендую усреднять несколько измерений.
Подавать на вход можно для начала (т.е. обучения) сигнал с переменного резистора от 0 до VREF.
Чтобы работать с АЦП на Меге8 (с Мега16 не работал, там, возможно, есть мелкие отличия в регистрах) надо сделать примерно так:
1. ADMUX - устанавливаешь нужный вход АЦП (т.е. вывод порта, с которого сигнал подается на АЦП) и заодно источник опроного напряжения.
2. ADCSRA - запускаешь цикл измерения
3. ждешь, пока в ADCSRA встанет флаг ADIF - признак завершения измерения
4. сбрасываешь этот флаг, читаешь из ADCL-ADCH результат
5. обрабатываешь результат, как тебе надо
Я написал для варианта, когда прерывания от АЦП запрещены, можно то же самое и по прерыванию. Никаких других действий для первого опыта не потребуется. Назначение битов в регистрах ADCSRA, ADMUX и т.п. смотри в даташите. Рекомендую усреднять несколько измерений.
Подавать на вход можно для начала (т.е. обучения) сигнал с переменного резистора от 0 до VREF.
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!
при взгляде на многих сверху ничего не меняется...
Мой уютный бложик... заходите!


