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


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

Мигающий светодиод на микроконтроллере 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 (необязательно).

Работа схемы

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

Схема подключения мигающего светодиода к микроконтроллеру AVR ATmega32

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

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

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

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

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

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

(6 голосов, оценка: 4,67 из 5)
Загрузка...
4 828 просмотров

Комментарии

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

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

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

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

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

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

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

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