Оглавление:

Плата с праздничным орнаментом: 3 шага (с изображениями)
Плата с праздничным орнаментом: 3 шага (с изображениями)

Видео: Плата с праздничным орнаментом: 3 шага (с изображениями)

Видео: Плата с праздничным орнаментом: 3 шага (с изображениями)
Видео: Понравилась девушка 🥰 #shorts 2024, Ноябрь
Anonim
Плата с праздничным орнаментом
Плата с праздничным орнаментом
Плата с праздничным орнаментом
Плата с праздничным орнаментом
Плата с праздничным орнаментом
Плата с праздничным орнаментом

Привет всем!

Сейчас то время года, и сезон обмена подарками уже почти наступил. Мне лично нравится создавать вещи и делиться ими с семьей. В этом году я решил сделать праздничные украшения с помощью светодиодов Atting85 и некоторых WS2812C 2020. Орнамент имеет диаметр примерно 80 мм, так что это украшение для дерева разумного размера. Если вы не любитель дерева, то знаете что, оно также станет отличным украшением стола. Светодиоды WS2812C 2020 - невероятно яркие маленькие жукеры, поэтому не беспокойтесь о том, что они слишком тусклые, ха-ха. Я тестировал его при 3,3 вольте при потреблении тока 0,013 ампер, тогда как для 5 вольт потребление тока составляло 0,023 ампера. Вы можете запитать эту плату прямым напряжением 5 В на задней панели или через разъем micro USB на задней панели. Я мог бы подключить это к своему ноутбуку и включить его. На задней панели также есть опция для питания его от других источников питания с максимальным напряжением 30 вольт, но если доверять таблице данных для регулятора 78L05 5V, я бы не стал заходить так далеко.

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

Если вы заинтересованы в покупке готовой печатной платы или просто самой печатной платы, посетите мой магазин tindie.

Запасы

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

Инструменты

- Тепловая пушка (основной инструмент) / паяльник (исправление ошибок)

- Пинцет ESD

- Изопропиловый спирт

- Трафарет SMT (настоятельно рекомендуется)

- Паяльная паста (я использую низкотемпературную бессвинцовую паяльную пасту, продаваемую на Amazon)

Запасы

- x10 светодиодов WS2812 2020

- 1 микроконтроллер Attiny85

- Конденсаторы x11 0,1 мкФ 0603

- x1 0,1 мкФ 0402 конденсатор (можно обойтись с конденсатором 0603)

- x1 разъем SMD Micro USB

- x1 резистор 1,5 кОм

- x1 4,7 мкФ 0805 конденсатор

- Регулятор x1 78L05 5V

- x1 SOD123 Diode (я использовал провод в качестве замены, поскольку в этом нет необходимости, но я забыл удалить его при разработке платы)

- x2 диода SOD323

- Резисторы x2 66,5 Ом (здесь также можно использовать резисторы x2 24 Ом, я считаю, что подойдет любая подходящая пара - не цитируйте меня)

По желанию

- x1 резистор 24 Ом

- x1 резистор 30 Ом

(Они предназначены для делителя напряжения, если вы хотите измерить входное напряжение для монитора низкого напряжения - просто вариант)

Шаг 1: Сборка

сборка
сборка
сборка
сборка
сборка
сборка
сборка
сборка

Процесс сборки довольно прост. Убедитесь, что вы правильно ориентируете детали, и у вас не должно возникнуть проблем. Знаете что, если вы похожи на меня, и с первого раза ничего не работает… буквально ничего, в конце я добавляю несколько шагов по устранению неполадок.

Ну, обо всем по порядку, вам понадобится этот трафарет сейчас … Я приложил PDF-файл печатной платы в масштабе 1: 1, чтобы вы могли растрировать его на своем собственном лазерном резаке. Если тебе нужен один разрез, напиши мне, я тоже это сделаю. В противном случае, делая это вручную, вы получите один опытный bada $$.

Если у вас есть опыт изготовления печатных плат, здесь вы сможете закрепить свой трафарет, нанести паяльную пасту бла-бла-бла, и вы получите ее. Для тех, кто никогда этого не делал, не беспокойтесь, посмотрите пару видео на YouTube. Перед нанесением паяльной пасты и легкого лимонного сока убедитесь, что ваше выравнивание идеально.

Осторожно удалите трафарет и приступим к размещению деталей !!

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

- Темно-фиолетовый = 0,1 мкФ 0603

- Синий = диоды

- Лаймовый зеленый = 4,7 мкФ 0805 (возможно, можно было бы использовать 0603)

- Пурпурный = проволочный мост

- Розовый = резисторы делителя напряжения

- Красный = светодиоды WS2812C (обратите внимание на их ориентацию, более темная часть будет внизу)

- Желтый = 78L05 регулятор 5V 100mA

Вы хотите знать, для чего нужна другая желтая маркировка? Вы уверены? Что ж… ЭТО ОШИБКА, ОК! Я вставил чертово заземленное отверстие в дорожку сигнала, буквально пощечину посередине ОК. ПОЧЕМУ… Я НЕ ЗНАЮ.

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

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

Шаг 2: кодирование

Кодирование
Кодирование
Кодирование
Кодирование

