На 2811 зажигаются 3 светодиода вместо одного

Urdin
Offline
Зарегистрирован: 13.01.2018

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

Итак, подключаю к arduino ленту WS2811 IC 12V. Подключается, мигает, но принимает кластер за один светодиод. То есть, там, где должен мигнуть первый светодиод мигает три, где второй- следующие три. Скетчи пробовал использующие FastLed.

sadman41
Offline
Зарегистрирован: 19.10.2016

Что вы имеете в виде под словом "Кластер"? Стандартные примеры от фастледа и адафруит запускали?

Urdin
Offline
Зарегистрирован: 13.01.2018

Кластер имеется в виду 3 диода, прицепленных к одному чипу. По крайней мере, так пишут в инете. В тории они должны работать индивидуально, но работают синхронно.

sadman41
Offline
Зарегистрирован: 19.10.2016

Нет, это не так. Один чип - три светодиода. R, G и B. При смешении получается один цвет. Это называется "пиксель". Он и является учетной единицей страйпа. "Адресуемые светодиоды", видимо, не очень удачное название.

Urdin
Offline
Зарегистрирован: 13.01.2018

На самом деле, покопался чуть поглубже. В той чудо- ленте, что я купил на каждый чип именно по три диода, и они работают синхронно. Вопрос снят.

sadman41
Offline
Зарегистрирован: 19.10.2016

Что за китайская жесть? Покажите товар ссылкой на страницу.

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

Отдельное управление каждым светодиодом на лентах с питанием 5 вольт. В 12-вольтовых лентах одному светодиоду в библиотеке соответствуют 3 светодиода на ленте.

sadman41
Offline
Зарегистрирован: 19.10.2016

Т.е. в 12-вольтовых на канал вешается по 3 светодиода? Спасибо за предупреждение.

dj-toxa
Offline
Зарегистрирован: 06.04.2016

там по три RGB диода на одной микросхеме это и отличает WS2811 от ws2812 в которой микросхема встроена в каждом RGB диоде 

mag155
Offline
Зарегистрирован: 21.12.2017

int ledPin = 8;
int ledPin1 = 13;
int sensorPin = A0; // устанавливаем входную ногу для АЦП

unsigned int sensorValue = 0; // цифровое значение фоторезистора

void setup()
{
pinMode(ledPin1,OUTPUT);
pinMode( ledPin, OUTPUT);

Serial.begin(9600); // старт последовательного вывода данных (для тестирования)
}

void loop()
{
sensorValue = analogRead(sensorPin); // считываем значение с фоторезистора

if(sensorValue<500) digitalWrite( ledPin, HIGH); // включаем
if(sensorValue<700) digitalWrite( ledPin1, HIGH);
else digitalWrite(ledPin,LOW); // выключаем

} Всем доброго времени суток не нашел подходящей темы поэтому пишу сюда уж не судите строго. Суть в том что хочю зажигать диоды в зависимосьти от уровня воследовательно удалось добавить один диод он загорается но не тухнет подскажите плиз как правильно его добавить.

kalapanga
Offline
Зарегистрирован: 23.10.2016

mag155 пишет:

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

Ошибок куча:

1) Нужно было создать свою тему, к этой Ваши диоды отношения не имеют

2) Нужно правильно вставлять код Вставка программного кода в тему/комментарий

3) Судя по всему у Вас три интервала. Опишите их в условиях правильно - меньше 500, больше пятисот и меньше 700, больше 700. И в каждом случае устанавливайте состояние обоих Ваших светодиодов, а не какого-то одного. И всё заработает.

mag155
Offline
Зарегистрирован: 21.12.2017
 pinMode(ledPin4,OUTPUT); 
 pinMode(ledPin5,OUTPUT); 
  
                // возврат каретки  
  //
  Serial.begin(9600);        // старт последовательного вывода данных (для тестирования)
}

void loop()
{
  
 sensorValue = analogRead(sensorPin);  // считываем значение с фоторезистора
             

if(sensorValue< 550)  // включаем
   
     digitalWrite( ledPin, HIGH); 
 
  else if(sensorValue> 700)  digitalWrite(ledPin,HIGH);
  else  digitalWrite(ledPin,LOW); 

    
   if(sensorValue>600) digitalWrite( ledPin1,HIGH ); 
     else  digitalWrite(ledPin1,LOW); 

 if(sensorValue<600) digitalWrite( ledPin2, HIGH); 
     else  digitalWrite(ledPin2,LOW); 

 if(sensorValue<500) digitalWrite( ledPin3, HIGH); 
    
   else  if(sensorValue> 750) digitalWrite( ledPin3, HIGH); 
    else  digitalWrite(ledPin3,LOW); 
     
     
 if(sensorValue<400) digitalWrite( ledPin4, HIGH)

Благодарю за ответ разобрался но вот уперся в то как сделать задержку на вкл и вкл диодов отдеьно друг от друга пробовал delay но она работает на все диоды сразу подскажите пожалуйста как ее применить на каждый из них?