Печать

Счетчик на Attiny2313

Опубликовано . Опубликовано в Устройства на AVR

Рейтинг:   / 19
ПлохоОтлично 

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

Электронный счетчик, разрабатываемый на замену механическому, получается слишком сложным, если строить его на микросхемах малой и средней степени интеграции (например, серий К176, К561). особенно если необходим реверсивный счет. А чтобы сохранить результат при выключенном питании, необходимо предусмотреть резервную батарею питания.

Но можно построить счетчик всего на одной микросхеме — универсальном программируемом микроконтроллере, имеющем в своем составе разнообразные периферийные устройства и способном решать очень широкий круг задач. Многие микроконтроллеры имеют особую область памяти — EEPROM. Записанные в нее (в том числе во время исполнения программы) данные, например, текущий результат счета, сохраняются и после отключения питания.

В предлагаемом счетчике применен микроконтроллер Attiny2313 из семейства AVR фирмы Almel. В приборе реализован реверсивный счет, вывод результата с гашением незначащих нулей на четырехразрядный светодиодный индикатор, хранение результата в EEPROM при выключенном питании. Встроенный в микроконтроллер аналоговый компаратор использован для своевременного обнаружения уменьшения напряжения питания. Счетчик запоминает результат счета при отключении питания, восстанавливая его при включении, и аналогично механическому счетчику снабжен кнопкой обнуления показаний.

Счетчик на Attiny2313 - схема устройства

Схема счетчика представлена на рисунке. Шесть линий порта В (РВ2— РВ7) и пять линий порта D (PDO, PD1, PD4—PD6) использованы для организации динамической индикации результата счета на светодиодный индикатор HL1. Коллекторными нагрузками фототранзисторов VT1 и VT2 служат встроенные в микроконтроллер и включенные программно резисторы, соединяющие соответствующие выводы микроконтроллера с цепью его питания.

Увеличение результата счета N на единицу происходит в момент прерывания оптической связи между излучающим диодом VD1 и фототранзистором VT1, что создает нарастающий перепад уровня на входе INT0 микроконтроллера. При этом уровень на входе INT1 должен быть низким, т. е. фототранзистор VT2 должен быть освещен излучающим диодом VD2. В момент нарастающего перепада на входе INT1 при низком уровне на входе INT0 результат уменьшится на единицу. Другие комбинации уровней и их перепадов на входах INT0 и INT1 результат счета не изменяют.

По достижении максимального значения 9999 счет продолжается с нуля. Вычитание единицы из нулевого значения дает результат 9999. Если обратный счет не нужен, можно исключить из счетчика излучающий диод VD2 и фототранзистор VT2 и соединить вход INT1 микроконтроллера с общим проводом. Счет будет идти только на увеличение.

Как уже сказано, детектором снижения напряжения питания служит встроенный в микроконтроллер аналоговый компаратор. Он сравнивает нестабилизированное напряжение на выходе выпрямителя (диодного моста VD3) со стабилизированным на выходе интегрального стабилизатора DA1. Программа циклически проверяет состояние компаратора. После отключения счетчика от сети напряжение на конденсаторе фильтра выпрямителя С1 спадает, а стабилизированное еще некоторое время остается неизменным. Резисторы R2—R4 подобраны так. что состояние компаратора в этой ситуации изменяется на противоположное. Обнаружив это, программа успевает записать текущий результат счета в EEPROM микроконтроллера еще до прекращения его функционирования по причине выключения питания. При последующем включении программа прочитает число, записанное в ЕЕРРОМ, и выведет его на индикатор. Счет будет продолжен с этого значения.

Ввиду ограниченного числа выводов микроконтроллера для подключения кнопки SB1, обнуляющей счетчик, использован вывод 13, служащий инвертирующим аналоговым входом компаратора (AIM) и одновременно — "цифровым" входом РВ1. Делителем напряжения {резисторы R4, R5) здесь задан уровень, воспринимаемый микроконтроллером как высокий логический При нажатии на кнопку SB1 он станет низким. На состояние компаратора это не повлияет, так как напряжение на входе AIN0 по-прежнему больше, чем на AIN1.

При нажатой кнопке SB1 программа выводит во всех разрядах индикатора знак "минус", а после ее отпускания начинает счет с нуля. Если при нажатой кнопке выключить питание счетчика, текущий результат не будет записан в EEPROM, а хранящееся там значение останется прежним.

Программа построена таким образом, что ее легко адаптировать к счетчику с другими индикаторами (например, с общими катодами), с другой разводкой печатной платы и т. п. Небольшая коррекция программы потребуется и при использовании кварцевого резонатора на частоту, отличающуюся более чем на 1 МГц от указанной.

