RGB led лампа

_A_r_d_u_i_n_o
Offline
Зарегистрирован: 02.08.2015

Всем привет! делаю проект, состоит он из arduino nano/pro mini(168), rgb ws2812b светодиодов (24 штуки), dht 11, для управления лентой  использую bluetooth и три реостата ( переключаюсь между ними), для включения и выключения использую ультразвуковой датчик расстояния  hc-sr04 и кнопку, вот возникли вопросы, начал собирать и экспериментировать, сделал такой код, покамись для обычного rgb светодиода, и без кнопок и ульразвукового модуля, чтобы отладить bluetooth (использую приложение remotexy), вобщем код работает, только почему-то цвет на rgb светодеоде меняется с большой задержкой (1-3 секцнды), скажите пожалуйста, из-за чего так происходит. И второй вопрос, для питания планирую использовать аккумулятор на 3.7 вольта, заказал три преобразователя dc-dc step up MT3608 подойдут ли они? или что-то другое нужно использовать?

вот сам код

#include "DHT.h"
 #define DHTTYPE DHT11   // DHT 11
#define DHTPIN 10
DHT dht(DHTPIN, DHTTYPE);
/* определение режима соединения и подключение библиотеки RemoteXY */ 
#define REMOTEXY_MODE__HC05_SOFTSERIAL
#include <SoftwareSerial.h> 

#include <RemoteXY.h> 

/* настройки соединения */ 
#define REMOTEXY_SERIAL_RX 2 
#define REMOTEXY_SERIAL_TX 3 
#define REMOTEXY_SERIAL_SPEED 9600 


/* конфигурация интерфейса  */ 
unsigned char RemoteXY_CONF[] = 
  { 4,11,70,0,5,5,0,4,0,3
  ,0,9,44,6,4,0,16,0,9,44
  ,4,4,0,30,0,9,44,1,3,3
  ,63,12,10,28,2,67,4,45,48,20
  ,5,2,11,129,0,1,47,40,6,9
  ,209,130,208,181,208,188,208,191,208,181
  ,209,128,208,176,209,130,209,131,209,128
  ,208,176,32,0 }; 
   
/* структура определяет все переменные вашего интерфейса управления */ 
struct { 

    /* input variable */
  signed char slider_1; /* =0..100 положение слайдера */
  signed char slider_2; /* =0..100 положение слайдера */
  signed char slider_3; /* =0..100 положение слайдера */
  unsigned char select_1; /* =0 если переключатель в положении A, =1 если в положении B, =2 если в положении C, ... */

    /* output variable */
  char text_1[11];  /* =строка оканчивающаяся нулем UNICODE */

    /* other variable */
  unsigned char connect_flag;  /* =1 if wire connected, else =0 */

} RemoteXY; 

///////////////////////////////////////////// 
//           END RemoteXY include          // 
///////////////////////////////////////////// 

#define PIN_SWITCH_1 13

#define led1 5
#define led2 6
#define led3 9

void setup()  
{ 
  RemoteXY_Init ();  


    dht.begin();
 
   pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
   pinMode(led3, OUTPUT); 
 RemoteXY.slider_1 = 0;
 RemoteXY.slider_2 = 0;
 RemoteXY.slider_3 = 0;// TODO you setup code 
  // TODO you setup code  

  // TODO you setup code 
   
} 

void loop()  
{  
  RemoteXY_Handler (); 
float t = dht.readTemperature();
dtostrf(t, 0, 1, RemoteXY.text_1); 
int r; 
int g; 
int b; 
if (RemoteXY.select_1==0) { 
    /*  текущее состояние A */ 
  } 
  else if (RemoteXY.select_1==1) { 
 r=   RemoteXY.slider_1*2.55;
g=   RemoteXY.slider_2*2.55;
b=  RemoteXY.slider_3*2.55;  // TODO you loop code 
analogWrite(led1,r);
analogWrite(led2,g);
analogWrite(led3,b);  // используйте структуру RemoteXY для передачи данных 
delay(1);    /*  текущее состояние B */ 
  } 
  else if (RemoteXY.select_1==2) { 
    /*  текущее состояние C */ 
  } 
  else if (RemoteXY.select_1==3) { 
    /*  текущее состояние D */ 
  } 



   

 // TODO you loop code 
 // используйте структуру RemoteXY для передачи

}

он будет доработан, и вот ещё такой вопрос, хватит ли мощности atmega 328/168 чтобы ещё подключить ультразвуковой модуль и за всем этим следить? ил лучше тогда использовать две платы ардуино?

 

_A_r_d_u_i_n_o
Offline
Зарегистрирован: 02.08.2015

уточню, два способа управления, при помощи bluetooth и реостатов (для них код уже есть)

_A_r_d_u_i_n_o
Offline
Зарегистрирован: 02.08.2015

эх, и никто не знает в чём проблема?!...

kasper007
Offline
Зарегистрирован: 23.05.2016

По поводу времени срабатывания (изменения цвета ленты) после каких-либо действий в приложении RemoteXY: Вы программный RX/TX используете или хардварный? Как правило такие дикие задержки возникают если используете програмую эмуляцию порта (библиотека softwareserial ....)

_A_r_d_u_i_n_o
Offline
Зарегистрирован: 02.08.2015

большое спасибо за ответ, попробую, т.к. у меня переназначены rx и tx на 2 и 3 пины