Например TDA7294

Форум РадиоКот • Просмотр темы - Преобразование RGB в WS2812
Форум РадиоКот
Здесь можно немножко помяукать :)





Текущее время: Чт июл 10, 2025 07:17:37

Часовой пояс: UTC + 3 часа


ПРЯМО СЕЙЧАС:



Начать новую тему Ответить на тему  [ Сообщений: 7 ] 
Автор Сообщение
Не в сети
 Заголовок сообщения: Преобразование RGB в WS2812
СообщениеДобавлено: Пт дек 27, 2024 23:50:30 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 14, 2015 01:21:10
Сообщений: 22
Рейтинг сообщения: 0
Здравствуйте уважаемые форумчане. Крик души о помощи с написанием кода. Есть в автомобиле штатная подсветка, управляемая по шине данных Lin с головного устройства. Каждая такая подсветка содержит "приёмник с преобразованием в uart" с последующей отправкой в микроконтроллер, который в свою очередь управляет ключами. После ключей стоит RGB светодиод. Задумка такая, чтобы взять с каждой базы транзисторов сигнал и с помощью ардуины управлять лентой ws2812. Нашёл на просторах интернета нужный мне код https://www.joyta.ru/17593-prostoj-draj ... ravleniem/ и всё бы хорошо, но есть проблема которую не знаю как решить (собственно по этому прошу помощи). При подключении к штатной подсветке, ws2812 начинает постоянно перебирать цвета. Скорее всего проблема в том, что ардуина каждый раз считывая значение с аналоговых входов не суммирует их в один цвет, а пытается отобразить их по отдельности. При включении какого-нибудь цвета, например красного, ws2812 время от времени помаргивает, скорее всего это опять же связано с выше описанной проблемой. Подтягивающие резисторы, проблему не решают.
Код:
#include <Adafruit_NeoPixel.h>
#define PIN 10 //линия данных на ленту
#define NUMPIXELS 30 //колличество диодов в ленте
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
int red;
int green;
int blue;
void setup() {
pinMode(A0,INPUT); // вход красного цвета
pinMode(A1,INPUT); // вход зелёного цвета
pinMode(A2,INPUT); // вход синего цвета
pixels.begin();
}
void loop() {
red=map(analogRead(A1),0,1023,0,255);
green=map(analogRead(A2),0,1023,0,255);
blue=map(analogRead(A0),0,1023,0,255);
for(int i=0; i<NUMPIXELS; i++) {
pixels.setPixelColor(i, pixels.Color(red,green,blue));
pixels.show();
  }
}


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Преобразование RGB в WS2812
СообщениеДобавлено: Сб дек 28, 2024 08:34:04 
Прорезались зубы
Аватар пользователя

Карма: 5
Рейтинг сообщений: 30
Зарегистрирован: Пн июл 04, 2016 16:51:22
Сообщений: 222
Откуда: Россия, Омск
Рейтинг сообщения: 0
Вы уверены, что управление светодиодами АНАЛОГОВОЕ, а на ШИМ?
Если диоды мерцают - ваша Ардуино может читать выходное значение как единицы и нули вместо реально выставленного значения яркости.
Попробуйте взять код для измерения заполнения импульсов и использовать его вместо измерения напряжения.

Либо используйте RC-цепочку для получения аналогового уровня.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Преобразование RGB в WS2812
СообщениеДобавлено: Сб дек 28, 2024 09:37:01 
Друг Кота
Аватар пользователя

Карма: 40
Рейтинг сообщений: 608
Зарегистрирован: Вс янв 24, 2010 13:14:02
Сообщений: 4666
Откуда: Омск
Рейтинг сообщения: 0
Для управления WS2812 ему надо передать 3 байта, соответствующие цветам RGB. Внутри светодиода есть чип, который преобразует значения каждого цвета из полученных данных в ШИМ соответствующего светодиода в корпусе. При передачи следующих трех байтов, предыдущие будут переданы в следующий светодиод цепочки. Таким образом каждая посылка из 3 байт будет все дальше и дальше продвигать значения от начала цепочки. Работает по принципу регистра сдвига, только по 3 байта.
Никаких аналоговых сигналов в них нет. Подтягивающие резисторы совсем не нужны, а вот конденсатор по питанию 0.1 мкф на каждый светодиод обязательны. Минимальная тактовая частота контроллера 8 МГц. Режим считывания данных со светодиодов 2812 не предусмотрен. Разрядность ШИМ внутри светодиода 8 бит( max 255).

