Оглавление:

Светодиодная RGB-подсветка Arduino Nano Baised с ИК-управлением: 5 шагов
Светодиодная RGB-подсветка Arduino Nano Baised с ИК-управлением: 5 шагов

Видео: Светодиодная RGB-подсветка Arduino Nano Baised с ИК-управлением: 5 шагов

Видео: Светодиодная RGB-подсветка Arduino Nano Baised с ИК-управлением: 5 шагов
Видео: Подключение нагрузки к ардуино. Видеоуроки ардуино для начинающих. 2024, Ноябрь
Anonim
Arduino Nano Baised RGB-светодиод с ИК-управлением
Arduino Nano Baised RGB-светодиод с ИК-управлением

В этом небольшом проекте я хочу показать вам, как я построил RGB-светодиод на базе Arduino, который управляется ИК-пультом и питается от USB-кабеля.

Запасы

1. Светодиод RGB

2. ИК-приемник

3. USB-кабель.

4. Arduino nano

5. ИК-пульт

6. некоторые кабели

7. Резисторы 50-100 Ом (я использую резисторы 47 Ом, но особой разницы нет)

Шаг 1. Выберите пульт

Выберите свой пульт
Выберите свой пульт

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

Шаг 2: сначала создайте его на хлебной доске (не обязательно, но рекомендуется)

Сначала постройте его на хлебной доске (не обязательно, но рекомендуется)
Сначала постройте его на хлебной доске (не обязательно, но рекомендуется)
Сначала постройте его на хлебной доске (не обязательно, но рекомендуется)
Сначала постройте его на хлебной доске (не обязательно, но рекомендуется)

Теперь соберите схему на макетной плате.

соединения:

Заземление светодиода RGB> Заземление Arduino nano

RGB LED Красный> Цифровой вывод 5 Arduino nano

Светодиод RGB зеленый> Цифровой контакт 6 Arduino nano

Синий светодиод RGB> Цифровой вывод 9 Arduino nano

USB GND> Arduino nano GND

USB 5 В> Arduino nano 5 В

Контакт 1 ИК-приемника> Контакт 4 Arduino nano Digital

Контакт 2 ИК-приемника> Arduino nano GND

Контакт 3 ИК-приемника> Arduino nano 5v

(все подключения показаны выше)

(каждый цветной вывод RGB светодиода последовательно подключен к резисторам)

Шаг 3: Код

код следующий:

Вот библиотека, которую я использовал.

#включают

int IR_Recv = 4; // вывод ИК-приемника

int Rval = 0; int Gval = 0; int Bval = 0; int RvalDemo = 0; int GvalDemo = 0; int BvalDemo = 0; int R = 5; // Красный вывод int G = 6; // Зеленый вывод int B = 9; // Синий пин #define Rup1 1976685926 // увеличивает яркость красного #define Rup2 3772818013 // увеличивает яркость красного #define Rdown1 3843765582 // уменьшает яркость красного #define Rdown2 3772813933 // уменьшает яркость красного #define Gup1 3772797613 // увеличивает яркость зеленого #define Gup2 3774104872 // увеличивает яркость зеленого #define Gdown1 3772834333 // снижает яркость зеленого #define Gdown2 1784778242 // снижает яркость зеленого #define Bup1 3980777284 // делает синий яркость увеличивается #define Bup2 3772781293 // увеличивает яркость синего #define Bdown1 3772801693 // снижает яркость синего #define Bdown2 3361986248 // уменьшает яркость синего // ПРИМЕЧАНИЕ: ВЫ ДОЛЖНЫ ИЗМЕНИТЬ НОМЕРА НА ПУЛЬТ ДИСТАНЦИОННОГО УПРАВЛЕНИЯ !!! ! // У меня есть 2 одинаковых ключа, например Rup1 и Rup2. потому что // мой пульт выводит 2 числа, когда вы нажимаете одну клавишу. // в вашем случае вы можете поместить одинаковые числа в Rup1 и Rup2, Gup1 и Gup2 и так далее. // Когда вы нажимаете клавишу, номер должен появиться в последовательном мониторе, // Это то, что вы должны ввести в разделе "#define". IRrecv irrecv (IR_Recv); decode_results результаты; void setup () {TCCR2A = _BV (COM2A1) | _BV (COM2B1) | _BV (WGM21) | _BV (WGM20); TCCR2B = _BV (CS22); irrecv.enableIRIn (); pinMode (R, ВЫХОД); pinMode (G, ВЫХОД); pinMode (B, ВЫХОД); Serial.begin (9600); } void loop () {if (irrecv.decode (& results)) {long int decCode = results.value; switch (results.value) {/////////// RED case Rup1: Rval = Rval + 10; перерыв; case Rup2: Rval = Rval + 10; перерыв; case Rdown1: Rval = Rval - 10; перерыв; case Rdown2: Rval = Rval - 10; перерыв; //////////// ЗЕЛЕНЫЙ case Gup1: Gval = Gval + 10; перерыв; case Gup2: Gval = Gval + 10; перерыв; case Gdown1: Gval = Gval - 10; перерыв; case Gdown2: Gval = Gval - 10; перерыв; ///////////// СИНИЙ корпус Bup1: Bval = Bval + 10; перерыв; case Bup2: Bval = Bval + 10; перерыв; case Bdown1: Bval = Bval - 10; перерыв; case Bdown2: Bval = Bval - 10; перерыв; //////////////////////////////////////} irrecv.resume (); } если (Rval> 255) (Rval = 255); если (Rval 255) (Gval = 255); если (Gval 255) (Bval = 255); если (Bval <0) (Bval = 0); analogWrite (R, Rval); analogWrite (G, Gval); analogWrite (B, Bval); Serial.println (результат.значение); delayMicroseconds (1); }

Шаг 4: Завершение

Отделка
Отделка
Отделка
Отделка
Отделка
Отделка

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

Если у вас есть вопросы или ошибки, обязательно сообщите мне, я сделаю все возможное, чтобы помочь вам исправить ошибку. Спасибо за прочтение.

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