WS2812B только белые на нестандартной плате
Недавно я разработал плату для светодиодного проекта. Я использую WS2812B в качестве светодиода и ATMEGA328P-AU в качестве микроконтроллера. Я также использую arduino nano в качестве ISP и использую «флэш с программатором». Когда я вспыхнул пример мигания FastLED (код ниже), светодиод загорелся белым и остался белым, когда он должен был мигать красным. Я пробовал разные примеры, и все они имели одинаковый результат, только белый цвет. Мне не хватает важного компонента в моей схеме (кроме некоторых развязывающих конденсаторов)? Это программная проблема?
#include <FastLED.h>
#define NUM_LEDS 1
#define DATA_PIN 5
// Определяем массив светодиодов
CRGB leds[NUM_LEDS];
void setup() {
FastLED.addLeds<WS2812B, DATA_PIN, GRB>(leds, NUM_LEDS); // Порядок GRB типичен
}
void loop() {
// Включите светодиод, затем сделайте паузу
leds[0] = CRGB::Red;
FastLED.show();
delay(500);
// Теперь выключите светодиод, затем сделайте паузу
leds[0] = CRGB::Black;
FastLED.show();
delay(500);
}
1 ответ
Лучший ответ:
Чипы WS2812B очень чувствительны к синхронизации. Они полагаются на то, что импульсы имеют правильную длину, чтобы все работало.
Обычно, если время не совпадает, вы просто получаете белый цвет.
Поскольку у вас есть пустой чип, который вы никогда не ставили на загрузчик, фьюзы будут установлены неправильно для вашей конфигурации. По умолчанию микросхема настроена на внутренний генератор 8 МГц. Это означает, что все будет работать на половинной скорости.
Вам необходимо установить фьюзы для использования кристалла 16 МГц, чтобы он соответствовал настройке F_CPU
16000000 в конфигурации платы. Либо так, либо используйте конфигурацию платы, рассчитанную на работу на частоте 8 МГц.
- WS2812B работает только пока измеряю напряжение
- Arduino для запуска и светодиодная лента длиной до 100 м
- Советы по размещению печатных плат Nrf24l01 smd
- Горящий загрузчик
- Пользовательская плата 328P-AU не отвечает через ICSP
- Веб-клиент FastLED, щелчок на странице для включения и выключения для ws2812
- Ошибки Ardunio с ATmega644A Fastled (MCUDude Mightycore)
- Я закирпичил свой Arduino Uno? Проблемы с загрузкой скетчей на плату
Похоже на проблему со временем. Вы настроили свои предохранители на использование внешних 16 МГц или все еще на внутренних 1 МГц (или 8 МГц, независимо от значения по умолчанию)?, @Majenko
@Majenko Это было время! Спасибо за предложение! Я записал загрузчик на чип, потом прошил скетч и проблема ушла!, @Aubrey Champagne
Тогда да, это были предохранители, установленные неправильно., @Majenko