AVR Раздел по микроконтроллерам компании Atmel - AVR / ATtiny / ATmega / ATMega128 / ATxmega, вопросы по программированию в AVR studio и все, относящееся к AVR... |
10.10.2012, 15:00
|
|
Прописка
Регистрация: 25.11.2008
Сообщений: 113
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Компаратор+таймер1 ATtiny2313A
Суть:
Измеряю ёмкость (датчика уровня воды). Через резистор начинается зарядка конденсатора (датчика), одновременно запускается
TIMER1. Когда напряжение на датчике достигает опорного (задано делителем 1Ком+1Ком - половина питания 5в), компаратор
"захватывает" насчитанное счётчиком.
Вроде всё просто. Но. Сильнейшие, как их назвать... флуктуации
Значения здорово скачут. "Стабильности нет" До +-20ти единиц. И в железе и в Протеусе! Ужель Протеус так могуч?
Немного уменьшил скачки электролитами по питанию. Ещё задавил программным усреднением. Ну ладно есть температурный
дрейф - медленно (за полчаса) плавает с прогревом/остыванием всего девайса.
И всё равно скачки то +3, то -5.
Важно: индикатор светодиодный, индикация динамическая прямо с ног тиньки через резисторы.
Мож кто делал что-то подобное? И победил
|
|
|
|
10.10.2012, 17:24
|
|
Почётный гражданин KAZUS.RU
Регистрация: 13.10.2007
Адрес: Беларусь
Сообщений: 8,048
Сказал спасибо: 60
Сказали Спасибо 3,954 раз(а) в 2,309 сообщении(ях)
|
Re: Компаратор+таймер1 ATtiny2313A
Заряжай конденсатор через генератор тока, разряжай полевиком уровня 2н7002 и попробуй увеличить время разряда
Правильно разведи земли, тем более что у 2313 нет аналоговой земли
Скачки на сколько процентов от полной шкалы? ИМХО дрейф процентов 5 нормально
|
|
|
|
10.10.2012, 18:25
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.06.2006
Адрес: Украина, Запорожье
Сообщений: 7,981
Сказал спасибо: 0
Сказали Спасибо 4,939 раз(а) в 2,369 сообщении(ях)
|
Re: Компаратор+таймер1 ATtiny2313A
+ внешний компаратор с малым дрейфом
|
|
|
|
11.10.2012, 01:31
|
|
Прописка
Регистрация: 25.11.2008
Сообщений: 113
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Компаратор+таймер1 ATtiny2313A
Внешний компаратор, генератор (555), и т.д. это другая тема.
Весь смысл в примитивности девайса.
Вот проектик в протеусе.
Вложения:
|
LW.zip (21.5 Кб, 83 просмотров) |
|
|
|
|
11.10.2012, 08:05
|
|
Прописка
Регистрация: 14.06.2012
Сообщений: 263
Сказал спасибо: 2
Сказали Спасибо 129 раз(а) в 103 сообщении(ях)
|
Re: Компаратор+таймер1 ATtiny2313A
Нуу ты блин даешь. Во-первых, при симуляции в протеусе не нужно ставить аналоговые резисторы на порт LED-индикации. Один фиг, индикатор в протеусе не сгорит, но лишняя нагрузка на компутер обеспечена. Во-вторых, кварц тоже в симуляции не нужен, ибо контроллер тактируется самим протеусом и задается частота в свойствах. В-третьих - что это за батарея конденсаторов? Ну это уже мелочи...
В-четвертых, вероятно, ошибка измерений - так называемая методическая ошибка, то есть, ошибка самого метода. То есть, где-то в программе. Ибо у протеуса нет симуляции температурного дрейфа.
Заряжать конденсатор нужно от стабильного источника, однако. Порт контроллера не особо то стабильный источник.
Если понаблюдать за осциллограммой, то можно обнаружить некоторое "подергивание" всех графиков, в том числе и динамической индикации. Следовательно, в программе где-то есть неодинаковые циклы.
Подергивается график с порта RB7, то есть, длительность заряда конденсатора. Отсюда и плывут все показания. То есть, дрейф показаний, вероятно, заложен в самой программе.
Даже то, что скважность импульсов динамической индикации получается разной при переключении кондерсаторов, говорит уже об ошибках. Динамическая индикация должна работать с неизменной скважностью, иначе бутет меняться еще и яркость индикаторов.
Отключив все конденсаторы, прекращается даже индикация и потом не возобновляется при подключении конденсаторов.
Исходного кода программы автор не предоставил, поэтому разбираться с его писаниной поручаем ему самому. Там, видимо, много чего написано такого, что проще переписать заново, чем отыскивать ошибку.
|
|
|
|
11.10.2012, 20:31
|
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Компаратор+таймер1 ATtiny2313A
Пример измерения емкости конденсаторов. Специально сделано на ЖКИ, что бы показать значения захвата таймера1... Вполне корректно работает в Протеусе. Я не применял ни какой коррекции при расчете емкости - чисто линейный коэффициент. Просто примерчик. Если правильно сделать динамику сегментов и учесть "масштаб" таймера, то у ТС все должно работать. Про схемотехнические решения не говорю...
|
|
|
|
12.10.2012, 07:39
|
|
Прописка
Регистрация: 25.11.2008
Сообщений: 113
Сказал спасибо: 3
Сказали Спасибо 9 раз(а) в 9 сообщении(ях)
|
Re: Компаратор+таймер1 ATtiny2313A
О, mimuh64, а это Идея.
Заряжать не выходом порта, а внешним резистором.
Попробую.
Мои исходники в Algorithm Builder. Немногие его юзают, потому не выложил.
Вот они:
|
|
|
|
12.10.2012, 09:19
|
|
Прописка
Регистрация: 29.10.2008
Сообщений: 272
Сказал спасибо: 0
Сказали Спасибо 102 раз(а) в 95 сообщении(ях)
|
Re: Компаратор+таймер1 ATtiny2313A
Сообщение от DPANYTA
|
О, mimuh64, а это Идея.
Заряжать не выходом порта, а внешним резистором.
|
Ну, так niXto тебе и советовал использовать полевик (только не для заряда, а для разряда, но это те же..., только с боку). Я и не думал что ты делаешь что-то по другому - пока схему твою не увидел.
Схем и реализаций твоей задачи в Инете полно, например такая...
|
|
|
|
12.10.2012, 09:54
|
|
Гуру портала
Регистрация: 27.10.2008
Адрес: ЕС
Сообщений: 10,835
Сказал спасибо: 918
Сказали Спасибо 4,308 раз(а) в 2,573 сообщении(ях)
|
Re: Компаратор+таймер1 ATtiny2313A
Посмотрите AD7745 и AD7746. Как раз ваш случай.
|
|
|
|
12.10.2012, 10:02
|
|
Почётный гражданин KAZUS.RU
Регистрация: 19.08.2006
Адрес: Львов
Сообщений: 1,616
Сказал спасибо: 65
Сказали Спасибо 315 раз(а) в 264 сообщении(ях)
|
Re: Компаратор+таймер1 ATtiny2313A
Сообщение от DPANYTA
|
О, mimuh64, а это Идея.
Заряжать не выходом порта, а внешним резистором.
Попробую.
Мои исходники в Algorithm Builder. Немногие его юзают, потому не выложил.
Вот они:
|
Лет 5 назад я сделал по просьбе друга-радиолюбителя индикатор направления антенны на круге из 48 светодиодов. По его просьбе был использован МК AT90S2313. Способ измерения напряжения позаимствовал из аппноты атмела. Увы, сейчас из-за многкратной перестройки сайта и устаревания самого МК не могу найти. Но суть очень проста. Думаю, из приложенной схемы будет ясно. Но у меня не было высоких требований к измерениям. Входное напряжение было разбито на 48 зон, посему измерялось плюс-минусь лапоть. Но тем не менее, перескоков на границах зон не наблюдалось, хотя никаких алгоритмических извращений не применял.
Если не поленишься, то поищи эту аппноту.
Схему прилагаю.
PS Посмотри в сторону одной из разработок вездесущего Чана
http://elm-chan.org/works/cmc/report.html
__________________
С уважением,
Vic / ut1wpr
Последний раз редактировалось ut1wpr; 12.10.2012 в 10:13.
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 02:18.
|
|