подсветка ws2812 на коптер

Zverek
Offline
Зарегистрирован: 04.06.2018

Доброго времени суток, может кто подскажет, делаю подсветку на коптер четыре ленты по 6 светодиодов, тоесть четыре канала хочется сделать ее нескольких режимов, переключением с приемника аппы, с ардуино не сталкивался еще, режима три отключена, постоянно горит + по в 4 диода ленте переодически мигают стратоскоп, и третий режим полецейская мигалка, не могу стелать-настроить частоту работы стратоскопа тоесть чтоп не постоянно мигал а 3 вспышки 1-2 перерыв ну и чтоп мигали ленты по паре 1-3, 2-4 канал, саму мигалку тоже не могу с ней сложней надо чтоб подсветка горела белым цветом яркость процентов 30, и так же вспышки через две три сикунды получается чтоб на время вспышек подсведка вырубалась, с сигналом ШИМ приемника какой командой его прописывать в скече, сейчас временый скечь

#include <Adafruit_NeoPixel.h>    //подключение библеотеки
 
 
 
#define PIN_1 5   // Вывод 1 луча
#define PIN_2 6   // Вывод 2 луча
#define PIN_3 7   // Вывод 3 луча
#define PIN_4 8   // Вывод 4 луча
 
#define NUMPIXELS 6  //Число светодиодов в ленте
 
Adafruit_NeoPixel strip_1 = Adafruit_NeoPixel(NUMPIXELS, PIN_1, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip_2 = Adafruit_NeoPixel(NUMPIXELS, PIN_2, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip_3 = Adafruit_NeoPixel(NUMPIXELS, PIN_3, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel strip_4 = Adafruit_NeoPixel(NUMPIXELS, PIN_4, NEO_GRB + NEO_KHZ800);
 
void setup() {
  
  strip_1.begin();
  strip_1.begin();
  strip_2.begin();
  strip_2.begin();
  strip_3.begin();
  strip_3.begin();
  strip_4.begin();
  strip_4.begin();
  
}
 
void loop() {
  
  for (int i = 0; i < 8; i++)
  
  {
    
    strip_1.setPixelColor(i, strip_1.Color(10, 0, 0)); // 1 лучь
    
    strip_1.show();
    
  }
  
////////////////////////////////////////////////////////////////  
  for (int i = 0; i < 8; i++)
  
  {
    
    strip_2.setPixelColor(i, strip_2.Color(0, 0, 10)); // 2 лучь
    
    strip_2.show();
    
  }
  
////////////////////////////////////////////////////////////////
  for (int i = 0; i < 8; i++)
  
  {
    
    strip_3.setPixelColor(i, strip_3.Color(0, 0, 10)); // 3 лучь
    
    strip_3.show();
    
  }
  
////////////////////////////////////////////////////////////////
  for (int i = 0; i < 8; i++)
  
  {
    
    strip_4.setPixelColor(i, strip_4.Color(10, 0, 0)); // 4 лучь
    
    strip_4.show();
    
  }
  
////////////////////////////////////////////////////////////////////
//Мигаем светодиодами
////////////////////////////////////////////////////////////////////
 
   if (round(millis()/20)% 2==0) {//Скорость мигания послежних 4 светодиодов
    
    for (int i = 0; i < 4; i++){
 
    strip_1.setPixelColor(i, strip_1.Color(20, 20, 20));// мигаем 4 сведодиодами 1 луча
    
    strip_1.show();
    
   }
 
   for (int i = 0; i < 4; i++){
 
    strip_2.setPixelColor(i, strip_2.Color(20, 20, 20));// мигаем 4 сведодиодами 2 луча
    
    strip_2.show();
    
   }
   
   for (int i = 0; i < 4; i++){
 
    strip_3.setPixelColor(i, strip_3.Color(20, 20, 20));// мигаем 4 сведодиодами 3 луча
    
    strip_3.show();
    
   }
   
   for (int i = 0; i < 4; i++){
 
    strip_4.setPixelColor(i, strip_4.Color(20, 20, 20));// мигаем 4 сведодиодами 4 луча
    
    strip_4.show();
    
   }
   }
}  
  
За рание спасибо.
5N62V
Offline
Зарегистрирован: 25.02.2016

Zverek пишет:

 с ардуино не сталкивался еще, 

 

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

Zverek пишет:

За рание спасибо.

 
 

Я делал такой проект, он успешно летает. Начинать Вам надо с перевода входящего от приемника PWM сигнала в удобоваримую для микропроцессора форму. А в какой последовательности чего-то там зажечь - это дело десятое.