Да, конечно лучше убрать
Да, конечно лучше убрать
Chip, подскажите пожалуйста!
1. Обязательно использовать WS2801, когда можно взять WS2812?
2. Стандартные ленты идут по 32/36 LED, а если взять 60/64 LED, они будут дружить?
3. Есть ещё вот такой вариант Digital WS2801 Dream Color LED Strip Ribbons , 96leds/m With 32 Pixels ICS, 5m 480 LEDs Waterproof IP65 DC 12V то же в пролете?)
4. Помимо подключения по USB есть ещё какие варианты, например LAN или RS-232?
1 - можно
2 - думаю что будут
3 - чип 2801, значит будет работать
4 - пока нет, но будет
Chip, что можно придумать с большим расстоянием ПК - ТВ (~17-18 метров)?
1. Активный USB?! Не будет ли отставать подсветка?
2. Какую максимальную длину провода можно использовать между LED и Arduino?
1 - не пробовал
2 - как можно короче, так как еще сама лента вносит паразитную емкость
Можно использовть BlueTooth , с UART мостом на чипе FTDI
В компьютер подключаем преобразователь + BT, на стороне телевизора BT+Arduino+LED лента
Если использовать программы работающие с com портом, то на стороне ПК достаточно любого BT без преобразователя USB-UART
Последний раз редактировалось Chip; 24.01.2014 в 02:40.
Доработал скетч для ардуинки таким образом:
Использовать на компе в таком случае надо версию на BRG из второго поста темы.PHP код:
#include <CyberLib.h>
unsigned long nTime, rTime, t;
void setup()
{
UART_Init(115200);
StartSPI(0, 8, 1);//MODE0, DIV8, MSBFIRST
for(int16_t z=0; z<768; z++) SendSPI(0); //погасить все пикселы ленты
delay_ms(1); //пауза для инициализации ленты
}
uint8_t mas_data[3];
uint8_t j=0;
void loop()
{ Start
uint8_t data;
t = millis(); //получаем текущее время
UART_SendByte(170); //отправляем байт синхронизации для ПК
if (UART_ReadByte(data)) //ждем от ПК первый байт с колличеством пикселей ленты
{
uint16_t pix_num = data*3; //получаем общее колличество цветовых каналов ленты
uint16_t eTime = micros()-rTime; //получим время с момента окончания загрузки
if( eTime < 900) delay_us(eTime); //ждем полной инициализации (минус 100мкс для загрузки след. байта)
for(uint16_t i=0; i<pix_num; i++)
{
//получаем значения для всех цветов, а затем отсылаем на ленту в нужном нам порядке
if(j==2)
{
mas_data[j]=uart_read();
SendSPI(mas_data[0]); //Синий
SendSPI(mas_data[2]); //Зелёный
SendSPI(mas_data[1]); //Красный
j=0;
}
else
{
mas_data[j]=uart_read();
j++;
}
}
rTime = micros(); //стартуем счетчик времени инициализации ленты
nTime = t; // //обнулить время простоя
} else {
if((t - nTime) > 4000) ///гасим подсветку если нет потока более 2 сек
{
for(int16_t z=0; z<768; z++) SendSPI(0); //погасить все пикселы ленты
nTime = t;
}
}
End }
//***************************************************************************
unsigned char uart_read(void)
{
uint8_t val;
for (uint8_t i=0; i<255; ++i) //цикл ожидания байта данных из UART порта, время ожидания 2560мкс
{
if(UART_ReadByte(val)) break; //если байт данных получен, то цикл прерывается
delay_us(10); //время ожидания байта
}
return val;
}
Chip, скорости USB 1.1 хватит на обслуживание ~250 светодиодов (зон)?
Последний раз редактировалось PAV; 24.01.2014 в 19:43.
Чипов сколько?
Это к моему посту относится? Если да, то о каких чипах идет речь?
По моим приблизительным подсчетам получается, ~250 RGB LED WS2801/WS2812, не много ли для данной конструкции на Arduino, и хватит ли пропускной способности USB 1.1
Думаю попробовать заказать USB CAT5/CAT5E/6 RJ45 Ethernet Extender Lan Extension Cable Repeater Adapter или же сразу взять по дороже "активный" USB 2.0
Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)