В Вашем случае нужно считать значения каждого цвета, преобразовав в аналоговый сигнал, затем преобразовать его с помощью АЦП в 8-ми битный и оправить в цепочку.


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Преобразование RGB в WS2812
СообщениеДобавлено: Сб дек 28, 2024 11:20:40 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 14, 2015 01:21:10
Сообщений: 22
Рейтинг сообщения: 0
Вы уверены, что управление светодиодами АНАЛОГОВОЕ, а на ШИМ?
Если диоды мерцают - ваша Ардуино может читать выходное значение как единицы и нули вместо реально выставленного значения яркости.
Попробуйте взять код для измерения заполнения импульсов и использовать его вместо измерения напряжения.

Либо используйте RC-цепочку для получения аналогового уровня.



Да, я думаю там ШИМ. Может быть есть образец "код для измерения заполнения импульсов"


Вернуться наверх
 
Выбираем индустриальные и медицинские источники питания MEAN WELL в открытом исполнении

Использование модульных источников питания открытого типа широко распространено в современных устройствах. Присущие им компактность, гибкость в интеграции и высокая эффективность делают их отличным решением для систем промышленной автоматизации, телекоммуникационного оборудования, медицинской техники, устройств «умного дома» и прочих приложений. Рассмотрим подробнее характеристики и особенности трех самых популярных вариантов AC/DC-преобразователей MW открытого типа, подходящих для применения в промышленных устройствах - серий EPS, EPP и RPS представленных на Meanwell.market.

Подробнее>>
Не в сети
 Заголовок сообщения: Re: Преобразование RGB в WS2812
СообщениеДобавлено: Сб дек 28, 2024 13:23:30 
Прорезались зубы
Аватар пользователя

Карма: 6
Рейтинг сообщений: 31
Зарегистрирован: Чт янв 13, 2011 18:54:29
Сообщений: 239
Откуда: Минск
Рейтинг сообщения: 0
Для начала посмотрите осциллографом, что за сигналы. Какая частота. Какая скважность.

_________________
Учиться, учиться, ...


Вернуться наверх
 
Не в сети
 Заголовок сообщения: Re: Преобразование RGB в WS2812
СообщениеДобавлено: Сб дек 28, 2024 14:47:06 
Первый раз сказал Мяу!

Зарегистрирован: Сб фев 14, 2015 01:21:10
Сообщений: 22
Рейтинг сообщения: 0
Для начала посмотрите осциллографом, что за сигналы. Какая частота. Какая скважность.


К сожалению нет осциллографа. Управляются все pic12f675 через ключи. Связка там из lin to uart конвертера со встроенным линейным преобразователем с 12 на 5 вольт и собственно 3 ключа которыми управляет pic12f675. Частота и скважность возможно меняется, так как яркость и цвета меняются с ГУ.
Вчера переделал скетч, чтобы считало среднее напряжение каждого канала и затем преобразовывали в соответствующий цвет ленты. На полной яркости все хорошо, моргания пропали и цвета стали правильные. Но при средней яркости и допустим оранжевом цвете. Присутствуют небольшие плавные пульсации в виде изменения яркости свечения. Скорее всего потому что выборка происходит не в такт с частотой ШИМ


Вернуться наверх
 
Распродажа паяльного оборудования ATTEN!
Паяльные станции, паяльники и аксессуары по самой выгодной цене.

По промокоду radiokot скидка 10%
Не в сети
 Заголовок сообщения: Re: Преобразование RGB в WS2812
СообщениеДобавлено: Пт янв 03, 2025 20:26:46 
Электрический кот
Аватар пользователя

Карма: 2
Рейтинг сообщений: 47
Зарегистрирован: Вс мар 01, 2009 19:47:16
Сообщений: 1046
Откуда: Ростов-на-Дону
Рейтинг сообщения: 0
Жуть какая - пытаться измерить напряжение ШИМ с помощью АЦП, потом еще и преобразовать в протокол пикселей... Такое себе. А ТС не приходило в голову, что гораздо проще на UART сесть и оттуда данные просто брать? Тем более, что он уже есть и в ардуине тоже есть - бери не хочу.

_________________
Не важно чем все начнется. Важно чем кончится!


Вернуться наверх
 
Показать сообщения за:  Сортировать по:  Вернуться наверх
Начать новую тему Ответить на тему  [ Сообщений: 7 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  


Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
Extended by Karma MOD © 2007—2012 m157y
Extended by Topic Tags MOD © 2012 m157y