Top.Mail.Ru
Ответы
Аватар пользователя
8лет
Изменено

Помогите пожалуйста, кто работал со светодиодами WS2812b по SPI

В Китае приобрел ленту на светодиодах ws2812b. Подключил ее через SPI к Atmega8. К Atmege8 также подключил кварц на 10 Мгц (фьюзы выставил), чтобы выставить частоту работы SPI - 2,5 Мгц. На такой частоте один бит передается за 0,4 us (микросекунды). Все интервалы для ws2812b получаются верными.

Что имеем:
- В ленте 36 светодиодов.
- Питание ленты и МК от компьютерного БП 5V 20А
- Собрано все на макетной плате.

В основном цикле написал простую программу

while (1)
{

for(i=1; i<=108; i++) //передаем по SPI один байт для каждого светодиода 3(RGB) x 36(LED) = 108
{
SPDR=0b10010010; // 100 три этих бита передают лог. 0 на ws2812b
while(!(SPSR & (1<<SPIF)));
SPDR=0b01001001;
while(!(SPSR & (1<<SPIF)));
SPDR=0b00100100;
while(!(SPSR & (1<50us, и все светодиоды должны потухнуть

for(i=1; i<=99; i++) // снова начинаем передавать данные
{
SPDR=0b11011011; // последовательность 110 = лог. 1 для ws2812b
while(!(SPSR & (1<<SPIF)));
SPDR=0b01101101;
while(!(SPSR & (1<<SPIF)));
SPDR=0b10110110;
while(!(SPSR & (1<50us, и все светодиоды должны гореть белым

}
}

В итоге все работает не так (( Светодиоды светятся бледным розоватым цветом 300 миллисекунд, а потом вспыхивают ярким белым на 300 миллисекунд. Первый светодиод (не важно к какому именно подключать MOSI) не реагирует вообще (либо просто горит либо просто не горит) В чем может быть проблема.

Прикладываю фото, видео, даташит и файл с прошивкой (все по ссылке на Яндекс диске). Очень рассчитываю на вашу помощь)

https://yadi.sk/d/q4UJD3P3wXyYv

По дате
По рейтингу
Аватар пользователя
8лет

я часы на ленте сделал ардуино https://www.youtube.com/watch?v=6JrEerz57Ho

Аватар пользователя
Просветленный
8лет

А какова задача сего девайса?