сайт для палких паяльників

Еще одна простая светодиодная игрушка, но не менее эффектная, чем “вертушка” – светодиодный куб или LED Cube. Видео того, что получилось можно посмотреть прямо здесь .

На Youtube можете найти много аналогичных и более крутых вещей. Самая ценная деталь – это куб, собранный из светодиодов. Мы будем строить простой куб с размерами грани 4x4x4 светодиода. Т.е. нам понадобиться 4x4x4=64 светодиода яркого свечения любого цвета. Хотел сделать куб 8x8x8, но тогда понадобилось бы 512 светодиодов. С учетом стоимости светодиодов дороговато как для простой игрушки, начнем с простого 4x4x4.

Как работает куб

Все сразу светодиоды нам не засветить, нужно много ног микроконтроллера. Поэтому поступают проще – поочередно включают по одному “этажу” светодиодов. Человеческих глаз инертен и не может уловить столь быстрое переключение и нам кажется, что горят светодиоды всех этажей.  Но при этом нужно понимать, что каждый отдельно взятый этаж светодиодов горит не все время а отведенный ему период. Период свечения 1/кол этажей. В нашем случае 4. Т.е. Яркость свечения будет 1/4 от номинальной. Поэтому мы и взяли сверх яркие светодиоды, в противном случае у нас получился бы бледный куб.
Светодиодный Куб (LED Cube)Светодиодный Куб (LED Cube)Светодиодный Куб (LED Cube)Светодиодный Куб (LED Cube)

Плата управления

На плате управления микроконтроллер ATMega8 отвечает за логику работы, пара микросхем – сдвиговых регистров для подачи сигналов на “столбы” и 4 транзисторных ключа, которыми включается нужный этаж светодиодов. Микроконтроллер отправляет в сдвиговые регистры необходимое число, а затем включает нужный транзисторный ключ, зажигая нужный этаж. Затем операция повторяется для каждого “этажа”.

На плате предусмотрен разъем для программатора и подключения куба к компьютеру через модуль UART-RS232 или UART-USB. Таким образом, можно заставить куб светиться по командам из компьютера. Однако, куб замечательно работает и без компьютера, правда тогда он сможет прокручивать только “фильм” зашитый в его памяти, но этого, как правило, более чем достаточно.

Куб можно питать от USB порта компьютера. Это удобно при подключении к компьютеру. Я питал отдельно, поскольку планировалось сделать отдельное устройство. На видео можно заметить отдельную плату простого стабилизатора напряжения на 5В, на который подается 12В от внешнего блока питания. Поскольку в один момент времени максимум могут гореть не 64 светодиода, а только 16, то их суммарный потребляемый ток (из расчета 20мА на каждый светодиод) 16*20=320мА. Что допустимо для USB порта.

Сборка светодиодного куба

Светодиоды спаиваются таким образом, чтобы одна из ножек соединялась с ножками других светодиодов по вертикали, формируя “столб”, а другая нога соединялась со всеми светодиодами в плоскости (в “этаже”). К кубу припаиваем провода по одному к столбу (16 шт.) и по одному на каждый этаж (4 шт.). По этим 20 проводам выполняется управление кубом. Подключается куб к плате следующим образом:

LED Cube

Интерфейс с компьютером

Взаимосвязь с платой осуществляется через COM-порт в случае использования модуля UART-RS232 и через виртуальный COM-порт при использовании UART-USB. В том и другом случае для компьютера это COM-порт. Так что с разработкой софта проблем нет.

Софт для создания и проигрования эффектов

Для упрощения работ с созданием различных световых эффектов был создан простенький софт на Flash: http://avislab.com/blog/LEDCube/ . С его помощью можно составить различные эффекты и сохранить файл. Файл – это простая последовательность чисел, которую можно вставить в исходный код, скомпилировать и получить прошивку со своими собственными эффектами. Кроме того, этот файл можно проигрывать на подключенном к компьютеру кубе с помощью простой программы написанной на Delphi. Пример ее можно скачать здесь.

Файлы для скачивания

Скачать: Схема+Плата+Прошивка+Исходники
Скачать: Пример проигрователя на Delphi

см. также:

