Я покажу вам, как я сделал сам куб, плату контроллера и, наконец, код, чтобы он сиял.
Расходные материалы:
Шаг 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, так что это возможно. Я думаю, что было бы неплохо сделать сферу и то, как у меня написан код, это было бы не слишком сложно сделать.