Рубрики
Схемы на AVR

Мигающий светодиод на микроконтроллере AVR ATmega32

Мигающий светодиод – это, пожалуй, самая простая схема, которую можно реализовать на микроконтроллере семейства AVR. Предназначена она для начинающих радиолюбителей – чтобы они на примере этой простейшей схемы смогли сделать свой первый шаг в направлении знакомства с микроконтроллерами AVR. В данной схеме мы подсоединим светодиод к микроконтроллеру AVR ATmega32 и заставим его мигать с интервалом в полсекунды.

Необходимые компоненты

Аппаратное обеспечение

  1. Микроконтроллер ATmega32 (купить на AliExpress).
  2. Программатор AVR-ISP (купить на AliExpress), USBASP (купить на AliExpress) или другой подобный.
  3. Светодиод (купить на AliExpress).
  4. Резистор 220 Ом (купить на AliExpress).
  5. Источник питания с напряжением 5 Вольт.

Программное обеспечение

  1. Atmel Studio версии 6.1 (или выше).
  2. Progisp или flash magic (необязательно).

Работа схемы

Схема устройства приведена на следующем рисунке. Как видите, она простейшая.

Светодиод D1 подсоединен через резистор R1 к выводу 19 микроконтроллера. Резистор необходим для ограничения тока, протекающего через светодиод. Помните, что микроконтроллер не может обеспечивать на своих выводах ток более 30 мА.

Для этой схемы нет необходимости в использовании внешнего кварцевого резонатора. Микроконтроллер ATmega32 по умолчанию работает от своего внутреннего RC-генератор с частотой 1 МГц – для рассматриваемой нами задачи этого вполне достаточно. Внешний кварцевый резонатор целесообразно подключать к микроконтроллеру только когда требуется повышенная точность таймера или возникают другие задачи, требующие точного измерения временного промежутка. По умолчанию при покупке микроконтроллер настроен так, чтобы работать от внутреннего RC-генератора.

Исходный код программы на языке C (Си) с пояснениями

Программа для рассматриваемой схемы представлена следующим фрагментом кода на языке C (Си). Комментарии к коду программу поясняют принцип работы отдельных команд.

Теперь код программы без комментариев.

Видео, демонстрирующее работу схемы

9 ответов к “Мигающий светодиод на микроконтроллере AVR ATmega32”

Привет! Почему светодиод может моргать быстрее примерно в 4 раза, Atmega8a-PU, прошит на 8МГц внутренний генератор.

Всё, разобрался! вписал лишнюю строку
#define F_CPU 100000UL //<—| это определение оказывается важнее!
#define LED PORTD // |
#define F_CPU 8000000 //—|

Юрий, да опечатка просто, программисты ведь люди рассеянные ))

Ничего не мигает. Просто загорелись все диоды кроме первого и последнего

Вы наверное к какой то другой статье хотели свой комментарий написать? На схеме в этой статье всего один светодиод

Особого смысла в этом нет, можно один раз вместо этого написать _delay_ms(440);, просто я решил не изменять программу-оригинал с того сайта, откуда я ее взял. Статья просто переводная, с англоязычного сайта. Конечно, такую статью я мог бы и сам написать, но картинки и видео свои к такой статье быстро не сделаешь, поэтому и беру их с англоязычного сайта. Но я думаю авторы того сайта не в обиде — я же популярность их видеороликов повышаю. Все равно сами они никогда не будут писать статьи на русском, им это не выгодно

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *