Arduino — управление 8 RGB-светодиодами (вопрос новичка)

Первый раз постер здесь. У меня есть проект Arduino Uno, для управления которым потребуется 8 светодиодов RGB. Они будут включаться и выключаться с помощью кнопок, чередуя красный, затем зеленый, затем синий, а затем выключаются. Несколько светодиодов также должны время от времени гореть вместе. Это будет часть электронного замка, то есть клавиатура, которая вместо клавиш имеет цветные светодиоды для ввода пароля. Однако я не использую физический Arduino, я делаю это в среде 123D Circuits (созданной AutoDesk), поэтому я ограничен в том, какие части я могу использовать.

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

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

Вот как я пытался подключить его: http://postimg.org/image/gu4cwdv0n/full/ , следуя инструкциям руководства. (может быть до абсурда сложно увидеть, что происходит из-за ужасного графического интерфейса для проволочных перемычек на платформе)

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

РЕДАКТИРОВАТЬ - у меня есть 8 контактов, которые можно использовать для этих светодиодов. Кроме того, если нет альтернативы Charlieplexing, может ли кто-нибудь объяснить или сравнить, чем светодиоды RGB отличаются от обычных светодиодов? Я думаю, что так я мог бы лучше понять это, так как я думаю, что это то, что меня беспокоит: общий катод, а не 3 катода в 3 разноцветных светодиодах.

Заранее спасибо.

Мне кажется, что вы по уши ввязываетесь в проект, который слишком сложен для ваших нынешних способностей. Почему бы вам не начать с 1 светодиода RGB и контролировать его. Научитесь читать схемы, но начните с самых простых. Вы можете попробовать что угодно, но если вы не понимаете, как это работает, вы не сможете заставить это работать самостоятельно. Так что начните с чего-то более простого и учитесь на этом. Когда вы поймете основы, решить то, что вы хотите сейчас, будет намного проще.
Я это прекрасно знаю, ха-ха. Если бы мой учитель думал так же. Это мой первый урок информатики в университете, но он решил начать работать с Arduino. Я уже могу управлять одним светодиодом RGB. Я могу управлять таким количеством RGB-светодиодов, сколько у меня есть контактов. Чего я не понимаю, так это каких-то плексов.
Пара комментариев к вашему рисунку Fritzing: Катоды светодиодов с общим катодом должны подключаться напрямую к земле Arduino без резистора. У вас есть красные провода, подключенные к Arduino 5V и GND. Традиционно мы используем черный цвет для заземления и красный для положительного источника питания — вы не запутаете себя и других, если будете придерживаться этой традиции.
@PeterBennett Ну, я просто сделал это так, как сказал человек, написавший Instructable, на который я ссылался. Я считаю, что это как-то связано с Чарлиплексированием и тем, как оно работает с логикой трех состояний. Вот почему я не использовал обычное цветовое кодирование. Я думаю, что я должен добавить что-то к моему сообщению, а также...
Чарли плексировать светодиоды с общими выводами намного сложнее, чем с отдельными анодами и катодами. Вместо этого вы можете использовать сдвиговый регистр или расширитель ввода/вывода.
@ IgnacioVazquez-Abrams Доступный сдвиговый регистр (не знаю о расширителе ввода-вывода) - 74HC595. Я предполагаю, что подойдет любой сдвиговый регистр, верно?
Двухтактные выходы будут работать либо со светодиодами CC, либо со светодиодами CA. Выходы OC будут работать только со светодиодами CA.
@IgnacioVazquez-Abrams хорошо, тогда мой будет работать отлично! Большое спасибо!

Ответы (2)

Самый простой способ управлять таким количеством RGB-светодиодов — использовать полосу светодиодов, которая уже включает собственный контроллер, например WS2812B. Кроме того, уже существуют библиотеки для многих моделей «адресных» светодиодов. Оттуда нужно просто создать экземпляр объекта для правильного количества светодиодов, установить для них нужные цвета, а затем вызвать правильный метод для их одновременной настройки.

NeoPixel Stick

light_ws2812

К сожалению, ни один из них не доступен в 123D Circuits, и, как я уже сказал, я должен работать в виртуальной среде (в моем университете не хватает комплектов Arduino для всех классов, и мой учитель забежал вперед, чтобы попытаться научить нас «основам»)
Ах, так вы на самом деле не строите его, вы просто симулируете его.

Вы подключаете все светодиоды к одному контакту Arduino? Это может пойти очень плохо, так как Arduino max. ток составляет 40 мАч на контакт. Лучше использовать транзистор, который работает как цифровой переключатель. Когда база получает сигнал, она переключается. Если вы хотите адресовать каждый светодиод индивидуально, вы можете использовать светодиод со встроенным контроллером, например WS2812, или использовать сдвиговый регистр (например, 74hc595 ) . На сайте также есть принципиальная схема подключения сдвигового регистра и светодиодов. лично я не вижу причин мультиплексировать светодиоды, когда вы используете 8 или меньше.

общий катод или анод только для простоты. когда вы будете использовать обычные светодиоды, у вас будет 6 контактов (3 раза анод и 3 раза катод). Но вы бы просто управляли одним контактом (катодом или анодом), и не было бы необходимости иметь светодиоды RGB с 6 контактами. Таким образом, производитель либо соединяет все катоды, либо аноды вместе, что дает им название: общий катод или анод. с общим анодом вы должны подключить общий контакт (часто самый длинный контакт) с последовательным резистором к источнику напряжения, а другие контакты к земле, чтобы зажечь их. это означает, что когда вы используете цифровую запись (PIN, LOW), он загорается. С обычным катодным светодиодом вы подключаете длинный контакт (катод) к земле, а каждый анод (другие контакты) получает последовательный резистор, и вам нужно подтянуть их к высокому уровню, чтобы они загорелись (подключите их к источнику напряжения). так с digitalWrite(PIN,