Поэтому, прежде чем я разработал это, я подумал: «О, маленькие светодиоды WS2812, они должны использовать тот же код, что и WS2812b, это будет прогулка в парке!» НЕПРАВИЛЬНЫЙ

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

После небольшого момента "Oh $ hit" я нашел этот блог Джоша Левина. Так что поблагодари его за то, что он помог мне разобраться в этом. Я использовал значительную часть его кода и модифицировал его для работы с этими платами. Загляните в его блог, если хотите понять, как работает этот код. Код, который я опубликовал, производит эффект радуги. Это возможно, поэтому сделайте сплошные цвета, если это вам нравится.

Одна мелочь - я не могу понять, как уменьшить яркость этих светодиодов, поскольку они действительно яркие. Может быть, кто-нибудь оставит комментарий и поможет мне.

#include #define PIXELS 3000 #define PIXEL_PORT PORTB #define PIXEL_DDR DDRB #define PIXEL_BIT 0 #define T1H 700 #define T1L 320 #define T0H 320 #define T0L 700 #define RES 300000 #define_SCL0000 #define_SCL_S_S_Define_S_Define_S_S_D_S_D_S_S_D_S_D_S_D_S_D_S_D_S_Define #define NS_PER_CYCLE (NS_PER_SEC / CYCLES_PER_SEC) #define NS_TO_CYCLES (n) ((n) / NS_PER_CYCLE)

inline void sendBit (bool bitVal) {

if (bitVal) {asm volatile ("sbi% [порт],% [bit] n / t" ".rept% [onCycles] n / t" "nop / n / t" ".endr / n / t "" cbi% [порт],% [бит] n / t "".rept% [offCycles] n / t "" nop / n / t "".endr / n / t ":: [порт]" I "(_SFR_IO_ADDR (PIXEL_PORT)), [бит]" I "(PIXEL_BIT), [onCycles]" I "(NS_TO_CYCLES (T1H) - 2), [offCycles]" I "(NS_TO_CYCLES (T1L) - 2));

} еще {

asm volatile ("sbi% [порт],% [бит] n / t" ".rept% [onCycles] n / t" "nop / n / t" ".endr / n / t" "cbi% [порт], % [бит] n / t "".rept% [offCycles] n / t "" nop / n / t "".endr / n / t ":: [порт]" I "(_SFR_IO_ADDR (PIXEL_PORT)), [бит] «I» (PIXEL_BIT), [onCycles] «I» (NS_TO_CYCLES (T0H) - 2), [offCycles] «I» (NS_TO_CYCLES (T0L) - 2));

} }

inline void sendByte (байт символа без знака) {for (бит символа без знака = 0; бит <8; бит ++) {sendBit (bitRead (байт, 7)); байт << = 1; }}

void ledsetup () {

bitSet (PIXEL_DDR, PIXEL_BIT); }

inline void sendPixel (unsigned char r, unsigned char g, unsigned char b) {

sendByte (г); // Neopixel хочет, чтобы цвета были сначала в зеленом, затем в красном, а затем в синем порядке sendByte (r); sendByte (б); }

void show () {

_delay_us ((RES / 1000UL) + 1); // Округление в большую сторону, поскольку задержка должна быть _на_ наименьшей_ этой длинной (слишком короткая может не сработать, слишком длинная - не проблема)}

void showColor (unsigned char r, unsigned char g, unsigned char b) {

cli (); для (int p = 0; p

8;

шаг беззнакового символа = currentPixelHue & 0xff; переключатель (фаза) {case 0: sendPixel (~ step, step, 0); перерыв; случай 1: sendPixel (0, ~ шаг, шаг); перерыв;

случай 2:

sendPixel (шаг, 0, ~ шаг); перерыв; } currentPixelHue + = pixelAdvance; } sei (); Показать(); firstPixelHue + = frameAdvance; }}

void setup () {

ledsetup (); }

void loop () {

rainbowCycle (1000, 10, 10); возвращение; }

Шаг 3: все готово

Все сделано
Все сделано
Все сделано
Все сделано
Все сделано
Все сделано

Надеюсь, на данный момент все работает, но если это не так, давайте закончим поиск неисправностей.

1. Плата не распознается Arduino - убедитесь, что у вас установлена библиотека digispark и вы прочитали, как использовать платы digispark.

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

3. Плата по-прежнему не работает. Убедитесь, что ваш кабель micro-USB поддерживает передачу данных, а также питание, а не все кабели. Вы можете себе представить, что я понял это на собственном горьком опыте.

4. По-прежнему ничего - ваши диоды могут быть перевернуты - проверьте с помощью мультиметра правильную ориентацию.

5. Странные мигающие светодиоды. Либо это проблема кода, либо один из светодиодов неправильно сидит на сигнальной панели.

6. Последние 3 светодиода перепутались - Ах! вы столкнулись с моей дизайнерской ошибкой. Убедитесь, что отверстие для заземления просверлено - проверив с помощью мультиметра целостность цепи между сигналом и землей. Затем убедитесь, что ваш мостовой провод также изолирован от земли.

7. Все еще не работает - честно говоря, у меня нет решений, напишите мне.

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

Лучший, Ник

Рекомендуемые: