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

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

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

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

Используя микроконтроллер можно довольно легко им управлять, поэтому я решил собрать АЦП на tiny 13 и с его помощью управлять 16-ю светодиодами при помощи данного дешифратора.

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

Вначале мы считываем данные с АЦП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 вывод микросхемы).

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

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

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

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

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

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

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

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

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

Видео работы:

Источники:

1. Гадре, Д. «Занимательные проекты на базе микроконтроллеров tinyAVR».

2. Евсеев, А. Н. «Радиолюбительские устройства для дома».

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

Автор: Подсадний Валерий. Краснодарский край, станица Новомышастовская

Если вы нашли ошибку, выделите ее и нажмите Shift + E или нажмите здесь чтобы сообщить нам.


Категория: Микроконтроллеры
Метки:

Написать коментарий

*
= 3 + 8

Добавить изображение

Последние статьи