Светодиодный Контроллер Для Модели Самолета

Некоторое время назад мне попалась статья о как сделать стробоскопы для модели самолета .

Вообще-то мне не очень хотелось увлекаться электроникой, но почему-то идея поставить на модель разные поворотники меня зацепила.

Некоторые не видят в этом смысла — лучше покрыть модель светодиодными лентами сверху вниз, и так красиво и видно издалека.

Но я предпочитаю модели-реплики, а это значит, что все лампочки, стробоскопы, фары и другие огни должны включаться и выключаться так же, как в оригинале.

По ряду причин предложенный вариант меня не устроил.

В этой статье я описал свой вариант контроллера мигающих и немигающих светодиодов для модели самолета.

Контроллер выполнен на базе ATTiny13A, т.е.

статья будет полезна и тем, кто разбирается в микроконтроллерах AVR. Я постарался все разложить и разобрать, чтобы статья была интересна в первую очередь новичкам.

Возможности железки можно оценить в этом видео:



Введение

Когда я начал копаться в этом вопросе и даже перепаял предложенную в той статье плату, оказалось, что это совсем не то, что мне нужно.

Во-первых, каналов всего два, которые могут мигать только по очереди.

Тайминги настроить можно, но алгоритм зашит в прошивку.

Во-вторых, на плате целых 3 кнопки, которые добавляют лишние граммы.

Передвигать поворотник с модели на модель и перепрограммировать светодиоды после каждого полета я не собираюсь, а значит, эти кнопки мне не нужны.

Я согласен один раз припаять провода напрямую к контроллеру и запрограммировать тот алгоритм, который нужен.

И наконец, в-третьих, прошивка доступна только в бинарном виде, без исходного кода, а значит, модифицировать что-либо невозможно.

Задумываясь о следующей модели, я сразу прикинул, сколько светодиодов мне нужно и как они будут мигать.

В результате «переписи» выяснилось, что мне нужно 4 канала (в каждом канале по 2-3 светодиода):

  • БАНО (Бортовые аэронавигационные огни – зеленые и красные огни на концах крыльев) – эти штуки горят всегда
  • Посадочные огни - будут включаться и выключаться с пульта, т.е.

    схема должна реагировать на ШИМ-сигнал от приемника

  • Стробоскопы — это белые огни, которые время от времени мигают короткими яркими вспышками.

  • Стробоскопы — это красные огни, которые плавно включаются и выключаются, напоминающие стробоскопы старой школы.

Модель большая и далеко летает. Это означает, что для того, чтобы светодиоды были видны, они должны быть мощными.

На предыдущей модели я делал БАНО на одноваттных светодиодах - их хорошо видно с расстояния 50м, даже в яркий солнечный день вечером.

Итак, это мой размер.

Но оказалось, что запитать мощные светодиоды не так уж и просто.

На борту имеется только питание от линейного стабилизатора (на плате регулятора двигателя).

Это значит, что если мы подключим туда хотя бы один мощный светодиод (через резистор, конечно), то получим очень большие теплопотери.

Они настолько велики, что термоусадка регулятора расплавляется до дыр.

Подробнее с расчетами здесь Импульсный стабилизатор напряжения лучше, но как оказалось, светодиодам нужно стабилизировать не напряжение, а ток.

К счастью, нашелся микромир, который делает это вполне хорошо.

Это была вторая часть подготовки, которую я описал.

здесь .



Ээлектроника

С требованиями разобрались.

Пришло время взяться за паяльник.

Я принципиально новичок в электронике.

Поэтому я творчески переработал схему из Ациноникс (который, в свою очередь, позаимствовал его у ВЕТЕРАН СКУТЕР ).

Мне нужно было изменить следующее:

  • Выкинь кнопки
  • Включить вход ШИМ от ресивера
  • Определите 3 ножки ATTiny как выходы и подключите к ним светодиодные драйверы.

  • Добавьте четвертый драйвер, который всегда будет включен (для BANO)
В общем, от оригинала мало что осталось.

В качестве драйвера удачным выбором оказалась микросхема ZXLD1350, которая как раз и предназначена для питания одноваттных светодиодов (ток до 350мА).

Причем в каждый канал можно последовательно ставить любые светодиоды, лишь бы они все в сумме давали питающее напряжение.

Те.

Если запитать схему от аккумулятора 3S (11,1В), то можно поставить до 3-х светодиодов в каждом канале, на каждом из которых падает 3,2В.

Запитал микроконтроллер отдельно от приёмника, тем же проводом, что и вход ШИМ.



Светодиодный контроллер для модели самолета

Схема.

Каждый канал построен по схеме из даташита.

Таких каналов на плате 4 (я нарисовал только один).

Я нарисовал 3 светодиода, но, как я уже говорил, в каждый канал можно поставить любое количество светодиодов.

