Собственно, у Вас два варианта: либо ликвидировать свою безграмотность в данном направлении, либо выбрать себе какое-нибудь другое направление.
Для ликвидации безграмотности сделал цепочку из 2 пикселей (pl9823), выход первого на вход второго через развязывающий диод и резистор на минус. Работает нормально, как будто этих элементов и нет вовсе.
Ну вот такой скетч в лоб написал, две ленты по 2 светодиода, один общий пиксель для двух лент через развязывающие диоды и один резистор. Всё работает - первые перемигиваются красным,зелёным, а второй (общий) меняет цвет аналогично...
Вообщем для экспериментов и перспектив использования широкие возможности :)
у меня целая гирлянда для украшения на НГ улицы, там 100 штук 2811, но резать не хочу.
Поэтому "кличь в пустоту": хорошо бы экпериментально определить нагрузочную способность: на сколько ветвить можно? Если входой импеданс высокий, то практически на сколько угодно, но ведь и выход не беспределен.... ща нужно в ДШ глянуть.
----------------
PS: А вот и нет данных в ДШ, так что тока "икскримент" - критерий истины! ;)))))
хорошо бы экпериментально определить нагрузочную способность: на сколько ветвить можно? Если входой импеданс высокий, то практически на сколько угодно, но ведь и выход не беспределен....
Это Вы вот про это?
ЕвгенийП пишет:
не перегрузят ли выход несколько входов, тоже смотреть надо.
Если про это, то ТС похоже не понял о чём здесь, а ведь тут может быть засада. Если немного перегружает, то оно всё может работать весело и хорошо, но недолго. Всё-таки я бы не стал извращаться. Тем более, какие проблемы ставить последовательно, как делают все нормальные люди? Разводить проще - а проблемы-то какие?
хорошо бы экпериментально определить нагрузочную способность: на сколько ветвить можно? Если входой импеданс высокий, то практически на сколько угодно, но ведь и выход не беспределен....
Это Вы вот про это?
ЕвгенийП пишет:
не перегрузят ли выход несколько входов, тоже смотреть надо.
Если про это, то ТС похоже не понял о чём здесь, а ведь тут может быть засада. Если немного перегружает, то оно всё может работать весело и хорошо, но недолго. Всё-таки я бы не стал извращаться. Тем более, какие проблемы ставить последовательно, как делают все нормальные люди? Разводить проще - а проблемы-то какие?
Да проблем никаких и практической пользы вроде тоже от того что пиксель может принимать информацию с двух и более направлений...
Но год назад (от жадности:) я тут спрашивал про ограничение количества светодиодов из-за объёма резервируемого буфера (вроде правильно выругался). Для УНО это около 600 единиц. А теперь такая мысль витает - пишим ленту скажем на 20 штук, а через мультиплексор/демультиплексор поочерёдно обновляем, например в 5 лент только "быстро". Получается "картинка" уже на 100 при 20 в ленте. Вот такое навеяло этими развязывающими диодами.
Да проблем никаких и практической пользы вроде тоже от того что пиксель может принимать информацию с двух и более направлений...
Проблема не в том, может ли принимать, а в том, может ли отдавать на две параллельные ветки!
leks пишет:
Но год назад (от жадности:) я тут спрашивал про ограничение количества светодиодов из-за объёма резервируемого буфера (вроде правильно выругался). Для УНО это около 600 единиц.
Вот не понимаю, если у Вас есть 10 логически одинаковых кусков ленты (светятся всегда одинаково), кто Вас заставляет иметь буфер на все диоды сразу? Кто Вам мешает вместо танцев с бубнами диодами просто десять раз выдавать на ленту один и тот же кусок буфера? Где тут перерасход памяти? А вот отсутствие танцев/секса с диодами и резисторами и прямая, простая разводка платы - налицо.
Мне казалось, что выход всегда способен тянуть несколько входов.., как он там называется?, "коэффициент размножения". Проверять нет смысла - в чём фишка?, вместо ленты-ветви дерева.
Буфер как я помню с прошлогоднего разговора ограничен числом- нет просто места писать программу для куба с ребром 8 или 9.
Коэффициент разветвления - это пережиток ТТЛ логики, у которой на входе стоял многоэмиттерный транзистор, входные эмиттеры которого потребляли довольно большой постоянный ток. Соответственно, коэффициент разветвления - это отношение максимального выходного тока к входному току.
У современной КМОП логики очень большое входное сопростивление, так что входным постоянным током можно пренебречь, зато заметная входная емкость. А т.к. выходной ток, как и в случае ТТЛ, ограничен, длительность фронтов (а, следовательно, и задержка распространения сигнала) напрямую зависит от количества подключенных входов. Другими словами, в статическом режиме коэффициент разветвления приближается к бесконечности, но резко уменьшается по мере увеличения частоты переключений. Т.е. для КМОП коэффициент разветвления в традиционном понимании лишен смысла.
Ясно... А то я вчера забыл указать номинал резистора на минус. Он был 4,7 кОм. Теперь надо что?, конденсатором шунтировать и узнавать ёмкость при которой сигнал перестанет передаваться? Или проще, провести опыт на серии параллельно включённых пикселей, когда пойдут сбои?
Попробовал на макетке. 5 параллельно подключил, всё работает. Думаю всем всё понятно.
Нет, не всем, и не всё. Но, главное, что Вам понятно, и мы за Вас рады :)
Ну, я не в глобальном плане... Нее...
В том, что выход умного светодиода можно подключать к нескольким входам как общий и наоборот - один вход может являться общим для нескольких выходов. Так делать нельзя, но если очень хочется, то можно.
Помогите ребята есть плата леонардо + RTC module DS1302 + display TM1637 + светодиоды p9823 60шт помогите со скетчом просьба!!! есть два скетча времени и дисплея но их соединить не получается, а с диодами вообще дуб дуб, там какой то neoflеsh используют как читал( мне хотелось бы что бы бегали 60 диодов как на часах секундная стрелка, каждый круг новый цвет, а на дисплее показывалось только часы и минуты) Я немного дуб оказывается, думал научился но что то не получается со скетчом))))
#include <DS1302.h>
// Init the DS1302
DS1302 rtc(2, 3, 4);
void setup()
{
// Set the clock to run-mode, and disable the write protection
rtc.halt(false);
rtc.writeProtect(false);
// Setup Serial connection
Serial.begin(9600);
// The following lines can be commented out to use the values already stored in the DS1302
rtc.setDOW(FRIDAY); // Set Day-of-Week to FRIDAY
rtc.setTime(9, 56, 0); // Set the time to 12:00:00 (24hr format)
rtc.setDate(30, 11, 2018); // Set the date to August 6th, 2010
}
void loop()
{
// Send Day-of-Week
Serial.print(rtc.getDOWStr());
Serial.print(" ");
// Send date
Serial.print(rtc.getDateStr());
Serial.print(" -- ");
// Send time
Serial.println(rtc.getTimeStr());
// Wait one second before repeating :)
delay (1000);
}
Наверное, у меня нет образования в данном направлении.
Наверное.
Собственно, у Вас два варианта: либо ликвидировать свою безграмотность в данном направлении, либо выбрать себе какое-нибудь другое направление.
а зря вы так быстро сдаетесь. Я бы на вашем месте собрал и так и так - и сравнил. Неужели не интересно?
Конечно интересно, поэтому я и спрашивал вас, попробую сам потом.
Наверное.
Собственно, у Вас два варианта: либо ликвидировать свою безграмотность в данном направлении, либо выбрать себе какое-нибудь другое направление.
Для ликвидации безграмотности сделал цепочку из 2 пикселей (pl9823), выход первого на вход второго через развязывающий диод и резистор на минус. Работает нормально, как будто этих элементов и нет вовсе.
// Подключаем библиотеку Adafruit NeoPixel. #include "Adafruit_NeoPixel.h" // Указываем, какое количество пикселей у нашей ленты. #define LED_COUNT1 2 #define LED_COUNT2 2 // Указываем, к какому порту подключен вход ленты DIN. #define LED_PIN1 6 #define LED_PIN2 7 Adafruit_NeoPixel strip1 = Adafruit_NeoPixel(LED_COUNT1, LED_PIN1, NEO_RGB + NEO_KHZ400);// Создаем переменную strip для управления нашей лентой. Adafruit_NeoPixel strip2 = Adafruit_NeoPixel(LED_COUNT2, LED_PIN2, NEO_RGB + NEO_KHZ400);// Создаем переменную strip для управления нашей лентой. void setup() { strip1.begin(); strip2.begin(); } void loop() { strip1.setPixelColor(0, strip1.Color(5,0,0));//включение пикселя strip1.setPixelColor(1, strip1.Color(5,0,0));//включение пикселя strip2.setPixelColor(0, strip2.Color(0,0,0));//выключение пикселя strip2.setPixelColor(1, strip2.Color(0,0,0));//выключение пикселя strip2.show();strip1.show();delay(1000); strip1.setPixelColor(0, strip1.Color(0,0,0));//выключение пикселя strip1.setPixelColor(1, strip1.Color(0,0,0));//выключение пикселя strip2.setPixelColor(0, strip1.Color(0,5,0));//включение пикселя strip2.setPixelColor(1, strip1.Color(0,5,0));//включение пикселя strip1.show();strip2.show();delay(1000); }Ну вот такой скетч в лоб написал, две ленты по 2 светодиода, один общий пиксель для двух лент через развязывающие диоды и один резистор. Всё работает - первые перемигиваются красным,зелёным, а второй (общий) меняет цвет аналогично...
Вообщем для экспериментов и перспектив использования широкие возможности :)
у меня целая гирлянда для украшения на НГ улицы, там 100 штук 2811, но резать не хочу.
Поэтому "кличь в пустоту": хорошо бы экпериментально определить нагрузочную способность: на сколько ветвить можно? Если входой импеданс высокий, то практически на сколько угодно, но ведь и выход не беспределен.... ща нужно в ДШ глянуть.
----------------
PS: А вот и нет данных в ДШ, так что тока "икскримент" - критерий истины! ;)))))
Тут вот товарищ тоже экспериментировал: https://www.electro-tech-online.com/threads/splitting-data-signal-of-ws2811-into-many-outputs.149610/
Правда я не понял, что в итоге - башка сегодня не переводит что-то.
хорошо бы экпериментально определить нагрузочную способность: на сколько ветвить можно? Если входой импеданс высокий, то практически на сколько угодно, но ведь и выход не беспределен....
Это Вы вот про это?
не перегрузят ли выход несколько входов, тоже смотреть надо.
Если про это, то ТС похоже не понял о чём здесь, а ведь тут может быть засада. Если немного перегружает, то оно всё может работать весело и хорошо, но недолго. Всё-таки я бы не стал извращаться. Тем более, какие проблемы ставить последовательно, как делают все нормальные люди? Разводить проще - а проблемы-то какие?
хорошо бы экпериментально определить нагрузочную способность: на сколько ветвить можно? Если входой импеданс высокий, то практически на сколько угодно, но ведь и выход не беспределен....
Это Вы вот про это?
не перегрузят ли выход несколько входов, тоже смотреть надо.
Если про это, то ТС похоже не понял о чём здесь, а ведь тут может быть засада. Если немного перегружает, то оно всё может работать весело и хорошо, но недолго. Всё-таки я бы не стал извращаться. Тем более, какие проблемы ставить последовательно, как делают все нормальные люди? Разводить проще - а проблемы-то какие?
Да проблем никаких и практической пользы вроде тоже от того что пиксель может принимать информацию с двух и более направлений...
Но год назад (от жадности:) я тут спрашивал про ограничение количества светодиодов из-за объёма резервируемого буфера (вроде правильно выругался). Для УНО это около 600 единиц. А теперь такая мысль витает - пишим ленту скажем на 20 штук, а через мультиплексор/демультиплексор поочерёдно обновляем, например в 5 лент только "быстро". Получается "картинка" уже на 100 при 20 в ленте. Вот такое навеяло этими развязывающими диодами.
Да проблем никаких и практической пользы вроде тоже от того что пиксель может принимать информацию с двух и более направлений...
Проблема не в том, может ли принимать, а в том, может ли отдавать на две параллельные ветки!
Но год назад (от жадности:) я тут спрашивал про ограничение количества светодиодов из-за объёма резервируемого буфера (вроде правильно выругался). Для УНО это около 600 единиц.
Вот не понимаю, если у Вас есть 10 логически одинаковых кусков ленты (светятся всегда одинаково), кто Вас заставляет иметь буфер на все диоды сразу? Кто Вам мешает вместо танцев с
бубнамидиодами просто десять раз выдавать на ленту один и тот же кусок буфера? Где тут перерасход памяти? А вот отсутствие танцев/секса с диодами и резисторами и прямая, простая разводка платы - налицо.Мне казалось, что выход всегда способен тянуть несколько входов.., как он там называется?, "коэффициент размножения". Проверять нет смысла - в чём фишка?, вместо ленты-ветви дерева.
Буфер как я помню с прошлогоднего разговора ограничен числом- нет просто места писать программу для куба с ребром 8 или 9.
Мне казалось,
Ну, так перекреститесь, раз казалось.
У любого выхода есть нагрузочная способность, а любой вход - нагрузка. Хватит или нет - смотреть надо.
Мне казалось,
Ну, так перекреститесь, раз казалось.
У любого выхода есть нагрузочная способность, а любой вход - нагрузка. Хватит или нет - смотреть надо.
Как то это всё деструктивно...
Берём любой элемент, передающий сигнал "через себя без искажения" - с известным множителем размножения, например как у КМОП и всё.
с известным множителем размножения, ......
Ой, а это кто?))))
с известным множителем размножения, ......
Ой, а это кто?))))
Коэффициент разветвления или нагрузки...вот.
Вот например...
https://megalektsii.ru/s2011t1.html
Да понял я, понял, звучало как-то двусмысленно.))))
P/S Фермерствую, думал может самцов уволить можно будет.))))
Коэффициент разветвления - это пережиток ТТЛ логики, у которой на входе стоял многоэмиттерный транзистор, входные эмиттеры которого потребляли довольно большой постоянный ток. Соответственно, коэффициент разветвления - это отношение максимального выходного тока к входному току.
У современной КМОП логики очень большое входное сопростивление, так что входным постоянным током можно пренебречь, зато заметная входная емкость. А т.к. выходной ток, как и в случае ТТЛ, ограничен, длительность фронтов (а, следовательно, и задержка распространения сигнала) напрямую зависит от количества подключенных входов. Другими словами, в статическом режиме коэффициент разветвления приближается к бесконечности, но резко уменьшается по мере увеличения частоты переключений. Т.е. для КМОП коэффициент разветвления в традиционном понимании лишен смысла.
Ясно... А то я вчера забыл указать номинал резистора на минус. Он был 4,7 кОм. Теперь надо что?, конденсатором шунтировать и узнавать ёмкость при которой сигнал перестанет передаваться? Или проще, провести опыт на серии параллельно включённых пикселей, когда пойдут сбои?
А потом не забыть поменять частоту с 800 кГц на 400 кГц. Пользы всё равно не видно.
Попробовал на макетке. 5 параллельно подключил, всё работает. Думаю всем всё понятно.
Попробовал на макетке. 5 параллельно подключил, всё работает. Думаю всем всё понятно.
Нет, не всем, и не всё. Но, главное, что Вам понятно, и мы за Вас рады :)
Попробовал на макетке. 5 параллельно подключил, всё работает. Думаю всем всё понятно.
Нет, не всем, и не всё. Но, главное, что Вам понятно, и мы за Вас рады :)
Ну, я не в глобальном плане... Нее...
В том, что выход умного светодиода можно подключать к нескольким входам как общий и наоборот - один вход может являться общим для нескольких выходов. Так делать нельзя, но если очень хочется, то можно.
Помогите ребята есть плата леонардо + RTC module DS1302 + display TM1637 + светодиоды p9823 60шт помогите со скетчом просьба!!! есть два скетча времени и дисплея но их соединить не получается, а с диодами вообще дуб дуб, там какой то neoflеsh используют как читал( мне хотелось бы что бы бегали 60 диодов как на часах секундная стрелка, каждый круг новый цвет, а на дисплее показывалось только часы и минуты) Я немного дуб оказывается, думал научился но что то не получается со скетчом))))
#include <DS1302.h> // Init the DS1302 DS1302 rtc(2, 3, 4); void setup() { // Set the clock to run-mode, and disable the write protection rtc.halt(false); rtc.writeProtect(false); // Setup Serial connection Serial.begin(9600); // The following lines can be commented out to use the values already stored in the DS1302 rtc.setDOW(FRIDAY); // Set Day-of-Week to FRIDAY rtc.setTime(9, 56, 0); // Set the time to 12:00:00 (24hr format) rtc.setDate(30, 11, 2018); // Set the date to August 6th, 2010 } void loop() { // Send Day-of-Week Serial.print(rtc.getDOWStr()); Serial.print(" "); // Send date Serial.print(rtc.getDateStr()); Serial.print(" -- "); // Send time Serial.println(rtc.getTimeStr()); // Wait one second before repeating :) delay (1000); }#include <TimerOne.h> #include "TM1637.h" #define ON 1 #define OFF 0 int8_t TimeDisp[] = {0x00,0x00,0x00,0x00}; unsigned char ClockPoint = 1; unsigned char Update; unsigned char halfsecond = 0; unsigned char second; unsigned char minute = 0; unsigned char hour = 12; #define CLK 6//pins definitions for TM1637 and can be changed to other ports #define DIO 5 TM1637 tm1637(CLK,DIO); void setup() { tm1637.set(); tm1637.init(); Timer1.initialize(500000);//timing for 500ms Timer1.attachInterrupt(TimingISR);//declare the interrupt serve routine:TimingISR } void loop() { if(Update == ON) { TimeUpdate(); tm1637.display(TimeDisp); } } void TimingISR() { halfsecond ++; Update = ON; if(halfsecond == 2){ second ++; if(second == 60) { minute ++; if(minute == 60) { hour ++; if(hour == 24)hour = 0; minute = 0; } second = 0; } halfsecond = 0; } // Serial.println(second); ClockPoint = (~ClockPoint) & 0x01; } void TimeUpdate(void) { if(ClockPoint)tm1637.point(POINT_ON); else tm1637.point(POINT_OFF); TimeDisp[0] = hour / 10; TimeDisp[1] = hour % 10; TimeDisp[2] = minute / 10; TimeDisp[3] = minute % 10; Update = OFF; }