Микроконтроллер для управления WS2812?

Gapash
Offline
Зарегистрирован: 15.04.2020

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

#include <Adafruit_NeoPixel.h>

#define BUTTON_PIN   8   //пин кнопки
#define PIXEL_PIN    A3  //пин ленты  
#define PIXEL_COUNT 8    //количество светодиодов 

Adafruit_NeoPixel strip = Adafruit_NeoPixel(PIXEL_COUNT, PIXEL_PIN, NEO_GRB + NEO_KHZ800);

//ххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх
void setup() {
  pinMode(BUTTON_PIN, INPUT_PULLUP);
  strip.begin();
  strip.show(); // Initialize all pixels to 'off'
}

//ххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх
void loop() {

if (digitalRead(BUTTON_PIN)== LOW) // если сигнал от датчика есть
{
   colorWipe();  // из синего в голубой
}  

else //иначе всё гасим
{
 for(uint16_t i=0; i<strip.numPixels(); i++)
  {
      strip.setPixelColor(i,strip.Color(0, 0, 0));
      strip.show();
  } 
}


if (digitalRead(BUTTON_PIN)== LOW)
{
   colorWipe1();  //из голубого в синий
}  

else //иначе всё гасим
{
  for(int i=0; i<strip.numPixels(); i++)
  {
      strip.setPixelColor(i,strip.Color(0, 0, 0));
      strip.show();
  } 
}
  
}


//ххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххххх
//=== из голубого в синий =========================

void colorWipe1()
{
 for(int ii=100; ii>1; ii--)
  {
    for(int i=0; i<strip.numPixels(); i++)
  {
      strip.setPixelColor(i,strip.Color(0, ii, 100));
      strip.show();
  }
    delay(10);
  } 
}
//==== из синего в голубой ===================
void colorWipe()
{
 for(int ii=0; ii<100; ii++)
  {
    for(uint16_t i=0; i<strip.numPixels(); i++)
  {
      strip.setPixelColor(i,strip.Color(0, ii, 100));
      strip.show();
  }
    delay(10);
  }
}

Нужно, что бы данная программа (если нужно будет написать подобное на другом языке, не проблема) работала от контроллера. Тоесть это основная и главная задача от устройства, ардуино для этих целей жирноват (по функция) и слишком большой габарит, дажу у про мини. Нужно еще меньше. Поэтому встал вопрос: Можно ли для данной задачи заменить ардуино на какой-нибудь маленький микроконтроллер?Уверен, есть такие контроллеры, которые заточены только под управление адресной лентой. 
Нужно это для сокращения физически занимаемого места. В ардуино слишком много места занимают ненужные мне пины, кнопка ресет и прочая шелуха(для данной задачи).
В гугле пока не получается правильно сформировать запрос, что бы найти ответы по этой теме.
Заранее спасибо.
Либо, может тот же Атмега подойдет, просто плату нужно без всего лишнего под него разрабатывать.
Заранее спасибо)

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

Устроит? У меня он засунут в свободное пространство БП розеточного на 12В, от него и питается и 100 LED на улице перемигиваются всякими эффектами ;)). 

Gapash
Offline
Зарегистрирован: 15.04.2020

По-моему идеально. Спасибо)Думаю вопрос можно считать закрытым)

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

Влад, чёт я отупел и не могу ссылки у тебя найти. Дай, пожалуйста, явно.