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

Обсуждение

Похоже на проблему со временем. Вы настроили свои предохранители на использование внешних 16 МГц или все еще на внутренних 1 МГц (или 8 МГц, независимо от значения по умолчанию)?, @Majenko

@Majenko Это было время! Спасибо за предложение! Я записал загрузчик на чип, потом прошил скетч и проблема ушла!, @Aubrey Champagne

Тогда да, это были предохранители, установленные неправильно., @Majenko


1 ответ


Лучший ответ:

4

Чипы WS2812B очень чувствительны к синхронизации. Они полагаются на то, что импульсы имеют правильную длину, чтобы все работало.

Обычно, если время не совпадает, вы просто получаете белый цвет.

Поскольку у вас есть пустой чип, который вы никогда не ставили на загрузчик, фьюзы будут установлены неправильно для вашей конфигурации. По умолчанию микросхема настроена на внутренний генератор 8 МГц. Это означает, что все будет работать на половинной скорости.

Вам необходимо установить фьюзы для использования кристалла 16 МГц, чтобы он соответствовал настройке F_CPU 16000000 в конфигурации платы. Либо так, либо используйте конфигурацию платы, рассчитанную на работу на частоте 8 МГц.

,