Почему моя комбинация Arduino/Ledstrip не работает?
Я использую Arduino Uno и светодиодную ленту WS2813 (60 светодиодов).
Это похоже на схему по умолчанию (за исключением того, что я использовал электролитический конденсатор на 470 мкФ вместо электролитического конденсатора на 1000 мкФ.
(я случайно пометил контакт VCC U1 VSS).
У меня не горит ни один светодиод на светодиодной ленте.
Программа, которую я использовал:
#include <FastLED.h>
#define NUM_LEDS 60
#define DATA_PIN 7
CRGB leds[NUM_LEDS];
bool led = false;
void setup() {
//FastLED.addLeds<WS2813, DATA_PIN>(leds, NUM_LEDS);
FastLED.addLeds<WS2813, DATA_PIN>(leds, NUM_LEDS);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop()
{
for (int i = 0; i < NUM_LEDS; i++)
{
leds[i] = CRGB::Red;
}
FastLED.show();
led = !led;
digitalWrite(LED_BUILTIN, led ? HIGH : LOW);
delay(1000);
}
Что я пробовал:
- Проверка различных выводов данных на Arduino
- Проверка разных проводов
- Проверяем, что над D7 и после резистора действительно сопротивление 330 Ом (было 345 Ом)
- Пробовали разные пины данных (и адаптировали сцену для использования других пинов данных)
- Проверка того, горит ли светодиод D1 (подается 5 В)
- Проверяем, что на конце WS2813 есть разница VCC и GND 5В (около 5,1 В)
- Проверяем, действительно ли существует разница 5 В между адаптером + и – (было 5,2 В без нагрузки).
- Пытался с заземленным и неподключенным BI WS2813
- Пробовал без резистора 330 Ом.
- Проверено с той же схемой, но с WS2812B (с адаптацией кода для использования WS2812B)
- Использовались разные тайминги для встроенного индикатора, чтобы убедиться, что скетч действительно загружен.
- Пробовал с
, RGB)
добавлено в строку:FastLED.addLeds<WS2812B, DATA_PIN, RGB>(светодиоды, NUM_LEDS);
- С помощью логического анализатора я вижу, что каждую секунду происходит короткий пакет данных (не анализируется, что именно, я предполагаю, что FastLed надежен).
Все без разницы.
Тем не менее, я увидел, что данные логического анализатора ПОСЛЕ резистора 330 Ом в основном удаляют данные, в то время как данные до резистора в порядке. Однако при снятии сопротивления светодиодная лента все равно не загорается.
Канал 0 перед резистором, канал 1 после:
Что я сделал не так?
@Michel Keijzers, 👍-1
Обсуждение1 ответ
Лучший ответ:
Важно подключить цифровой контакт Arduino к правильному концу светодиодной ленты.
Светодиодные ленты имеют однонаправленную линию передачи данных.
Подключения питания и заземления могут быть выполнены с любого конца, но ВХОД данных находится на одном конце, а ВЫХОД данных — на другом конце.
Такое расположение предназначено для последовательного соединения светодиодных лент.
Сами светодиоды также имеют вход данных и выход данных, а также соединены последовательно с соседними светодиодами.
Светодиоды последовательно соединены друг с другом через линию передачи данных и подключены параллельно к линиям питания и заземления.
Да, я заметил, что есть направление (что логично). Угадайте, когда я попробовал это раньше, это сработало мгновенно, вероятно, потому, что я случайным образом выбрал тогда правильную сторону, а теперь неправильную., @Michel Keijzers
- Быстродействующий массив fill_solid
- RGB светодиодная лента 100м.
- MIDI клавиатура управляемая светодиодная лента
- Как подключить две светодиодные ленты (APA102/SK9822) к Arduino UNO?
- игнорирование изменений значения потенциометра
- Arduino для запуска и светодиодная лента длиной до 100 м
- Arduino Uno и FastLED WS2812B глючат
- Передача цвета функции без использования определенного Adafruit_NeoPixel
Вы подключили к правильному концу светодиодной ленты?, @jsotola
@jsotola ДА ... я должен был спросить раньше :-); Если вы поместите это как ответ, я проголосую за него / приму его., @Michel Keijzers