Topic: Первоначальные установки
Доброго всем времени суток. Собрал сыну лампу освещения на WS2812 и контроллере D1 mini. Все хорошо но есть несколько проблем:
1. Нужно что бы при включении питания на выходе switch_1 было High и при подключении в приложении переключатель по умолчанию то же был бы в ON;
2. проблема, элемент RGB круг, по умолчанию при включении имеет 0 контраст иными словами светодиоды имеют яркость = 0(выкл) и еще одна проблема, через какое то время точка доступа пропадает, ресет решает проблему но это не удобно.
//////////////////////////////////////////////
// RemoteXY include library //
//////////////////////////////////////////////
// определение режима соединения и подключение библиотеки RemoteXY
#define REMOTEXY_MODE__ESP8266WIFI_LIB_POINT
#include <ESP8266WiFi.h>
#include <RemoteXY.h>
// Подключим библиотеку для работы с WS2812
#include <Adafruit_NeoPixel.h>
const int dinPin = D3; // Управляющий контакт с Led ленты на 10 пин Arduino
const int numOfLeds = 16; // Количество сид в ленте
#define BRIGHTNESS 80
Adafruit_NeoPixel pixels = Adafruit_NeoPixel (numOfLeds, dinPin, NEO_GRB + NEO_KHZ800);
// настройки соединения
#define REMOTEXY_WIFI_SSID "111111"
#define REMOTEXY_WIFI_PASSWORD ""
#define REMOTEXY_SERVER_PORT 6377
// конфигурация интерфейса
#pragma pack(push, 1)
uint8_t RemoteXY_CONF[] =
{ 255,4,0,0,0,33,0,6,5,1,
6,0,2,37,58,58,6,2,0,19,
10,22,11,2,208,146,208,186,208,187,
0,208,146,209,139,208,186,208,187,0 };
// структура определяет все переменные вашего интерфейса управления
struct {
// input variable
uint8_t rgb_1_r; // =0..255 значение Красного цвета
uint8_t rgb_1_g; // =0..255 значение Зеленого цвета
uint8_t rgb_1_b; // =0..255 значение Синего цвета
uint8_t switch_1; // =1 если переключатель включен и =0 если отключен
// other variable
uint8_t connect_flag; // =1 if wire connected, else =0
} RemoteXY;
#pragma pack(pop)
/////////////////////////////////////////////
// END RemoteXY include //
/////////////////////////////////////////////
#define PIN_SWITCH_1 D1
void setup()
{
RemoteXY_Init ();
pinMode (PIN_SWITCH_1, OUTPUT);
// PIN_SWITCH_1 == 0;
// RemoteXY.switch_1 == LOW;
pixels.begin(); // Инициализация библиотеки NeoPixel для WS2812
pixels.setBrightness(BRIGHTNESS); // Значение яркости от 0 до 100%
pinMode(dinPin, OUTPUT);
}
void loop()
{
RemoteXY_Handler ();
digitalWrite(PIN_SWITCH_1, (RemoteXY.switch_1==0)?LOW:HIGH);
if (RemoteXY.switch_1 == LOW)
{
// Для набора NeoPixels первый сид=0, второй=1, и т.д. до макс. знач
for(int i=0; i<numOfLeds; i++)
{
RemoteXY_Handler ();
// pixels.setPixelColor(i, pixels.Color(0,0,255));
pixels.setPixelColor(i, pixels.Color(RemoteXY.rgb_1_r,RemoteXY.rgb_1_g,RemoteXY.rgb_1_b));
pixels.show(); // Отправляем обновленное значение цвета пикселя
}
}
else
{
for(int i=0; i<numOfLeds; i++)
{
pixels.setPixelColor(i, pixels.Color(0,0,0));
pixels.show(); // Отправляем обновленное значение цвета пикселя
RemoteXY_Handler ();
}
}
}