40 комментариев: Cветодиодный куб ( LED Cube )

  • Евгений говорить:

    Здравствуйте! Меня заинтересовал Ваш проэкт светодиодного куба, давно собирался, вот решил повторить и сделать оригинальный подарок любимому человеку. У меня есть несколько вопросов:
    1. Купил светодиоды синие, спаял решетку, рабочее напрядение одного светодиода 4 в, у Вас светодиоды красные, посмотрел что их раб напряжение 2 в, пересчитал номиналы нагрузочных резисторов. Следовал логики, что напрядение питания 5 в, в каждый мгновенный момент времени горит только 1 св.диод, получилось (5-4).02=50 Ом. Логика верна для данного случая?
    2. Постарался внимательно проанализировать схему и печатную плату, не ясно где токоограничительные резисторы на транзисторы, в схеме нарисованы, а на печатке их нет, или они включены программно через внутренние нагрузочные микроконтроллера?
    3. Обратил внимание на разъем программатора, точнее как расположены дорожки. Получаеться что он как-бы зеркально отражен относительно вертикали, получаеться что при подключении программатора сигналы не будут соответствовать. Надо будет развести плату по-другому?
    Жду скорого ответа, с ув. Евгений.

  • Евгений говорить:

    и еще 4. Как правильно выставить фьюз-биты при программировании контроллера?

  • admin говорить:

    1. Правильнее обратиться к документации по светодиоду. Вы не сообщили марку светодиода, поэтому ничего конкретного сказать не могу.
    2. На печатной плате стройно в ряд стоят ограничительные резисторы (SMD). 16 одинаковых мест в один ряд.
    3. На изображении печатной платы сторона, где располагаются элементы поверхностного монтажа. Разъем программатора с другой стороны платы. Разводка правильная.

    Все Фьюзы по умолчанию кроме тактовой частоты. Выставляем тактирование от внутреннего RC генератора 8Mhz.

  • Иван говорить:

    Вы дали ссылку на программаторы, там их два, каким из нужно пользоваться?? И обязательно ли его соединять с компьютером??

  • admin говорить:

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

  • Electronik83 говорить:

    Собираюсь делать куб 8х8х8. Сразу возникла куча вопросов:
    1. Диоды выбрал “ARL2-5213UBС, св.диод, синий, 5 мм, 5-8Cd 20 3V” покатят?
    2. Надо токоограничивающие резисторы пересчитавыть? или 200 ом – норм?
    3. Транзисторы полевики решил взять “мои любимые” IRFZ44. Ок?
    4. Выдержат смд-эшные 74HC164 такое кол-во диодов?
    5. Хватит атмеге8 её ресурсов для такого кол-ва диодов?
    6. Память еепром у атмеги8 – пол кило (вроде). Для моего случая один “кадр” будет занимать 64 байта. Т.е. получается я могу хранить тока 8 “кадров”??
    Спасибо заранее автору за ответы:))

  • admin говорить:

    1. Светодиоды пойдут любые, лишь бы не кушали больше 20мА. В противном случае ноги микросхем могут не выдержать. Придется включать через транзисторные ключи.
    2. Работать будет.
    3. OK
    4. Выдержат.
    5. Из ресурсов микроконтроллера понадобиться еще 4 ноги на дополнительные “этажи”. Свободные ноги есть это не проблема.
    6. В этом проекте eeprom не используется, весь “фильм” храниться в области программ. Т.е. Вы можете использовать все свободное пространство, оставшееся во Флеш памяти.
    Но для 512 огней этого мало. Atmega8 для этого явно слаба. Как вариант, использовать математические функции для создания эффектов или прикручивать флеш память.

  • Electronik83 говорить:

    Спасибо большое за ответы. Прибавило уверенности. Заказал светодиодов и обвязки для них. Начну делать на 8-ой меге, а там – посмотрим:) Нарисовал печатку платы для диодов со сдвиговыми регистрами и полевиками. Всего с платы этой отходит 20 проводов, включая питание. Думаю – один провод лишний, т.к. он сигнал сброса регистров, в принципе не нужно их сбрасывать – сдвинул как надо и все. Пишу прошиву….
    P.S. А ещё протеус не тянет 512 диодов с мегой….

  • Electronik83 говорить:

    Сигнал сброса регистров точно не нужен. Недавно чинил колонки на 74HC164 – он там в воздухе висит….

  • Андрей говорить:

    Зачем на плате выводы TX и RX, и надо ли их подключать куда-нибуть????

  • admin говорить:

    На плате предусмотрены выводы TX и RX для подключения куба к компьютеру через модуль UART-RS232 или UART-USB. Таким образом, можно заставить куб светиться по командам из компьютера. Однако, куб замечательно работает и без компьютера, правда тогда он сможет прокручивать только «фильм» зашитый в его памяти, но этого, как правило, более чем достаточно. В самом низу статьи есть файлы для скачивания в том числе и пример на Delphi для управления кубом с компа..

  • Сергей говорить:

    Здравствуйте! Скажите фьюзы должны стоять вот так при программировании АТмега8
    SUT0-галачка, CKSEL3-галачка, CKSEL1-галачка, CKSEL0-галачка.

    • admin говорить:

      По фюзам уже было. Все Фьюзы по умолчанию, кроме тактовой частоты. Выставляем тактирование от внутреннего RC генератора 8Mhz. Если перевести в “галочки”, то так и есть.

  • Денис говорить:

    Мне стало интересно и я решил собрать пробный куб на АтМега 8.
    Собрал куб 2х2. Плюсы соединены по вертикали, минусы по горизонтали. 2 этажа
    Итого 6 сигнальных проводов, которые напрямую соединяют контроллер с кубом.
    Возникла проблема зажигания противоположных по диогонали диодов (один на верхнем этаже, второй на нижнем) У меня зажигается вся вертикаль
    Возникло несколько вопросов:

    1) Каково назначение полевых транзисторов в приведенном примере ?
    2) Как сделать так, чтобы зажечь по одному диоду на разных этажах

    • admin говорить:

      1. Светодиоды куба не светятся ВСЕ одновременно. В один момент времени могут светиться только светодиоды одного этажа, или слоя, называйте как угодно. При этом полевые транзисторы включают нужный этаж. Транзистор должен выдерживать ток = [ток одного светодиода] * [кол. светодиодов на этаже]. В моем случае 20мА*16 = 320мА нога микроконтроллера этого не выдержит.
      2. Для формирования иллюзии свечения всего куба, последовательно засвечиваем светодиоды сразу первого этажа, затем второго и т.д. Поскольку человеческий глаз достаточно инертный он не может увидеть момент переключения если частота будет больше 30 Гц. Т.е. зажечь по одному диоду на разных этажах можно только по очереди.

  • Сергей говорить:

    Спасибо Админу за проект, все работает с уважением Красноярск)))

  • Maks говорить:

    Собрал куб, но не работает.
    Можно фото фьюзов выложить? , программатор сделал вот такой (ссылка удалена)
    Помогите пожалуйста!!!

  • Maks говорить:

    Спасибо автору, все получилось, проблема была в атмеге, поставил в дип корпусе и все заработало с первого раза.

  • Maks говорить:

    Не могу разобраться с “софт на Flash: http://avislab.com/blog/LEDCube/
    как сделать прошивку с новыми эффектами, если можно поподробнее.
    Заранее благодарен автору.

  • Дмитрий говорить:

    Скажиите, а как соотнести 16 выводов платы с шестнадцатью столбами диодов?
    Почему на плате нет 4-х резисторов в цепях затворов у транзисторов?

    • man говорить:

      автор просто забыл их на плате нарисовать,я дополнил но пока ещё не запустил

    • admin говорить:

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

  • Electronik83 говорить:

    Давно уже сделал кубик 8х8х8. Работает на ура. Огромное спаисибо Admin`y этого сайта. Написал программку для своей девушки на си в виндах, чтоб она нарисовала все кадры – она нарисовала. Но памяти у меги8 мало совсем, поэтому там влез тока околоминутный ролик. Огромное спасибо автору за использование именно атмеги, а не пик. До этого долго работал с пиками, но там как то все не очень удобно было. Как тока перелез на мегу – сразу стало все както быстрее и гараздо понятнее. Я думаю это так, что до этого использовал примитивный PIC16F84 – фу, фу, фу. Вспоминаю теперь как кошмар. На данный момент подключил к меге кучу микро. И причем любая простецкая задача на меге решается буквально за вечер. Например: в инете все делают часы на далласе и температуру тоже на далласе. Проблем не возникло ваще: один вечер – один девайс. И это кстати, благодаря Протеусу, CodeVisionAVR и железке. Заинтересовала статья про EB-500, только не могу понять, зачем мне GPS….

  • alex говорить:

    автор подскажите пожалуйста какая марка у ваших светодиодов

  • алексей говорить:

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

  • алексей говорить:

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

  • alex говорить:

    друзья пожалуйста кто нибудь подскажите в какой последовательности включать столбы анодов с резисторами

  • alex говорить:

    Спасибо большое за то что выложели сборку куба и подсоединение её к плате

  • Слава говорить:

    А где токоогранечительные резисторы для транзисторов на печатной плате?

    • admin говорить:

      Ограничительные резисторы на затвор полевых транзисторов ставить не обязательно. Поэтому на печатной плате их нет. Ограничительные резисторы обязательно ставить если будите применять биполярные транзисторы.

  • проходивший мимо говорить:

    С уважением, но блин, растровыми строками оперировать это извращение..
    ну почему бы не сделать отрисовку примитивами (примерно так: cxem. net/sound/light/download/ 4x4x4_ledcube-0.2.zip) помоему намного удобнее и нагляднее. С другой стороны большой плюс – если подключить spi-флеш то можно таких строк/кадров залить столько на сколько терпения хватит..а вот с исполняемым кодом такое не пройдёт.

    B всётки попробую портировать.(
    Если не забуду, отпишусь через недельку.
    А за печатку большое спасибо, очень элегантно получилась!

  • Начинающий говорить:

    Собрал данный куб на dip компонентах (Atmega8A-PU, транзиля оставил IRLML2402) и радость – программатор сделал вот такой http://www.getchip.net/posts/delaem-com-programmator-dlya-avr-mikrokontrollerov/ (им же прошил всем известный USBASP) попытался прошить данный куб – uniprof не увидел контроллера. Программатор исправен, схема разведена согласно печатке автора и dataheet на микрухи, контроллер, транзиля. Чудес не бывает, в чем ошибка? У автора на схеме выводы МК AVCC, AREF висят в воздухе а на печатке – обьеденены с VCC как правильно? Прошу помощи.

    • andre говорить:

      AVCC, AREF – это для питание и опорное для аналого-цифрового преобразователя. На процесс прошивки не влияет.

      • Начинающий говорить:

        Огромное спасибо! Сегодня разобрался почему Uniprof не видел atmega – для запуска нужно было подвесить кварц с кондюками (12mhz и 15pf). Прошивку залил без проблем (hex фаил), а вот с фьюзами запутался.
        “admin говорит:
        02.04.2012 в 08:42
        По фюзам уже было. Все Фьюзы по умолчанию, кроме тактовой частоты. Выставляем тактирование от внутреннего RC генератора 8Mhz. Если перевести в «галочки», то так и есть.”
        Как должно быть расставлено в Uniprof? Поставил галочки в колонке Fuse(low) на SUT0, CKSEL3, CKSEL1, CKSEL0 остальные снял записал.Включил куб и тишина – не работает. Снова подключил к программатору и опять без внешнего кварца с обвязкой Uniprof не увидел atmegy. Я так понимаю внутрений генератор запускаемый с помощь конфигурации фьюз я не выставил. Прошу помощи.

        • Начинающий говорить:

          Собрал куб работает, автору спасибо! Если у кого возникнут вопросы похожие на мои:
          1) используем связку программатор Громова и Uniprof http://easyelectronics.ru/avr-shag-pervyj-programmator.html – достаточно хорошо разжевано, есть варианты печаток, коментарии
          2) http://www.getchip.net/posts/025-uniprof-universalnyjj-programmator-dlya-avr/ достаточно подробно как для новичка описана сама Uniprof как с ней работать
          3) в данной конструкции можно применить Atmega8A-PU (dip)
          4) если Uniprof не увидела мк подпаять кварц с конденсаторами
          5) ОБЯЗАТЕЛЬНО !!! не забываем при загрузке HEX-файла что он содержит и Eeprom – нужно шить все вместе!!!!
          6) Теперь FUSE биты ставим галочки один в один как на картинке http://flowcode.info/images/fbfiles/images/ATmega8_internal_RC_8.png

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

Translate
Архіви

© 2011-2019 Андрій Корягін, Кременчук - Київ, Україна