АЦП на TINY13 и 16 светодиодов

Влияние АЦП на TINY13 в управлении светодиодами. Узнайте, как собрать схему для управления 16 светодиодами с помощью микроконтроллера.

В один прекрасный осенний вечер застало скукотище, да к тому же дома. Лежало передо мной на столе 16 светодиодов и маленькая ATtiny13, да к тому же без дела. Тут я вспомнил, как лет так 5 назад собирал в колледже стендик для демонстрации вольтамперных характеристик, в котором пришла идея использовать дешифратор 4х16 К555ИД3, хотя позже пришлось делать на КР1533ИД3

Схема управления светодиодами с помощью АЦП на TINY13

Выводы W0 и W1 называются разрешающими, если на обоих выводах присутствует лог. «0», то и на выводах 0-15 так же присутствует сигнал с таким уровнем, причем на каком конкретно зависит от уровней напряжения на входах 1-8. К примеру, если лог. «1» присутствует на входе 2 и 8, то лог. «0» будет присутствовать на выходе 10, 10102 =10, если на все входы 1-8 подать лог. «1», то лог. «0» появится на выходе 15, 11112=15. Отсюда несложно догадаться что это простой двоично/десятичный преобразователь, причем преобразователь двоичных 4-хразрядных чисел (входов — то всего 4).
Используя микроконтроллер можно довольно легко им управлять, поэтому я решил собрать АЦП на tiny 13 и с его помощью управлять 16-ю светодиодами при помощи данного дешифратора.

Программа для микроконтроллера, а так же ее отладка проводилась в среде Flowcode v.4.3.6.61. Сама программа достаточно проста и выглядит следующим образом:

Схема управления светодиодами с помощью АЦП на TINY13

Вначале мы считываем данные с АЦП0, первый вывод микроконтроллера, и полученные данные привязываем к переменной ADC0, далее эту переменную делим на 10 (можно и не делить, можно делить на большее число — от этого зависит конечная переменная. А от нее зависит поведение светодиодов) и результат привязываем к переменной PORT которая в конечном счете выдает сигналы на выходы микроконтроллера PB0-PB3. Переменные ADC0 и PORT имеют формат byte, поэтому максимальное их значение не может превышать 255. А потому что значение переменной PORT выдается лишь на 4 вывода, то максимальное значение может быть равно 15. В этом и вся суть. Подав на АЦП контроллера сигнал с линейного выхода, как в моем случае, получается достаточно необычная «игра» светодиодов, которая зависит от уровня напряжения на входе и скорости преобразования, а также времени задержки, в данном случае она равна 10 мс.

Во время отладки на рисунке видно, что значение переменной ADC0 равно 107, а переменной PORT 10, значение которой так же демонстрируют зажженные светодиоды, подключенные к выводам  PB1, PB3, т.к. число 10102=10. Если данную комбинацию подать на входы ранее рассмотренного дешифратора, причем PB0 соединить со входом 1, PB1 со входом 2, PB2 со входом 4, и PB 3 со входом 8, ноль появится на выходе с номером 10 (1 вывод микросхемы).

Параметры АЦП настроены, как показано, на рисунке ниже:

Схема управления светодиодами с помощью АЦП на TINY13

Среднее значение переменной ADC0 получаем в течение 100 циклов программы, скорость преобразования равна FOSC/128, в качестве опорного используется уровень напряжения на выводе VDD.

После отладки пора собрать схему:

Схема управления светодиодами с помощью АЦП на TINY13

Питание подается на разъем J1, сигнал от аудиоустройства на J2, причем обращаю внимание на то, что крайне не рекомендуется подавать сигнал на АЦП микроконтроллера если его уровень больше чем Vdd, которое так же имеет свои пределы, не более 5,5 вольт. Конденсатор С1 необходим для устранения постоянной составляющей входного сигнала, с помощью переменного резистора можно менять эффект работы светодиодов.

Если на АЦП микроконтроллера планируется подавать лишь постоянное напряжение, то цепочку R1-C1 можно исключить

Светодиоды можно использовать разных цветов свечения, резистор R2 ограничивает протекающий через них ток.

При проверке устройства необходимо на верхний вывод резистора R1 подать напряжение с вывода 8 микроконтроллера и меняя положение ползунка следить за работой светодиодов, должно получиться что-то вроде «бегущей строки» с реверсом, если ползунок вращать в разные стороны.

Микроконтроллер запрограммирован с помощью программатора ТРИТОН. Fuse биты выставлены на работу от внутреннего тактового генератора. Галочка обозначает, что fuse бит запрограммирован.

Схема управления светодиодами с помощью АЦП на TINY13

Для проверки устройство было собрано за 10 минут на макетной плате SYB-120.

Схема управления светодиодами с помощью АЦП на TINY13

Источники:

1. Гадре, Д. «Занимательные проекты на базе микроконтроллеров tinyAVR».
2. Евсеев, А. Н. «Радиолюбительские устройства для дома».

Ниже вы можете скачать исходник, прошивку и файл печатной платы в формате DipTrace

Скачать список элементов (PDF)

Прикрепленные файлы:

1 comment on “АЦП на TINY13 и 16 светодиодов

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

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