Схемы

Как построить светодиодный куб 8x8x8 и управлять им с помощью Arduino: 7 шагов (с изображениями)

Python Myanmar - Unicode Converter in Mac OSX

Python Myanmar - Unicode Converter in Mac OSX

Оглавление:

Anonim

На Instructables много светодиодных кубиков, так зачем делать еще один? Большинство из них предназначены для маленьких кубов, состоящих из 27 или 64 светодиодов, редко больших, поскольку они ограничены количеством выходов, доступных на микроконтроллере. Этот куб будет состоять из 512 светодиодов и потребует только 11 выходных проводов от Arduino. Как это возможно? С помощью светодиодного драйвера Allegro Microsystems A6276EA.
Я покажу вам, как я сделал сам куб, плату контроллера и, наконец, код, чтобы он сиял.


Расходные материалы:

Шаг 1: Материалы

Все части, которые вам понадобятся для построения куба:
1 Arduino / Freeduino с чипом Atmega168 или выше
512 светодиодов, размер и цвет на ваше усмотрение, я использовал 3 мм красный
4 светодиодных чипа драйвера A6276EA от Allegro
8 NPN транзисторов для управления потоком напряжения, я использовал транзистор Дарлингтона BDX53B
4 резистора 1000 Ом, 1/4 Вт или выше
12 560 Ом, 1/4 Вт или выше
1 330 мкФ электролитический конденсатор
4 24-контактный разъем IC
9 16-контактных разъемов IC
4 "x4" (или больше) кусок картона для хранения всех частей,
Старый компьютерный фанат
Старый кабель контроллера флоппи-дисковода
Старый компьютерный блок питания
Много проволочных соединений, припой, паяльник, флюс, все что угодно для
сделать вашу жизнь проще, делая это.
7 "x 7" (или больше) кусок дерева, используемый для изготовления пайки
Хороший случай для отображения вашего готового куба
Мой Arduino / Freeduino - Bare Bones Board (BBB) ​​от www.moderndevice.com. Светодиоды были приобретены у eBay и стоят 23 доллара за 1000 светодиодов, поставляемых из Китая. Остальная электроника была куплена у Newark Electronics (www.newark.com) и должна стоить всего около 25 долларов. Если вам нужно все купить, этот проект должен стоить всего около 100 долларов.
У меня много старого компьютерного оборудования, так что эти детали сошли с кучи металлолома.

Шаг 2: собрать слои

Как сделать 1 слой (64 светодиода) из этого 512 светодиодного куба:
Светодиоды, которые я купил, были диаметром 3 мм. Я решил использовать маленькие светодиоды, чтобы сократить расходы и сделать конечный размер куба достаточно маленьким, чтобы сидеть на моем столе или полке, не занимая полностью стол или полку.
Я нарисовал сетку 8x8 с примерно 0,6 дюйма между линиями. Это дало мне размер куба около 4,25 дюймов с каждой стороны. Просверлите 3 мм отверстия в местах пересечения линий, чтобы создать зажим, который будет удерживать светодиоды при пайке каждого слоя.
A6276EA является текущим устройством приема. Это означает, что он обеспечивает путь к земле, а не путь к напряжению источника. Вам нужно будет построить куб в общей конфигурации анода. Большинство кубов построены как общий катод.
Длинная сторона светодиода, как правило, анодная, проверьте свою, чтобы убедиться. Первым делом я проверил каждый светодиод. Да, это долгий и скучный процесс, и вы можете пропустить его, если хотите. Я предпочел бы потратить время на тестирование светодиодов, чем найти мертвую точку в моем кубе после его сборки. Я нашел 1 мертвый светодиод из 1000. Неплохо.
Отрежьте 11 кусков твердого неизолированного провода до 5 дюймов. Поместите 1 светодиод в каждый конец ряда на своем зажиме, а затем припаяйте провод к каждому аноду. Теперь поместите оставшиеся 6 светодиодов в ряд и припаяйте эти аноды к проводу. Это может быть вертикально или горизонтально, это не имеет значения, если вы делаете все слои одинаково. Когда вы закончите каждый ряд, обрежьте лишние провода от анодов. Я оставил около 1/8 ".
Повторяйте, пока не закончите все 8 строк. Теперь припаяйте 3 соединительных провода через ряды, которые вы только что сделали, чтобы соединить их все в один кусок. Затем я проверил слой, приложив 5 вольт к
подключите проволочную решетку через резистор и коснитесь заземляющего провода к каждому катоду. Замените все светодиоды, которые не горят.
Тщательно удалите слой с зажима и отложите его в сторону. Если вы сгибаете провода, не беспокойтесь, просто выпрямите их как можно лучше. Это очень легко согнуть. Как видно из моих фотографий, у меня было много согнутых проводов.
Поздравляю, вы сделали 1/8. Сделайте еще 7 слоев.
ДОПОЛНИТЕЛЬНО: для облегчения пайки слоев (шаг 3), пока каждый последующий слой все еще находится в зажиме, согните верхнюю четверть дюйма катода вперед на 45-90 градусов. Это позволит
Свяжите со светодиодом, к которому он подключен, и облегчит пайку. Не делайте этого со своим первым слоем, мы объявим, что один является нижним слоем, и выводы должны быть прямыми.

