Проект tinyAVR 23. Волчок со светодиодами

November 5, 2014 by admin Комментировать »

Существует множество конструкций волчков со светодиодами. Обычно в них есть несколько светодиодов разного цвета и во время вращения эти цвета "размываются" на всю площадь волчка. Однако наше устройство отличается от всех других. Наш волчок при вращении отображает сообщение. И более того — если вы закрутите его в обратном направлении, то он покажет другое сообщение. Быстрое переключение светодиодов отображает сообщение, которое человеческий глаз способен уловить. Первоначальная идея была опубликована в журнале Elektor в декабре 2008 года (статья "LED Top with Special Effects"). Волчок из журнала Elektor мог показывать только одно сообщение. Мы изменили эту схему и внесли свои усовершенствования: наш волчок при вращении в разные стороны может показывать различные сообщения. Блок-схема волчка приведена на рис. 5.21. Устройство состоит из ряда светодиодов, смонтированных радиально от центра волчка к его периферии. Волчок питается от двух батареек размером ААА (никель-металло- гидридных или щелочных), выдающих от 2,4 до 3 В. Поскольку микроконтроллер должен питаться от 5 В, то предусмотрен повышающий преобразователь (который поднимает напряжение от батареек до +5 В). Для определения факта вращения и его направления в схеме есть две катушки индуктивности.

Рис. 5.21. Блок-схема волчка со светодиодами

Спецификация проекта

Цель проекта — создать вращающийся волчок со светодиодами, который показывает сообщения при вращении. Волчок работает от батареек и при вращении в разные стороны будет выдавать различные сообщения. В схеме восемь светодиодов, которые отображают как текст, так и графическую информацию.

Описание устройства

На рис. 5.22 изображена принципиальная схема волчка со светодиодами. Он питается от двух батареек размера ААА (на схеме — ААА1 и ААА2). Выключатель SW2 позволяет отключать питание. Учтите, что индикатора включения питания нет, поэтому весьма возможно, что вы забудете выключить питание и разрядите батарейки.

Напряжение от батареек подается на преобразователь МАХ756, который обеспечивает напряжение +5 В для питания микроконтроллера AVR ATTiny44 (IC3), а также двух операционных усилителей LM358 (IC1 и IC2). Микроконтроллер управляет восемью светодиодами. Цепь обнаружения движения (состоящая из двух операционных усилителей) определяет факт вращения и направление поворота. Эта информация подается в микроконтроллер на сигнальные контакты INT (контакт РВ2) и DIR (контакт РВ1).

Рис. 5.22. Принципиальная схема волчка со светодиодами

Рис. 5.23. Осциллограмма напряжения на катушках

Цепь обнаружения движения состоит из двух идентичных каналов (состоящих из катушек L2 и L3). Когда катушка двигается в магнитном поле, в ней возникает напряжение. Наша схема использует магнитное поле Земли, поэтому при вращении волчка генерируется очень небольшое переменное напряжение. Частота этого напряжения равна скорости вращения волчка. Две катушки размещены под углом 90° на краю волчка. Таким образом, сигнал от одной катушки запаздывает на 90° по сравнению с сигналом другой катушки. Если рассмотреть эти сигналы на осциллографе, то при вращении волчка в одну сторону первый сигнал будет опережать второй, а при вращении в другую сторону — отставать от него (рис. 5.23).

Синусоидальные сигналы от катушек усиливаются операционными усилителями, включенными как неинвертирующие усилители (IC1A и IC2A). Эти усиленные сигналы преобразуются при помощи RC-цепей задержки (R14, С9 и R15,C8 — в одном канале и R21, С12 и R22, С11 — в другом). Задержанные синусоидальные напряжения поступают на компараторы (IC1B ‘и IC2B), чтобы получить прямоугольные сигналы той же частоты. Прямоугольные сигналы от операционных усилителей (INT и DIR) подаются на микроконтроллер. Сигнал INT поступает на контакт РВ2 микроконтроллера Tiny44 (это контакт прерывания). Этот контакт программно сконфигурирован как вход по нарастающему фронту. Второй канал DIR подключен к РВ1. При каждом прерывании микроконтроллера сигналом INT он выполняет процедуру обработки прерывания, которая читает состояние контакта DIR. Если контакт DIR равен 0, то это означает одно направление вращения, а если 1 — другое. Микроконтроллер также измеряет частоту сигнала INT и использует эту информацию для определения времени одного оборота волчка. Шаблоны свечения светодиодов (для обоих направлений) хранятся в памяти программ микроконтроллера. На основе информации о скорости вращения микроконтроллер решает, как долго демонстрировать шаблон свечения. Если скорость вращения падает, то время отображения шаблона свечения пропорционально увеличивается. Если скорость вращения высокая (как это бывает в начале вращения), то все шаблоны свечения демонстрируются в течение более короткого времени. Это обеспечивает постоянство отображаемого сообщения независимо от скорости вращения волчка.

