В один прекрасный осенний вечер застало скукотище, да к тому же дома. Лежало передо мной на столе 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-хразрядных чисел (входов — то всего 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
Список радиоэлементовОбозначение
Тип
Номинал
Количество
ПримечаниеМагазинМой блокнот
IC1
МК AVR 8-битATtiny131
13-20PUIC2
МикросхемаКР1533ИД31
С1
Конденсатор1 мкФ1
R1
Переменный резистор10 кОм1
R2
Резистор100 Ом1
HL1-HL16
Светодиод16
J1, J2
Разьем2
Добавить все
Скачать список элементов (PDF)
Прикрепленные файлы:
- ADC_Tiny13.rar (5 Кб)
1 comment on “АЦП на TINY13 и 16 светодиодов”
Класс!спасибо!