При напряжении источника 15 В измеряют напряжение на контактах 12 и 13 панели микроконтроллера относительно общего провода (конт.10). Первое должно находиться в интервале 4...4.5 В, а второе — быть больше 3,5 В, но меньше первого. Далее постепенно уменьшают напряжение источника. Когда оно упадет до 9... 10 В, разность значений напряжения на контактах 12 и 13 должна стать нулевой, а затем поменять знак.

fuse-биты микроконтроллера

Теперь можно установить в панель запрограммированный микроконтроллер, подключить трансформатор и подать на него сетевое напряжение. Спустя 1,5...2 с нужно нажать на кнопку SB1. На индикатор счетчика будет выведена цифра 0. Если на индикатор ничего не выведено, еще раз проверьте значения напряжения на входах AIN0.AIN1 микроконтроллера. Первое должно быть больше второго.

Счетчик на Attiny2313 - фото

 

Счетчик на Attiny2313 - фото

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

Источник: Журнал Радио №7, 2006 г.

Файлы:
Дата 18.05.2010 Размер файла 746 B Закачек 4022

Комментарии  

0 #21 kvadra 13.02.2013 02:12
Доброго Вам здравия. Подскажите пожайлуста возможно ли сделать прошивку для пяти сегментов индикаторов чтобы младший разряд менялся (прибавлялось и отнималось) по 0,05(т.е. 0,05-0,10-0,15- 0,20 и т.д.) и горела третья запятая с права. После запятой счёт как обычно по 1 .Индикатор с общ. анодом. В написании программ не селён потому и прошу Вас. Мне необходим реверсивный счётчик с такими функциями и с пятью разрядами. Спасибо !!! Буду Вам признателен!
Сообщить модератору
0 #22 Raduga 18.09.2013 23:27
Цитирую yurik132:
АВТОРУ респект и уважуха, очень нужный проект, но как переделать прошивку под общий катод?

Найти строчки, отвечающие за вывод на линии, подключенные к индикатору.
Дописать в них строчки, инвертирующие все линии :)
Сообщить модератору
0 #23 Игораша 05.06.2014 21:02
там нет больше свободных портов для пятого разряда
Сообщить модератору
0 #24 hruma 02.02.2015 19:40
Можно ли кому-то заказать сделать похожее, 8шт?
Сообщить модератору
0 #25 AntonChip 02.02.2015 21:48
Цитирую hruma:
Можно ли кому-то заказать сделать похожее, 8шт?

Цена вопроса
Сообщить модератору
0 #26 hruma 03.02.2015 01:17
Цитирую AntonChip:
Цитирую hruma:
Можно ли кому-то заказать сделать похожее, 8шт?

Цена вопроса

Так вот и хотел узнать. Сам последний раз собирал давно, а сейчас вот срочно понадобилось и не знаю что выбрать: сидеть вспоминать/изуч ать дальше или готовое испросить. Я с памятью не работал, а хранить данные при выключении надо. Может, есть смысл уйти в личку (не вижу как или оставить ящик?) да там все подробности и обсудить, не засоряя тему?
Сообщить модератору
0 #27 Feel 11.02.2015 14:56
Можно ли кому-то заказать счетчик 1шт. и почём?
Сообщить модератору
0 #28 AntonChip 12.02.2015 11:38
Цитирую Feel:
Можно ли кому-то заказать счетчик 1шт. и почём?

за 1500 руб. сделаю, только плату без корпуса или подгоню плату под заводской корпус
Сообщить модератору
0 #29 Михаил_H 12.04.2015 10:11
Насколько сложно поменять прошивку чтобы счет был по 50(не +1 а +50)?
Сообщить модератору
+2 #30 Aposus 03.08.2015 03:21
Все вроде чотко разжёвано, как для моей первой прошивки, только не пойму, фьюз биты с инверсией в программе Avrdude prog выставлять? То есть, 4 этих галочки? :cry:
Сообщить модератору
0 #31 Azerhud 27.03.2016 06:23
А можно код на Си?
Сообщить модератору
0 #32 Клевер 15.09.2016 15:57
перепроверьте схему реакции на сброс питания. не логичней ли вход стабилизатора подводить к компаратору через делитель напряжения, а выход стабилизатора подводить к компаратору через стабилитрон? иначе схема не реагирует на падение напряжения на входе, пока стабилитрон не начнёт проседать
Сообщить модератору

Рекомендуем посмотреть