Шаг 3: собрать куб

Как спаять все слои вместе, чтобы сделать куб:
Трудная часть почти закончена. Теперь аккуратно поместите один слой обратно в зажим, но не надавливайте слишком сильно, мы хотим, чтобы его можно было снять, не сгибая. Этот первый слой является верхней гранью куба. Поместите другой слой поверх первого, выровняйте выводы и начните пайку. Я нашел, что проще всего делать углы сначала, затем по внешнему краю, а затем по внутренним рядам.
Продолжайте добавлять слои, пока не закончите. Если вы предварительно согнули отведения, то сохраните слой с прямыми отведениями на последний раз. Это дно.
У меня было слишком много места между каждым слоем, поэтому я не совсем получил форму куба. Ничего страшного, я могу жить с этим.

Шаг 4: Построение платы контроллера

Как собрать плату контроллера и прикрепить ее к Arduino:
Следуйте схеме и постройте доску по своему усмотрению. Я поместил микросхемы контроллера в центр платы и использовал левую сторону для удержания транзисторов, которые контролируют ток для каждого слоя куба, и использовал правую сторону, чтобы удерживать разъемы, которые идут от микросхем контроллера к катодам. светодиодные колонны.
Я нашел старый 40-миллиметровый компьютерный вентилятор с гнездовым разъемом Molex для подключения его к блоку питания компьютера. Это было прекрасно. Небольшой поток воздуха через чип полезен, и теперь у меня есть простой способ подать 5 вольт на микросхемы контроллера и сам Arduino.
На схеме RC является резистором ограничения тока для всех светодиодов, подключенных к каждому A6276EA. Я использовал 1000 Ом, потому что он обеспечивает 5 миллиампер на светодиод, этого достаточно, чтобы его зажечь. Я использую High Brightness, а не Super Brite, поэтому потребление тока ниже. Если все 8 светодиодов в колонке горят одновременно, это всего 40 миллиампер. Каждый выход A6276EA может обрабатывать 90 миллиампер, поэтому я в пределах досягаемости.
RL - это резистор, подключенный к логическим или сигнальным проводам. Фактическое значение не очень важно, пока оно существует и не слишком велико. Я использую 560 Ом, потому что у меня их было много.
Я использовал силовой транзистор, способный обрабатывать до 6 ампер, чтобы контролировать ток, идущий к каждому слою куба. Это излишне для этого проекта, так как каждый слой куба будет рисовать только 320 миллиампер с зажженными светодиодами. Я хотел, чтобы пространство росло, и мог бы позже использовать плату контроллера для чего-то большего. Используйте транзистор любого размера, который соответствует вашим потребностям.
Конденсатор 330 мкФ на источнике напряжения предназначен для сглаживания любых незначительных колебаний напряжения. Так как я использую старый компьютерный блок питания, в этом нет необходимости, но я оставил его на всякий случай, если кто-то захочет использовать 5-вольтовый настенный адаптер для питания своего куба.
Каждый чип контроллера A6276EA имеет 16 выходов. У меня не было другого подходящего разъема, поэтому я припаял выводы к некоторым 16-контактным разъемам IC и буду использовать их для подключения платы контроллера к кубу. Я также разрезал гнездо IC пополам и использовал его для подключения 8 проводов, которые соединяют транзисторы со слоями куба.
Я отрезал около 5 дюймов от конца старого гибкого кабеля, чтобы использовать его в качестве разъема для Arduino. Гибкий кабель состоит из 2 рядов по 20 контактов, а голая доска для костей имеет 18 контактов. Это очень дешевый (бесплатный) способ подключения Arduino к плате. Я раздвинул ленточный кабель в группы из 2 проводов, зачистил концы и спаял их вместе. Это позволяет подключить Arduino к любому ряду разъема. Следуйте схеме и припаяйте разъем на место. Не забудьте припаять 5-вольтовые и заземляющие провода к разъему, чтобы подать питание на Arduino.
Я намерен использовать эту плату контроллера для других проектов, поэтому модульная конструкция отлично подходит для меня. Если вы хотите жестко подключить соединения, это нормально.

