Здравствуйте. Как-то странно (или непонятно для меня) ведет себя лента:
1. в выключенном состоянии конец ленты и где-то в середине горит зелено-красным цветом (фото 1). Причем когда ее включишь и выключишь ситуация в середине может исправиться, но конец горит зеленым (фото 2). Длина 5.5м, питание с двух сторон + середина, засвет не в месте подвода питания (для того что пропадает в середине).
2. при включенном состоянии конец тоже горит зеленым (фото 3).
3. на второй ленте была замечена такая ситуация (сам не видел, рассказывали) - в выключенном состоянии горело по одному светодиоду (вроде синему) в середине ленты, разделяя ее на 4 части. При включении она загорелась до первого светодиода только, после выключения и включения до второго, потом до третьего и потом только полностью.
С лентой первый раз работаю, может делаю что-то не так? Блок питания на 40А (на каждую ленту), расположен далеко но провод 4ка сечение. Управляю наной:
Подключаю так, только питание на контроллер не по юсб а в 5v пин (от отдельного БП).
1. в выключенном состоянии конец ленты и где-то в середине горит зелено-красным цветом (фото 1). Причем когда ее включишь и выключишь ситуация в середине может исправиться, но конец горит зеленым (фото 2). Длина 5.5м, питание с двух сторон + середина, засвет не в месте подвода питания (для того что пропадает в середине).
2. при включенном состоянии конец тоже горит зеленым (фото 3).
3. на второй ленте была замечена такая ситуация (сам не видел, рассказывали) - в выключенном состоянии горело по одному светодиоду (вроде синему) в середине ленты, разделяя ее на 4 части. При включении она загорелась до первого светодиода только, после выключения и включения до второго, потом до третьего и потом только полностью.
С лентой первый раз работаю, может делаю что-то не так? Блок питания на 40А (на каждую ленту), расположен далеко но провод 4ка сечение. Управляю наной:
Скетч:
#include "FastLED.h"
#define NUM_LEDS 500
#define PIN 6
CRGB leds[NUM_LEDS];
// constants won't change. They're used here to set pin numbers:
const int buttonPin = 2; // the number of the pushbutton pin
const int buttonPin2 = 3;
const int ledPin = 13; // the number of the LED pin
// Variables will change:
int ledState = LOW; // the current state of the output pin
int ledState2 = LOW;
int buttonState; // the current reading from the input pin
int buttonState2;
int lastButtonState = LOW; // the previous reading from the input pin
int lastButtonState2 = LOW;
// the following variables are unsigned longs because the time, measured in
// milliseconds, will quickly become a bigger number than can be stored in an int.
unsigned long lastDebounceTime = 0; // the last time the output pin was toggled
unsigned long lastDebounceTime2 = 0;
unsigned long debounceDelay = 50; // the debounce time; increase if the output flickers
const int r1Pin = 5;
const int r2Pin = 7;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(r1Pin, OUTPUT);
pinMode(r2Pin, OUTPUT);
switchRelay(r1Pin, ledState);
switchRelay(r2Pin, ledState2);
FastLED.addLeds<WS2812B, PIN>(leds, NUM_LEDS);
}
void loop()
{
readButton();
readButton2();
}
void readButton() {
// обработка нажатия кнопки, убрал для упрощения
}
void readButton2() {
// read the state of the switch into a local variable:
int reading = digitalRead(buttonPin2);
// check to see if you just pressed the button
// (i.e. the input went from LOW to HIGH), and you've waited long enough
// since the last press to ignore any noise:
// If the switch changed, due to noise or pressing:
if (reading != lastButtonState2) {
// reset the debouncing timer
lastDebounceTime2 = millis();
}
if ((millis() - lastDebounceTime2) > debounceDelay) {
// whatever the reading is at, it's been there for longer than the debounce
// delay, so take it as the actual current state:
// if the button state has changed:
if (reading != buttonState2) {
buttonState2 = reading;
// only toggle the LED if the new button state is HIGH
if (buttonState2 == HIGH) {
ledState2 = !ledState2;
if (ledState2)
{
setColor(CRGB::White);
}
else
{
memset8(leds, 0, NUM_LEDS * sizeof(CRGB));
FastLED.show();
}
}
}
}
// set the LED:
switchRelay(r2Pin, ledState2);
// save the reading. Next time through the loop, it'll be the lastButtonState:
lastButtonState2 = reading;
}
void switchRelay(int pin, bool state)
{
digitalWrite(pin, !state);
digitalWrite(ledPin, state);
}
void setColor(CRGB color)
{
for (int i = 0; i < NUM_LEDS; i++ )
{
leds[i] = color;
}
FastLED.show();
}
Подключаю так, только питание на контроллер не по юсб а в 5v пин (от отдельного БП).
Вложения
-
68.6 KB Просмотры: 9
-
32.2 KB Просмотры: 11
-
28.4 KB Просмотры: 11
Изменено: