Існує безліч конструкцій вовчків зі світлодіодами. Зазвичай в них є кілька світлодіодів різного кольору і під час обертання ці кольори “розмиваються” на всю площу дзиги. Однак наш пристрій відрізняється від усіх інших. Наш дзига при обертанні відображає повідомлення. І більше того – якщо ви закрутіть його у зворотному напрямку, то він покаже інше повідомлення. Швидке перемикання світлодіодів відображає повідомлення, яке людське око здатне вловити. Первісна ідея була опублікована в журналі 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 с .: іл. – (Електроніка)