Главная » Микроконтроллеры
Призовой фонд
на октябрь 2017 г.
1. Термометр Relsib WT51
Рэлсиб
2. 1000 руб
PCBWay
3. Регулируемый паяльник 60 Вт
Паяльник
4. 100 руб.
От пользователей

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

В один прекрасный осенний вечер застало скукотище, да к тому же дома. Лежало передо мной на столе 16 светодиодов и маленькая ATtiny13, да к тому же без дела. Тут я вспомнил, как лет так 5 назад собирал в колледже стендик для демонстрации вольтамперных характеристик, в котором пришла идея использовать дешифратор 4х16 К555ИД3, хотя позже пришлось делать на КР1533ИД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. Сама программа достаточно проста и выглядит следующим образом:

Программа в Flowcode

Вначале мы считываем данные с АЦП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-бит
ATtiny13
1 13-20PUПоиск в LCSCВ блокнот
IC2 МикросхемаКР1533ИД31 Поиск в LCSCВ блокнот
С1 Конденсатор1 мкФ1 Поиск в LCSCВ блокнот
R1 Переменный резистор10 кОм1 Поиск в LCSCВ блокнот
R2 Резистор
100 Ом
1 Поиск в LCSCВ блокнот
HL1-HL16 Светодиод16 Поиск в LCSCВ блокнот
J1, J2 Разьем2 Поиск в LCSCВ блокнот
Добавить все

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

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

Теги:

Опубликована: 0 0
Я собрал 0 0
x

Оценить статью

  • Техническая грамотность
  • Актуальность материала
  • Изложение материала
  • Полезность устройства
  • Повторяемость устройства
  • Орфография
0

Средний балл статьи: 0 Проголосовало: 0 чел.

Комментарии (4) | Я собрал (0) | Подписаться

0
Дэн #
А можно ли на 1533ид3 сделать так, чтобы загорались светодиоды по-одному, но предыдущий не выключался, а когда загорятся все-процесс остановился?
Ответить
0
Валерий #
К сожалению на 1533ид3 так сделать не получится. Можно поставить RS триггеры после дешифратора и запараллелить входы R, и производить сброс отдельным сигналом.
Ответить
0
Дмитрий #
Используя данную схему можно заставить гореть светодиоды в абсолютно любых комбинациях, организовав динамический вывод. Просто пишется обработчик для таймера, который с определенной периодичностью достаточно быстро выводит коды всех светодиодов, которые нужно засветить... Как это сделать красиво, чтобы хватило памяти Tiny13 - ну я конечно знаю, но и любой человек, который с контроллерами на "ты" тоже догадается.
Ответить
0
Сергей #
Люди, перешлите пожалуйста проект этого АЦП на Atiny13, скачал Flowcode 7 хочу потестить эту программу. Заранее спасибо.
Ответить
Добавить комментарий
Имя:
E-mail:
не публикуется
Текст:
Защита от спама:
В чем измеряется электрическая мощность?
Файлы:
 
Для выбора нескольких файлов использйте CTRL

Pickit 2 - USB-программатор PIC-микроконтроллеров
Pickit 2 - USB-программатор PIC-микроконтроллеров
Модуль радиореле на 4 канала Конструктор регулируемого преобразователя напряжения LM317
вверх