Светодиодная лента RGB с инвертированным ШИМ
Эта ошибка/глупость-моя-сама/проблема убивает меня:
Я создал контроллер RGB-ленты, который циклически переключается по спектру аддитивных цветов RGB, поворачивая потенциометр.
У меня есть потенциометр, подключенный к моему Arduino Nano v3 (от AZ-Delivery, а не официальный Arduino). Затем у меня есть усилитель RGB, подключенный к Arduino с каждой фазой (R, G, B, V+) и к внешнему источнику питания (12 В при 2 А макс.).
Я сократил свою программу и удалил все преобразования значений в цвета, поскольку они не имеют никакого отношения к проблеме:
void loop() {
ColorVal = analogRead(pinPot); //считывание значения потенциометра цвета
ColorByte = map(ColorVal, 0, 1023, 0, 255); //Масштабирует от 0-1023 до 0-255
// преобразование значения потенциала в цвет
// ...
// запись через ШИМ на светодиод
analogWrite(pinR, R);
analogWrite(pinG, G);
analogWrite(pinB, B);
}
Моя проблема: Теоретически можно было бы ожидать, что система будет показывать белый цвет, когда все переменные (R, G и B) установлены на 255. Однако она ведет себя наоборот. Когда все значения установлены на 255, она выключена, и наоборот. Другой пример: когда R = 255, G = 0 и B = 0, зеленый и синий горят, а красный выключен.
Я думал, что это связано с полярностью или чем-то еще, но я не могу этого выяснить.
@Max, 👍1
1 ответ
Лучший ответ:
Светодиодная лента RGB имеет общий анод (V+). Когда вы подаете 12 В на R, G или B, светодиоды имеют 12 В с обеих сторон, поэтому на них нет напряжения и тока.
А если подать 0 В, то на них будет 12 В, и они загорятся.
Чтобы исправить это, просто инвертируйте значение ШИМ в вашем коде:
analogWrite(255-pinR, R);
analogWrite(255-pinG, G);
analogWrite(255-pinB, B);
- Библиотека FastLED: Как настроить яркость одного пикселя в абсолютном масштабе?
- Как управлять встроенными светодиодами Arduino Nano 33 BLE Sense?
- Адресная RGB-полоса работает по отдельности, но не может настроить все светодиоды на полностью белый цвет.
- FastLED fill_rainbow - Неожиданный красный пиксель
- Как читать текстовый файл построчно
- Быстродействующий массив fill_solid
- Управление светодиодной лентой с помощью ИК-контроллера с помощью Arduino
- Устранение неполадок светодиодной ленты WS2812b с кнопкой включения/выключения