Можно даже установить светодиоды разных цветов (на них падает разное напряжение), главное, чтобы они были рассчитаны на один и тот же ток.

Драйвер сам подберет напряжение такое, чтобы ток через диоды не превышал 350мА.

Вход ADJ трех каналов подключен к выходу контроллера через транзистор.

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

Более того, вы можете плавно регулировать яркость, изменяя входное напряжение или используя ШИМ.

Но рабочее входное напряжение от 0,3В до 2,5В, а на выходе контроллера 5В.

К счастью, в даташите рекомендовано решение в виде транзистора.

Только нужно учесть, что этот транзистор инвертирует логическое состояние - ноль на ножке контроллера включит светодиод, а единица - выключит. Однако это не проблема исправить программно.

Чтобы сэкономить вес, я решил попробовать сделать двустороннюю доску.

С ЛУТ я так и не подружился, а вот с фоторезистом все получилось с первого раза.

Я тоже пробовал поиграться с паяльной маской, но нарушил технологию и маска плохо подошла (а в некоторых местах даже отвалилась).

Ошибки учтены на будущее, но эту попытку оставлю как есть.

Это все равно будет работать в первый раз.



Светодиодный контроллер для модели самолета



Светодиодный контроллер для модели самолета

Компоновка платы.

Крестики по краям — это знаки стыковки.

Текстолит я вырезал немного в запас, затем в местах крестиков просверлил отверстия, по которым потом совместил маски.

Дырки я не заделывал, сделал это перемычками.

Ну и ножки конденсатора выполняют еще и роль перемычки между сторонами.



Светодиодный контроллер для модели самолета

Готовое изделие.

Лишний текстолит отрезал по рамке.

В результате получился платок размером 27х22мм и весом 4г.

Ну и получилось еще 2г на провода и разъемы.

Устройство подключается к ресиверу через стандартный трехконтактный разъем JR. Драйверы светодиодов получают питание от балансировочного разъема батареи.



Светодиодный контроллер для модели самолета



Светодиодный контроллер для модели самолета

Тем, кому не хватает 1 Вт, можно присмотреться к чипу ZXLD1360. Он предназначен для питания светодиодов мощностью 3Вт (ток 750мА).

Схема включения и распиновка одинаковые, поэтому разводка платы подойдет. Изменить нужно только значения некоторых деталей, сверьтесь с даташитом.

Для тех, кто еще не освоил травление двухсторонних плат, выкладываю также несколько вариантов односторонних - на 2, 3 и 4 канала.

Светодиоды купил у китайцев.

на eBay .

Купил специально без радиатора, который не везде влезет. В качестве радиатора я использовал кусочки алюминиевой полосы.

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

Вот так это выглядит в тестовом варианте (здесь радиатор маленький и греется)

Светодиодный контроллер для модели самолета

А вот так было на предыдущей модели.



Светодиодный контроллер для модели самолета



Прошивка

Теперь нам нужно вдохнуть жизнь в эту железку.

Так как исходники прошивки отсюда ВЕТЕРАН СКУТЕР В Интернете я его не нашел, поэтому пришлось все делать самому.

Нет, я, конечно, разобрал его прошивку, чтобы посмотреть, что там внутри, но гораздо полезнее было просто прочитать спецификацию на ATTiny13. Несмотря на то, что микроконтроллер имеет всего 1Кб флэш-памяти, я решил писать на C. Так удобнее и понятнее.

Скетчи Arduino, конечно, будут в чем-то проще, но все, что я задумал, не поместится в память контроллера.

Поэтому пришлось спуститься на более низкий уровень и запрограммировать регистры напрямую.

К моему удивлению, компилятор (gcc 3.4.2 из Atmel Studio 6) сгенерировал довольно хороший код. Было, правда, пару мест, где компилятор действовал не оптимально, но эти места исправили.

Архитектурная проблема прошивки в том, что мне нужно было одновременно сделать несколько концептуально разных действий — здесь моргнуть, здесь не моргнуть, сюда завернуть рыбу, здесь прослушать ШИМ-вход, здесь сгенерировать ШИМ-выход. Позвольте мне привести вам классический пример.

Что делать, если нам нужно моргнуть одним светодиодом? Ну тогда наша программа будет выглядеть примерно так:

   

while(1) {

Теги: #Сделай сам или Сделай сам #avr #attiny13 #освещение #таймеры #модели самолетов #половинки #бано
Вместе с данным постом часто просматривают:

Автор Статьи


Зарегистрирован: 2019-12-10 15:07:06
Баллов опыта: 0
Всего постов на сайте: 0
Всего комментарий на сайте: 0
Dima Manisha

Dima Manisha

Эксперт Wmlog. Профессиональный веб-мастер, SEO-специалист, дизайнер, маркетолог и интернет-предприниматель.