JoyLED — нестандартное управление RGB-светодиодом

Как-то раз пришла мне в голову идея — что, если управлять светодиодом через джойстик-грибок? Или целой светодиодной лентой?

Я решил воплотить эту идею в жизнь и использовал плату Arduino.

Чтобы собрать такое устройство, нам понадобятся:

RGB светодиод — это три светодиода с общим анодом или катодом. В зависимости от подводимого тока на каждую ногу светодиода, меняется его оттенок. Он использует систему RGB — красный, зелёный и синий — эта система используется в большинстве дисплеев и мониторов компьютеров и различных «умных устройств». Я использую готовую печатную плату со встроенными резисторами — можно смело подводить от 5 до 7 вольт. Джойстик-грибок использует два аналоговых входа — они отвечают за оси X и Y — влево-вправо и вверх-вниз. Также ему необходимы питание и земля.

Схема собирается следующим образом: ножки светодиода R, G, B подключаются к пинам 9, 10, 11 соответственно; ножка минуса подключается к пину GND. Ножка джойстика VCC подключается к пину 5V, ножка GND — к земле, ножка оси X (VRx) подключается к аналоговому пину A0. Ножка оси Y (VRy) не подключается, потому что мы не используем ось Y.

Схема работы программы такова: если плата засекает движение джойстика влево, светодиод меняет свой оттенок ближе к красному; если вправо — ближе к синему. Движения вниз и вверх в данном проекте не используются. Если мы отключим джойстик, светодиод будет показывать спектральные цвета от красного к фиолетово-розовому.

Для того, чтобы реализовать это, нам необходимо написать специальную функцию — ledRgb. О ней будет рассказано в комментариях к коду. Также в коде вы можете заметить функции работы с serial-портом — они остались после отладки, Вы можете ими воспользоваться, чтобы отладить и видоизменить программу.

Это устройство может использоваться для управления целой светодиодной лентой, а не одним RGB-светодиодом. Для этого необходимо вместо светодиода подключить транзисторы, которые будут управлять током для светодиодной ленты.


Прикрепленные файлы:

Добавить комментарий

Ваш адрес email не будет опубликован.