Шаг 5: Построить витрину

Сделайте ваш конечный продукт красивым:
Я нашел этот деревянный сундук в Hobby Lobby за 4 доллара и подумал, что он будет идеальным, так как в нем есть место для всей проволоки, и он выглядит красиво. Я испачкал это красное, то же самое пятно, которое использовал на своем компьютерном столе, чтобы они совпадали.
Нарисуйте сетку сверху того же размера, что и сетка, используемая для пайки (0,6 дюйма между линиями). Просверлите отверстия, чтобы пропустить провода через верх, и просверлите еще одно отверстие за решеткой для проводов слоя / плоскости (от транзисторов в шаге 4). Я усвоил трудный путь, что попытка выстроить 64 ведет через маленькие дыры очень сложна. В конце концов я решил снова просверлить все отверстия, чтобы ускорить процесс. В итоге я использовал сверло .2.
Теперь, когда куб расположен сверху дисплея, согните угловые выводы, чтобы куб оставался на месте, когда вы присоединяете провода. Убедитесь, что вы подключили все провода в правильном порядке.
1 2 3 4 5 6 7 8
9 10 11 12 13 14 15 16
17 18 19 20 21 22 23 24
25 26 27 28 29 30 31 32
33 34 35 36 37 38 39 40
41 42 43 44 45 46 47 48
49 50 51 52 53 54 55 56
57 58 59 60 61 62 63 64
И соедините провода между слоями (помеченными на схеме как «плоскости») и транзисторами. Транзистор на выводе Arduino 6 является верхним слоем куба.
Если вы ошиблись в проводах, это несколько исправимо в коде, но это может потребовать много работы, поэтому постарайтесь привести их в правильном порядке.
Хорошо, все собрано и готово к работе, давайте возьмем некоторый код и попробуем его.

Шаг 6: Код

