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

Проще говоря если задать несколько секунд, пусть 5-7, то все хорошо, если задать 10 минут, то функция не выдерживает интервал и как будто переполняется и в итоге улетает далее, без отработки корректного времени...

В общем мне то был нужен  таймер на несколько часов, без особой точности, то есть +-3 минуты в час мне было не принципиально, так как все-таки этот микроконтроллер сам по себе без кварца и точностью похвастаться никак не может. 

Таймер на 4 часа на Attiny 13, 13a

 Итак, еще раз о проекте. Я решил сделать таймер со следующим алгоритмом работы. В качестве визуального индикатора  выступает 1 светодиод. Первый час он горит постоянно, потом через час начинает моргать 1 раз в 10 секунд. Потом через 2 часа - 2 раза. Через 3-3. Через 4-4. В итоге на 5 час начинается наиболее частое моргание вот и все, более мне не надо было! Опять же повторюсь на счет точности, мне ее особо не надо, поэтому это хорошо, выдумывать ничего не пришлось с подключением кварца. Что относительно delay, то как я сказал, с ним были проблемы. Пришлось брать условно гарантированное гарантированное время работы и использовать циклы с заданием переменной, дабы отсчитывать время по циклам, а не по задержке одним только delay.
 В общем здесь уже лучше обратиться к скетчу.

Скетч для таймера на 4 часа для Attiny13

В скетче все видно как и что работает. (частота при заливке 128 KHz минимум для Attiny 13) Для одного часа используется 360 циклов.

Сам скетч на таймер с циклами

...на этом можно было бы и закончить, сказав  о том, что скетч наверняка не совершенен, так как я еще учусь, но все же работоспособен! А также упомянуть о частоте 128 KHz. Заливался сам скетч через среду Arduino, с помощью самодельного программатора, сделанного известным способом.

Подключение Attiny 13 для таймера схема

 Здесь можно даже ничего не рисовать, то есть не приводить рисунка и схемы, ведь надо нам будет 3 ножки. 4 и 8 питание, и 6 ножка физическая или 1 программная, это у нас выход на светодиод, который желательно подключать через ограничивающий резистор порядка 300 Ом.

Таймер с 3 светодиодами на Attiny 85

 Еще одной вариацией таймера позже стало создание подобного на базе Attiny 85, но по несколько другому принципу. Алгоритм работы таймера состоял в следующем. К микроконтроллеру Attiny 85, а именно к ножкам 5,6,7 подключались светодиоды, можно разного цвета. При этом один из них горел час, потом второй опять, час, третий снова час, а на четвертый час третий светодиод начинал моргать. Несколько другой принцип, но предназначение то же, то есть такая конструкция работала как таймер.

Скетч для таймер с 3 светодиодами

В скетче пропишу комментарии, как работает программа. (частота при заливке 1 МHz, минимум для Attiny 85). Из-за этого пришлось изменить количество циклов по сравнению с предыдущим скетчем.  Для одного часа используется 1080 циклов.

Для новичков

...если до этого вы никак и никогда не занимались микроконтроллерами, то в первую очередь необходимо:

- создать программатор на базе Ардуино;
- научиться заливать простые скетчи (как и этот). Приведено в создании программатора;
- собрать таймер и залить этот самый скетч. 

Комментарии  

0 #2 Вова 11.05.2019 19:17
Для новичка да не понятно, поэтому начинаем со статьи по ссылке про программировани е, там необходимо освоить как заливать программы. А после этого в голове начнет потихоньку укладываться как и что. Если будут вопросы пишите!
0 #1 Вова 11.05.2019 18:40
Ничего не понятно как для новчика. В коде присутствуют функции которые нигде не описаны. О чем статья? Что вы сделали таймер? Поздравляю...