В этом проекте мы собираемся подключить 5 светодиодов RGB (красный, зеленый, синий) к Arduino Uno. Эти светодиоды подключены параллельно для уменьшения использования PIN-кода Uno.
Типичный светодиод RGB показан на рисунке ниже:
Светодиод RGB будет иметь четыре контакта, как показано на рисунке.
PIN1: отрицательная клемма цвета 1 или положительная клемма цвета 1
PIN2: общий положительный для всех трех цветов или общий отрицательный для всех трех цветов.
PIN3: отрицательная клемма цвета 2 или положительная клемма цвета 2
PIN4: отрицательная клемма цвета 3 или положительная клемма цвета 3
Таким образом, существует два типа светодиодов RGB: один с общим катодом (общий отрицательный), а другой - с общим анодным типом (общий положительный). В CC (общий катод или общий отрицательный вывод) будет три положительных вывода, каждый вывод представляет цвет, а один отрицательный вывод - все три цвета. Внутренняя схема светодиода CC RGB может быть представлена ниже.
Если мы хотим, чтобы КРАСНЫЙ свет был выше, нам нужно запитать вывод КРАСНОГО светодиода и заземлить общий минус. То же самое и со всеми светодиодами. В CA (общий анод или общий положительный) будет три отрицательных вывода, каждый вывод представляет цвет, а один положительный вывод - все три цвета. Внутреннюю схему светодиода CA RGB можно представить, как показано на рисунке.
Если мы хотим, чтобы КРАСНЫЙ свет был наверху, нам нужно заземлить контакт КРАСНОГО светодиода и запитать общий плюс. То же самое и со всеми светодиодами.
В нашей схеме мы собираемся использовать тип CA (Common Anode или Common Positive). Для подключения 5 светодиодов RGB к Arduino нам обычно требуется 5x4 = 20 контактов, поэтому мы собираемся уменьшить это количество контактов до 8, подключив светодиоды RGB параллельно и используя метод, называемый мультиплексированием.
Составные части
Оборудование: UNO, блок питания (5 В), резистор 1 кОм (3 шт.), Светодиод RGB (красный, зеленый, синий) (5 шт.)
Программное обеспечение: Atmel studio 6.2 или Aurdino nightly.
Схема и объяснение работы
Схема подключения для интерфейса RGB LED Arduino показана на рисунке ниже.
Теперь перейдем к сложной части, допустим, мы хотим включить КРАСНЫЙ светодиод в SET1 и ЗЕЛЕНЫЙ светодиод в SET2. Мы запитываем PIN8 и PIN9 UNO и заземляем PIN7, PIN6.
В этом потоке у нас будет КРАСНЫЙ в первом SET и ЗЕЛЁНЫЙ во втором SET ON, но у нас будет ЗЕЛЕНЫЙ в SET1 и КРАСНЫЙ в SET2 ON вместе с ним. По простой аналогии мы можем увидеть, что все четыре светодиода замыкают цепь с указанной выше конфигурацией, и поэтому все они светятся.
Поэтому, чтобы устранить эту проблему, мы будем включать только один SET за раз. Скажем, при t = 0 м SEC SET1 включен. При t = 1 м сек SET1 выключен, а SET2 включен. Снова при t = 6 м сек SET5 выключается, а SET1 включается. Это продолжается.
Уловка в том, что человеческий глаз не может уловить частоту более 30 Гц. То есть, если светодиод постоянно горит и гаснет с частотой 30 Гц или более. Глаз видит, что светодиод постоянно включен. Тем не менее, это не так. Светодиод будет постоянно включаться и выключаться. Этот метод называется мультиплексированием.
Проще говоря, мы запитаем каждый общий катод 5 SET по 1 миллисекунде, так что через 5 миллисекунд мы завершим цикл, после этого цикл снова начнется с SET1, это будет продолжаться бесконечно. Поскольку светодиодные индикаторы включаются и выключаются слишком быстро. Человек предсказывает, что все устройства включены постоянно.
Поэтому, когда мы запитываем SET1 при t = 0 миллисекунд, мы заземляем КРАСНЫЙ контакт. При t = 1 миллисекунда мы запитываем SET2 и заземляем ЗЕЛЕНЫЙ вывод (в это время КРАСНЫЙ и СИНИЙ подтянуты вверх). Петля идет быстро, и глаз видит КРАСНОЕ свечение в ПЕРВОМ НАБОРЕ и ЗЕЛЁНОЕ свечение во ВТОРОМ НАБОРЕ.
Вот как мы программируем светодиод RGB: мы будем медленно светить всеми цветами в программе, чтобы увидеть, как работает мультиплексирование.