Код для этого куба сделан иначе, чем большинство, я объясню, как адаптировать.
Большая часть кода куба использует прямую запись в столбцы. В коде написано, что столбец X должен быть освещен, поэтому дайте ему немного сока, и все готово. Это не работает при использовании чипов контроллера.
Микросхемы контроллера используют 4 провода для связи с Arduino: SPI-in, Clock, Latch и Enable. Я заземил контакт разрешения (контакт 21) через резистор (RL), поэтому выход всегда включен. Я никогда не использовал Enable, поэтому вынул его из кода. Вход SPI - это данные, поступающие с Arduino, часы - это сигнал синхронизации между ними во время разговора, а Latch сообщает контроллеру, что пришло время принимать новые данные.
Каждый выход для каждого чипа контролируется 16-битным двоичным числом. Например; отправка 1010101010101010 на контроллер приведет к тому, что загорятся все остальные светодиоды на контроллере. Ваш код должен пройти через все, что нужно для отображения и построить это двоичное число, а затем отправить его на чип. Это проще, чем кажется. Технически это кучка побитовых сложений, но я потрясен побитовой математикой, поэтому делаю все в десятичном виде.
Десятичные числа для первых 16 битов выглядят следующим образом:
1 << 0 == 1
1 << 1 == 2
1 << 2 == 4
1 << 3 == 8
1 << 4 == 16
1 << 5 == 32
1 << 6 == 64
1 << 7 == 128
1 << 8 == 256
1 << 9 == 512
1 << 10 == 1024
1 << 11 == 2048
1 << 12 == 4096
1 << 13 == 8192
1 << 14 == 16384
1 << 15 == 32768
Это означает, что если вы хотите подсветить выходы 2 и 10, вы добавляете десятичные дроби (2 и 512) вместе, чтобы получить 514. Отправьте 514 на контроллер, и выходы 2 и 10 загорятся.
Но у нас более 16 светодиодов, так что это немного сложнее. Нам нужно построить дисплейную информацию для 4 фишек. Что так же просто, как построить его за 1, просто сделайте это еще 3 раза. Я использую массив глобальных переменных для хранения управляющих кодов. Так проще.
Когда у вас есть все 4 кода дисплея, готовые к отправке, отпустите защелку (установите ее на НИЗКИЙ) и начните отправку кодов. Вы должны отправить последний в первую очередь. Отправьте коды для микросхемы 4, затем 3, затем 2, затем 1, затем снова установите фиксатор на ВЫСОКИЙ. Так как контакт разрешения всегда соединен с землей, дисплей немедленно меняется.
Большая часть кода куба, который я видел в Instructables и в целом в Интернете, состоит из гигантского блока кодового набора для выполнения предварительно заданной анимации.Это прекрасно работает для небольших кубов, но при этом необходимо хранить, читать и отправлять 512 бит двоичного кода каждый раз, когда вы хотите изменить отображение, занимает много памяти. Arduino не может обрабатывать больше, чем несколько кадров. Поэтому я написал несколько простых функций для отображения куба в действии, которые основаны на расчетах, а не на предустановленных анимациях. Я включил небольшую анимацию, чтобы показать, как это делается, но я оставлю вам возможность создавать свои собственные дисплеи.
cube8x8x8.pde - это код Arduino. Я планирую продолжить добавлять функции в код и буду периодически обновлять программу.
matrix8x8.pde это программа в обработке для создания ваших собственных дисплеев. Первое указанное число входит в pattern1 , второе в pattern2 и т. Д.
Лист данных для A6276EA доступен по адресу:
http://www.allegromicro.com/en/Products/Part_Numbers/6276/6276.pdf

Шаг 7: покажи свою работу

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


Как видите, мой кубик вышел немного кривым. Я не очень заинтересован в создании другого, хотя, так что я буду жить с этим криво. У меня есть пара мертвых точек, которые мне нужно изучить. Это может быть плохое соединение, или мне может понадобиться новый чип контроллера.
Я надеюсь, что этот Instructable вдохновит вас на создание собственного куба или какого-нибудь другого светодиодного проекта с использованием A6276AE. Разместите ссылку в комментариях, если вы ее создадите.
Я пытался решить, куда идти отсюда. Плата контроллера также будет управлять RGB-кубом 4x4x4, так что это возможно. Я думаю, что было бы неплохо сделать сферу и то, как у меня написан код, это было бы не слишком сложно сделать.