Управление общей яркостью RGBW светодиода

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

И снова здравствуйте, уважаемые ардуино-гуру...

Накропал скетч для управления RGBW светодиодом по отдельности от потенциометров...

Но не могу управлять общей яркостью...так же с потенциометра...

ПОМОГИТЕ!!!

// потенциометрами pot1 - pot4 регулируем ШИМ каналы RGBW светодиода

// pot5 управляет общей яркостью

// даём имена пинов со светодиодом

// и потенциометрами

#define led1 3
#define led2 5
#define led3 6
#define led4 9
#define pot1 A0
#define pot2 A1
#define pot3 A2
#define pot4 A3
#define pot5 A4
void setup() {
  // пин со светодиодом — выход

  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  // пин с потенциометром - вход

  pinMode(pot1, INPUT);
  pinMode(pot2, INPUT);
  pinMode(pot3, INPUT);
  pinMode(pot4, INPUT);
  pinMode(pot5, INPUT);     //управление общей яркостью
}

void loop() {
  // объявляем переменную a,b,c,d,e

  int a;
  int b;
  int c;
  int d;
  int e;

  // считываем напряжение с потенциометра:

  // будет получено число от 0 до 1023

  // делим его на 4, получится число в диапазоне

  // 0-255 (дробная часть будет отброшена)

  a = analogRead(pot1) / 4;
  b = analogRead(pot2) / 4;
  c = analogRead(pot3) / 4;
  d = analogRead(pot4) / 4;
  e = analogRead(pot5) / 4;
  // выдаём результат на светодиод

  analogWrite(led1, a);
  analogWrite(led2, b);
  analogWrite(led3, c);
  analogWrite(led4, d);

}

 

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

И не судите пожалуйста строго...я не волшебник...я только учусь...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Я что-то и попытки не вижу как-то поуправлять. Вы пытались? В каких строках кода?

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Здесь оставил что работает...

Даже через map запустил енту игрушку...дальше мыслей нет...грызу теорию...

ну не в шашки же играть, переставляя с места на место куски кода...

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Понятно. Ну, грызите.

ulis
ulis аватар
Offline
Зарегистрирован: 09.03.2011

Xtro пишет:

Накропал скетч для управления RGBW светодиодом по отдельности от потенциометров...

Но не могу управлять общей яркостью...так же с потенциометра...

// потенциометрами pot1 - pot4 регулируем ШИМ каналы RGBW светодиода

// pot5 управляет общей яркостью

// даём имена пинов со светодиодом

// и потенциометрами

#define led1 3
#define led2 5
#define led3 6
#define led4 9
#define pot1 A0
#define pot2 A1
#define pot3 A2
#define pot4 A3
#define pot5 A4
void setup() {
  // пин со светодиодом — выход

  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  // пин с потенциометром - вход

  pinMode(pot1, INPUT);
  pinMode(pot2, INPUT);
  pinMode(pot3, INPUT);
  pinMode(pot4, INPUT);
  pinMode(pot5, INPUT);     //управление общей яркостью
}

void loop() {
  // объявляем переменную a,b,c,d,e

  int a;
  int b;
  int c;
  int d;
  int e;

  // считываем напряжение с потенциометра:

  // будет получено число от 0 до 1023

  // делим его на 4, получится число в диапазоне

  // 0-255 (дробная часть будет отброшена)

  a = analogRead(pot1) / 4;
  b = analogRead(pot2) / 4;
  c = analogRead(pot3) / 4;
  d = analogRead(pot4) / 4;
  e = analogRead(pot5) / 4;
  // выдаём результат на светодиод

  analogWrite(led1, a);
  analogWrite(led2, b);
  analogWrite(led3, c);
  analogWrite(led4, d);

}

Что-то какое-то несоответсвие ... rgbw - всего 4 светодиода в одном корпусе или нет? Зачем тогда pot5, который, впрочем, не используется?

1. Убедитесь, что ваша ардуино имеет 4 шим выхода (в большинстве, конечно, оно так) 

2. Попробуйте просто управлять белым каналом не результатом чтения с аналогового входа, а просто числом, чтобы убедится, что белый канал работает

Ну и по мелочи - зачем в цикле определять переменные? Давайте именам переменных  понятные имена ... например, ledRed, ledGreen  и т.д.

Voodoo Doll
Voodoo Doll аватар
Offline
Зарегистрирован: 18.09.2016
 analogWrite(led1, (byte)(a*e/256.0));

и т. д.

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Так в этом-то и дело...все каналы нормально регулируются...

не могу реализовать общую регулировку яркости пятым потенциометром...

ulis
ulis аватар
Offline
Зарегистрирован: 09.03.2011

Xtro пишет:

Так в этом-то и дело...все каналы нормально регулируются...

не могу реализовать общую регулировку яркости пятым потенциометром...

В какой строке кода вы регулируете "общую" яркость и что значит эта общая яркость? У светодиода есть для этого отдельный вход?

Xtro
Xtro аватар
Offline
Зарегистрирован: 26.09.2017

Да все получилось...спасибо за помощь!!!

У светодиода нет отдельного входа...Вы правы...

Объясню по-другому...

Потенциометрами pot1-pot4 регулируется скважность в четырех каналах ШИМ...по отдельности...

а пятый потенциометр должен регулировать скважность во всех четырех каналах...как-то так...

ulis
ulis аватар
Offline
Зарегистрирован: 09.03.2011

Xtro пишет:

Да все получилось...спасибо за помощь!!!

У светодиода нет отдельного входа...Вы правы...

Объясню по-другому...

Потенциометрами pot1-pot4 регулируется скважность в четырех каналах ШИМ...по отдельности...

а пятый потенциометр должен регулировать скважность во всех четырех каналах...как-то так...

Понятно ... в таком случае нужно складывать результат пятого "общего" потенциометра с  результатами четырех предыдущих .... и то, значение этого общего должно зависеть также от текущего состояния rgbw потенциометров + проверка

xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Никогда не видел RGBW светодиодов, можно ссылку ?

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015
xDriver
xDriver аватар
Offline
Зарегистрирован: 14.08.2015

Спасибо, типов светодиодов через мои руки прошло не один десяток, но таких не втречал.

arduinec
Offline
Зарегистрирован: 01.09.2015

Ленты с RGBW светодиодами (по описанию управляются 32 битами аналогично WS2812):
https://ru.aliexpress.com/item/1m-2m-3m-4m-5m-SK6812-Similar-WS2812-WS28...