Электронные часы на микроконтроллере
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
вещаем на одну из ног счетчик напр. 1533ИЕ5 (оно же 74ALS93 в буржуйском варианте) и подаем счетные импульсы. на выходе ставится резистивная матрица R-2R, с которой снимаем ступенчато нарастающее напряжение и подаем его на один из входов компаратора.
на одном ИЕ5 получаестя 16 уровневый ЦАП, на 2х - 256 уровней.
на второй вход компаратора подается измеряемое напряжение.
итого: 2 входа компаратора, 2 вывода на счетчик (второй вывод для сброса счетчика/ов, но можно и без него)
на сдвиговом регистре (ввиду ограниченности свободных ног) вообще можно замутить АЦП полседовательного приближения, ну прям как встроенные АЦП.
все.
на одном ИЕ5 получаестя 16 уровневый ЦАП, на 2х - 256 уровней.
на второй вход компаратора подается измеряемое напряжение.
итого: 2 входа компаратора, 2 вывода на счетчик (второй вывод для сброса счетчика/ов, но можно и без него)
на сдвиговом регистре (ввиду ограниченности свободных ног) вообще можно замутить АЦП полседовательного приближения, ну прям как встроенные АЦП.
все.
- headshotbacs
- Вымогатель припоя
- Сообщения: 641
- Зарегистрирован: Пт ноя 28, 2008 20:34:39
- Откуда: Краматорск
Вон оно как, на сколько я понял, просто счетчиком переключается напряжение с резистивных делителей, которое сравнивается с входным напряжением, и при превышении делается вывод о величене напряжения!? портов МК не хватит, максимум можно использовать два порта которые под кнопками подстройки часов и минут!? Да и пайки будет много....
- GP1
- Поставщик валерьянки для Кота
- Сообщения: 2401
- Зарегистрирован: Пт май 23, 2008 19:32:22
- Откуда: Россия, Волгоград
- Контактная информация:
АЦП бывают разные: с последовательным выходом, параллельным.
вот например:
http://www.analog.com/en/analog-to-digi ... index.html
или вот:
http://focus.ti.com/analog/docs/datacon ... +home_p_dc
вот например:
http://www.analog.com/en/analog-to-digi ... index.html
или вот:
http://focus.ti.com/analog/docs/datacon ... +home_p_dc
- headshotbacs
- Вымогатель припоя
- Сообщения: 641
- Зарегистрирован: Пт ноя 28, 2008 20:34:39
- Откуда: Краматорск
ooogo писал(а):
А как это? Можно чуть по подробней?Или где можно про это прочитать?
Здравствуйте.
Можно воспользоваться этим документами для получения АЦП.
http://atmel.com/dyn/resources/prod_doc ... oc0953.pdf
http://atmel.com/dyn/resources/prod_doc ... avr401.zip
Делал по этой идее "честный" 10-разрядный АЦП. Правда, вместо транзистора использовал стабилизатор тока на КЖ101 и, таким образом, сократил управление АЦП до двух лап контроллера.
я так понимаю, принцип такой же как здесь http://www.gaw.ru/html.cgi/txt/app/micr ... AVR400.htm ?
А то я с англицким не очень дружу, трудно не зная сути перводить!
К тому же 6 бит вполне хватит если чуток переделать математику, ведь напряжение мерять надо будет от 9в до 15в, итого 6в
если мои расчеты верны 6/2^6=0.09375в, итого разрешение по напряжению составит 0,1в помоему вполне достаточно для контроля напряжения бортовой сети?!
А то я с англицким не очень дружу, трудно не зная сути перводить!
К тому же 6 бит вполне хватит если чуток переделать математику, ведь напряжение мерять надо будет от 9в до 15в, итого 6в
если мои расчеты верны 6/2^6=0.09375в, итого разрешение по напряжению составит 0,1в помоему вполне достаточно для контроля напряжения бортовой сети?!
Последний раз редактировалось ooogo Пт сен 04, 2009 23:42:23, всего редактировалось 3 раза.
- SergK
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Чт сен 03, 2009 12:39:36
- Откуда: Ильичевск
- Контактная информация:
Почитал тему кое что понял, еще больше додумал сам.
Переделал схему под имеющиеся у меня индикаторы (5 штук семисегментников с общим катодом, купил по случаю десяток за 5 грн.)
Программу на Си переделал чтобы была понятнее, в Протеусе все крутится, но в симуляции получается что время идет в 1,253 раза медленнее чем в реале... (считал с секундомером - на индикаторе 27 минут, на секундомере 33:50)
В чем проблема не могу разобраться...
Может быть такое расхождение из-за дополнительного индикатора,
но по идее время считается в прерываниях???
Переделал схему под имеющиеся у меня индикаторы (5 штук семисегментников с общим катодом, купил по случаю десяток за 5 грн.)
Программу на Си переделал чтобы была понятнее, в Протеусе все крутится, но в симуляции получается что время идет в 1,253 раза медленнее чем в реале... (считал с секундомером - на индикаторе 27 минут, на секундомере 33:50)
В чем проблема не могу разобраться...
Может быть такое расхождение из-за дополнительного индикатора,
но по идее время считается в прерываниях???
- Вложения
-
- clock-5.zip
- (21.28 КБ) 242 скачивания
У меня в протеусе как-то коряво запустился, с кодом не разбирался, сам особо не соображаю.
попробуй в протеусе выставить опцию работы мк от внешнего кварца! впринципе если внутреннюю подтяжку включил, то внешняя не нужна на кнопки часов и минут, но хуже не будет если поставишь.
Маленький совет, сам напаролся, старайся при отладки цифровых устройств ставить "цифровые" элементы, т.е. к ножке ресет не 10 к, а пуллап (PULLUP) резистор
ooogo писал(а):...напряжение мерять надо будет от 9в до 15в
Подавление нулевой отметки было актуально для стрелочных измерителей, у которых мал диапазон индикации. В цифровых приборах это ограничение, во многом, снято. Например:
-диапазон измерения К*4.096В
-разрядность АЦП 12 разрядов (4096 дискрет отсчета)
-тактовая частота работы контроллера 1МГц
-конденсатор имеет емкость 0.1мкФ
Для получения времени накопления напряжения равного 4.096В необходим постоянный ток 100мкА и, одновременный с началом заряда конденсатора, запуск счетчика. Через 4096мксек напряжение на конденсаторе достигнет значения 4.096В. В момент превышения напряжения на компараторе опорного напряжения, связанный выход аналогового компаратора с входом ICP счетчика, вызывает прерывание CAPT и в ICR заносится текущее значение счетчика.
ooogo писал(а):... А можно про КЖ101 по подробнее?
Постоянный ток заряда конденсатора как раз и обеспечивает КЖ101 (есть забугорный аналог, но маркировку не помню). Так делал когда "Земля была тепленькой, а зёбра была тигрою и дышала жабрами...", т.е. лет 10 назад. В то время один 10-р АЦП стоил пару контроллеров AT90S8515.
- SergK
- Открыл глаза
- Сообщения: 62
- Зарегистрирован: Чт сен 03, 2009 12:39:36
- Откуда: Ильичевск
- Контактная информация:
Я с протеусом тоже только начал работать, тонкостей не знаю. В схеме с индикацией разобрался, в начальной схеме в данной теме и программе на Си было очень запутано с ногами МК и Индикатора, наверное делалось для облегчения разводки, но для начинающего надо что-то попроще
Но думаю счас уже понятнее PORTD.2=1 - вывод на конкретную ногу высокого уровня... Циферки на PORTB привел в двоичном виде, сразу видно что куда... А для замены индикатора на общий анод достаточно инвертировать уровни на портах...
Вот с чем я совсем не разобрался, так это с логикой работы прерываний и как оно реализовано в данном случае, и откуда беруться исходные два вызова в секунду?
Но думаю счас уже понятнее PORTD.2=1 - вывод на конкретную ногу высокого уровня... Циферки на PORTB привел в двоичном виде, сразу видно что куда... А для замены индикатора на общий анод достаточно инвертировать уровни на портах...
Вот с чем я совсем не разобрался, так это с логикой работы прерываний и как оно реализовано в данном случае, и откуда беруться исходные два вызова в секунду?