Шестиконтактный разъем — ISP, который необходим для программирования микроконтроллера. Перемычка JP1 зарезервирована для последующего использования и в текущей версии программы состояние контакта РВО не считывается. Катушка L4 установлена для балансировки волчка, к схеме она не подключена.

Конструкция

Компоновку платы в программе EAGLE (и принципиальную схему) можно скачать по ссылке: www.avrgenius.com/tinyavrl.

Волчок сделан на нестандартной печатной плате. На рис. 5.24 и 5.25 показаны обе ее стороны.

Все индикаторы размещены на нижней стороне платы и залиты термоклеем для защиты. Катушки L2 и L3 намотаны эмалированным медным проводом марки 42 SWG на сердечнике из феррита. Это очень тонкая проволока, поэтому при нама-

Рис. 5.24. Печатная плата устройства (верхняя сторона)

Рис. 5.25. Печатная плата устройства (нижняя сторона)

Рис. 5.26. Внешний вид вращающегося волчка

тывании катушки следует соблюдать осторожность. Ферритовый сердечник был полностью заполнен обмоткой, в результате чего индуктивность составила примерно 150 мГн. Подробности по сердечнику (высота 10 мм и внутренний диаметр 3 мм) и способ его намотки приведены на нашем Web-сайте. Катушка L1 намотана 20 витками провода 28 SWG и имеет индуктивность примерно 22 мкГн. Число витков катушки L4 не имеет значения, она просто должна иметь такой же вес, как остальные катушки. Все катушки размещаются на краю платы (через 90 друг от друга). Фотография вращающегося волчка приведена на рис. 5.26.

Сначала припаиваются все компоненты в корпусах SMD, за ними — все остальные компоненты, разъемы батарей и катушки (с обратной стороны). Пластмассовый стержень, выточенный под размер центрального отверстия, служит осью волчка.

Программирование

Откомпилированный исходный код (вместе с файлом MAKEFILE) можно скачать по ссылке: www.avrgenius.com/tinyavrl.

Тактовая частота равна 1 МГц. Максимальное и минимальное время одного оборота задано заранее (как и те символы, которые будут отображаться при вращении в одну и в другую сторону). Главная программа инициализирует прерывания и входит в бесконечный цикл, из которого периодически вызывается функция double_string_display (ЛИСТИНГ 5.7).

void double_string_display (void)

{

// Инициализируем дисплей cons truet_display_field () ;

// Выполняется TOP

while (running_condition() == TOP_TURNING)

{

i = current_column/2; if(current_column%2==l)

{

set_leds(LED_ALL_OFF);

}

else if(current_column%2==0)

{

if (mode==CLOCKWISE)

{

i f(i<=(STRING_LENGTH1* 6))

set_leds((display_field_clock[i])&0x7F);

else

set_leds(LED_ALL_OFF);

}

else if (mode==ANTICLOCKWISE)

{

if (((STRING_LENGTH2*6)-i)>=0)

set_leds((display_field_clock[(STRING_LENGTH2*6)-i])&0x7F); else

set_leds(LED_ALL_OFF);

}

}

}

// TOP не выполняется

while(running_condition() != TOP_TURNING)

{

// Отключить все светодиоды

set_leds(LED_ALL_OFF);

}

} /* doubletstring_display */

Нужный шаблон свечения на светодиодах (в соответствии с направлением вращения и с отображаемым столбцом) формирует функция set_ieds. Функция construct. dispiay_function заполняет массив dispiay__fieid_ciock (в соответствии с текстом и направлением вращения). Значения таймера и тактовой частоты (для правильного отображения строк) изменяются прерываниями INTO, TEMER0 и TIMER 1 (как и направление вращения). Каждый второй столбец дисплея оставляется пустым (чтобы столбцы не сливались из-за высокой скорости вращения волчка). Отношение пустых столбцов к отображаемым определяет ширину выводимых символов.

Работа устройства

После изготовления волчка подключают батарейки и микроконтроллер программируется (при помощи интерфейса программирования ISP) кодом, который можно скачать с нашего Web-сайта. После программирования микроконтроллера кабель ISP убирают и включают питание. Раскрутите волчок и запустите его на ровной твердой поверхности. Вы увидите сообщения. Возможно, вам придется потренироваться в его раскручивании. Пусть волчок остановится, после чего закрутите его в другом направлении, и увидите другое сообщение. Не забудьте выключить питание, когда волчок не используется.

Источник: Гадре, Д., Занимательные проекты на базе микроконтроллеров tinyAVR / Дхананья Гадре, Нигул Мэлхотра: Пер. с англ. — СПб.: БХВ-Петербург, 2012. — 352 с.: ил. — (Электроника)

Оставить комментарий

Устройство витков выходе генератора импульсов микросхемы мощности нагрузки напряжение напряжения питания приемника пример провода работы радоэлектроника сигнал сигнала сигналов сопротивление схема теория транзистора транзисторов управления усиления усилитель усилителя устройства частоты