Большие плавные часы Arduino & WS2812 flowing clock
Re: Большие плавные часы Arduino & WS2812 flowing clock
Поделитесь пожалуйста исходником с целью получения возможности по подключению датчиков, изменению настроек, для понимания процесса в конце концов, что на что влияет. Ну не могу я тупо залить прошивку и пользоваться, хочется поковыряться в "потрохах" с целью изучения влияющих параметров, HEX залить любой "инженер" может, а прикинуть что на что влияет, добавить по такому ж принципу еще два разряда для отобраения секунд, процентов, градусов, (ед. изм) да и не помешало бы ознакомиться с влияющим параметром на подключение ленты в направлении от часов к секундам и наоборот, опять же большинство изобретателей придерживаются последовательности соединения сегментов C,D,E,F,A,B,G у в Вашей версии порядок подключения сегментов G,C,D,E,F,A,B, тут тоже хотелось бы разобраться почему. В общем преследую цель собрать макетку из 6-ти восьмерок, и попытаться доработать Ваш скетч под свои хотелки. Прошу Вас, поделитесь пожалуйста скетчем. Да и большая просьба сочинить подробный мануал по настройкам, а то видео в ютубе смотрел так и ничего те понял. Как у нас на заводе говорят: -"техпроцесс должен быть написан так, чтобы можно было посадить за рабочее место ребенка умеющего читать, и читая техпроцесс даже ребенок должен суметь без единой ошибки изготовить изделие для нужд министерства обороны".
-
b612
- Вымогатель припоя
- Сообщения: 584
- Зарегистрирован: Чт янв 07, 2010 16:58:11
- Контактная информация:
Re: Большие плавные часы Arduino & WS2812 flowing clock
[uquote="67RUS",url="/forum/viewtopic.php?p=3940677#p3940677"]Поделитесь пожалуйста исходником с целью получения возможности по подключению датчиков, изменению настроек, для понимания процесса в конце концов, что на что влияет.[/uquote]Скетч я жму.
Могу дать только в обмен на разводку платы и то с условием, что он нигде в сети не всплывёт.
Описание настроек в теме есть.
в видео совсем старая версия туда смотреть не надо.
Основные настройки (время дата, будильники достаточно интуитивны.
Номерные описаны тоже боле-менее понятно. С этим у людей трудностей не возникает. Даже у моей мамы 70+.
[uquote="67RUS",url="/forum/viewtopic.php?p=3940677#p3940677"]Ну не могу я тупо залить прошивку и пользоваться, хочется поковыряться в "потрохах" с целью изучения влияющих параметров[/uquote]
Залейте. посмотрите и пишите своё.
Уверен, что через полгодика поймёте, что написали то же самое.
[uquote="67RUS",url="/forum/viewtopic.php?p=3940677#p3940677"]добавить по такому ж принципу еще два разряда для отобраения секунд, процентов, градусов, (ед. изм)[/uquote]
Каждая фигня в проекте очень жестко обоснована.
Даже анимация нужна не для красоты, а чтобы глаза "не дёргало", особенно по ночам.
Добавление ещё двух разрядов делают девайс громоздким и перегруженным.
Когда смотришь секунды, не нужны часы.
Особенно это напрягает когда начинаешь продумывать корпус.
Жирная строка через полкомнаты в прямоугольном ящике, как у большинства это не эстетично. Даже из отдельных воздушных сегментов и то "тяжеловато"
Процентов нет. Согласен, Если надо добавлю ещё пару светиков под это дело.
Но уверен, что не надо.
Я эти часы "вылизываю" второй год.
Когда есть готовый вариант, то появляется понимание, что реально нужно добавить, а что не нужно. А пока нет - одни фантазии.
Первые 4 варианта отличались друг от друга довольно сильно.
Теперь даже фантазии не хватает, чего можно такого впендюрить хоть сколь-нибудь обоснованного.
[uquote="67RUS",url="/forum/viewtopic.php?p=3940677#p3940677"]да и не помешало бы ознакомиться с влияющим параметром на подключение ленты в направлении от часов к секундам и наоборот, опять же большинство изобретателей придерживаются последовательности соединения сегментов C,D,E,F,A,B,G у в Вашей версии порядок подключения сегментов G,C,D,E,F,A,B, тут тоже хотелось бы разобраться почему.[/uquote]Так вышло случайно.
В прочем это легко переделывается.
Я одно время пытался сопровождать прошивки на оба варианта схемы.
Была даже прошивка под 6 разрядов.
Но поскольку мишаниного железа у меня нет, то нет гарантии, что оно заработает на последней версии моей прошивки.
[uquote="67RUS",url="/forum/viewtopic.php?p=3940677#p3940677"]В общем преследую цель собрать макетку из 6-ти восьмерок[/uquote]Есть более интересные задачи, на которые можно потратить время.
У меня есть практически готовый проект девайса "Сталкер"
Таймер-градусник-фонарик-лазер-УФ-люксметр-звонок
с промежуточными функциями типа
"включить звонок при снижении/повышении освещенности
или температуры."
"выключить/включить фонарик по времени"
"включить звонок при обрыве шлейфа или лазерного луча"
"термостатировать"
и т.п.
Есть реальный прототип, которым я активно пользуюсь уже почти год.
Реально полезнейший девайс хоть для дома хоть для дачи хоть для гаража, хоть в походе !
ПРОВЕРЕНО !
Чаще всего нужен таймер, фонарик и лазер.
Таймер сделан как на современных микроволновках. Без лишних кнопок и без лишних касаний. Интервал устанавливается вообще не глядя в 1-3 касания
Вот этот скетч я не прячу.
Проекту нужна плата и корпус. И возможно ещё какие-то фишки прошивки.
Скажем не плохо-бы добавить магнитометр, выносную сирену и сервопривод.
Есть мечта сделать миниатюрный вариант. скажем поясной.
Там вес набирается не более 150-200 граммов
А то сейчас такая "дубинка" 20 см из профильной трубы 25х50
весом чуть не килограмм.
https://radiokot.ru/forum/viewtopic.php ... 9#p3562319
Есть ещё проект "Портативный монитор СО2 температуры и сквозняка"
Весьма полезная штучка. Тоже работает у меня второй год.
Нужно развести плату. Корпус шикарный уже есть.
https://radiokot.ru/forum/viewtopic.php ... 3#p3796213
Могу дать только в обмен на разводку платы и то с условием, что он нигде в сети не всплывёт.
Описание настроек в теме есть.
в видео совсем старая версия туда смотреть не надо.
Основные настройки (время дата, будильники достаточно интуитивны.
Номерные описаны тоже боле-менее понятно. С этим у людей трудностей не возникает. Даже у моей мамы 70+.
[uquote="67RUS",url="/forum/viewtopic.php?p=3940677#p3940677"]Ну не могу я тупо залить прошивку и пользоваться, хочется поковыряться в "потрохах" с целью изучения влияющих параметров[/uquote]
Залейте. посмотрите и пишите своё.
Уверен, что через полгодика поймёте, что написали то же самое.
[uquote="67RUS",url="/forum/viewtopic.php?p=3940677#p3940677"]добавить по такому ж принципу еще два разряда для отобраения секунд, процентов, градусов, (ед. изм)[/uquote]
Каждая фигня в проекте очень жестко обоснована.
Даже анимация нужна не для красоты, а чтобы глаза "не дёргало", особенно по ночам.
Добавление ещё двух разрядов делают девайс громоздким и перегруженным.
Когда смотришь секунды, не нужны часы.
Особенно это напрягает когда начинаешь продумывать корпус.
Жирная строка через полкомнаты в прямоугольном ящике, как у большинства это не эстетично. Даже из отдельных воздушных сегментов и то "тяжеловато"
Процентов нет. Согласен, Если надо добавлю ещё пару светиков под это дело.
Но уверен, что не надо.
Я эти часы "вылизываю" второй год.
Когда есть готовый вариант, то появляется понимание, что реально нужно добавить, а что не нужно. А пока нет - одни фантазии.
Первые 4 варианта отличались друг от друга довольно сильно.
Теперь даже фантазии не хватает, чего можно такого впендюрить хоть сколь-нибудь обоснованного.
[uquote="67RUS",url="/forum/viewtopic.php?p=3940677#p3940677"]да и не помешало бы ознакомиться с влияющим параметром на подключение ленты в направлении от часов к секундам и наоборот, опять же большинство изобретателей придерживаются последовательности соединения сегментов C,D,E,F,A,B,G у в Вашей версии порядок подключения сегментов G,C,D,E,F,A,B, тут тоже хотелось бы разобраться почему.[/uquote]Так вышло случайно.
В прочем это легко переделывается.
Я одно время пытался сопровождать прошивки на оба варианта схемы.
Была даже прошивка под 6 разрядов.
Но поскольку мишаниного железа у меня нет, то нет гарантии, что оно заработает на последней версии моей прошивки.
[uquote="67RUS",url="/forum/viewtopic.php?p=3940677#p3940677"]В общем преследую цель собрать макетку из 6-ти восьмерок[/uquote]Есть более интересные задачи, на которые можно потратить время.
У меня есть практически готовый проект девайса "Сталкер"
Таймер-градусник-фонарик-лазер-УФ-люксметр-звонок
с промежуточными функциями типа
"включить звонок при снижении/повышении освещенности
или температуры."
"выключить/включить фонарик по времени"
"включить звонок при обрыве шлейфа или лазерного луча"
"термостатировать"
и т.п.
Есть реальный прототип, которым я активно пользуюсь уже почти год.
Реально полезнейший девайс хоть для дома хоть для дачи хоть для гаража, хоть в походе !
ПРОВЕРЕНО !
Чаще всего нужен таймер, фонарик и лазер.
Таймер сделан как на современных микроволновках. Без лишних кнопок и без лишних касаний. Интервал устанавливается вообще не глядя в 1-3 касания
Вот этот скетч я не прячу.
Проекту нужна плата и корпус. И возможно ещё какие-то фишки прошивки.
Скажем не плохо-бы добавить магнитометр, выносную сирену и сервопривод.
Есть мечта сделать миниатюрный вариант. скажем поясной.
Там вес набирается не более 150-200 граммов
А то сейчас такая "дубинка" 20 см из профильной трубы 25х50
весом чуть не килограмм.
https://radiokot.ru/forum/viewtopic.php ... 9#p3562319
Есть ещё проект "Портативный монитор СО2 температуры и сквозняка"
Весьма полезная штучка. Тоже работает у меня второй год.
Нужно развести плату. Корпус шикарный уже есть.
https://radiokot.ru/forum/viewtopic.php ... 3#p3796213
Re: Большие плавные часы Arduino & WS2812 flowing clock
Скетч я жму. -А в чем проблема?
Могу дать только в обмен на разводку платы -А чего там разводить? Там же сплошной навесной монтаж, ленты приклеены и между собой соединяются проводами, датчики все висят на кабелях и закреплены вне корпуса, что бы нагрев содержимого не влиял на точность измерений, и противоположные концы припаяны к разъемам, ответные части которых закреплены на корпусе и опять же при помощи проводов припаяны к ардуине, и то с условием, что он нигде в сети не всплывёт. А это что занаезд, обоснуйте, Вы где то видели что я выдавал чьито разработки за свои???, Вы вообще гдето видели мои видео в ютюбе с жаждой прославиться и заработать себе "лайков", Вы на каком то форуме вообще видели что бы я вроде Вас выеживался, гнул пальцы и выдавал чьито идеи за свои, требую обосновать наезд!!! Даже анимация нужна не для красоты -детский сад. А как же например заменить bmp280 на bme280 и реализовать измерение относительной влажности, ведь это дело все меняется и добавляется в скетче, прописываются порты прочее, разве не так, что Вы тут мне голову морочите, у самого небось и нет скетча, стырил небось готовый HEX у коллеге по радиоклубу 145.500, ведь если бы скетч был бы то какая проблема им поделиться, тем более при жажде по выпендриваться, какой типа ты крутой аньжинер?
Могу дать только в обмен на разводку платы -А чего там разводить? Там же сплошной навесной монтаж, ленты приклеены и между собой соединяются проводами, датчики все висят на кабелях и закреплены вне корпуса, что бы нагрев содержимого не влиял на точность измерений, и противоположные концы припаяны к разъемам, ответные части которых закреплены на корпусе и опять же при помощи проводов припаяны к ардуине, и то с условием, что он нигде в сети не всплывёт. А это что занаезд, обоснуйте, Вы где то видели что я выдавал чьито разработки за свои???, Вы вообще гдето видели мои видео в ютюбе с жаждой прославиться и заработать себе "лайков", Вы на каком то форуме вообще видели что бы я вроде Вас выеживался, гнул пальцы и выдавал чьито идеи за свои, требую обосновать наезд!!! Даже анимация нужна не для красоты -детский сад. А как же например заменить bmp280 на bme280 и реализовать измерение относительной влажности, ведь это дело все меняется и добавляется в скетче, прописываются порты прочее, разве не так, что Вы тут мне голову морочите, у самого небось и нет скетча, стырил небось готовый HEX у коллеге по радиоклубу 145.500, ведь если бы скетч был бы то какая проблема им поделиться, тем более при жажде по выпендриваться, какой типа ты крутой аньжинер?
Последний раз редактировалось 67RUS Вс дек 13, 2020 16:04:28, всего редактировалось 1 раз.
-
b612
- Вымогатель припоя
- Сообщения: 584
- Зарегистрирован: Чт янв 07, 2010 16:58:11
- Контактная информация:
Re: Большие плавные часы Arduino & WS2812 flowing clock
[uquote="67RUS",url="/forum/viewtopic.php?p=3940904#p3940904"]я крутой аньжинер[/uquote]Когда делаешь единственный макет, согласен достаточно макетки
Но когда собираешь 8-ой экземпляр то возиться целый день с этой долбаной макеткой, мягко говоря, не хочется.
требования к платке имеются.
На ней кроме ардуины и модулей времени и давления
должен быть
Разъём для перешивания
Разъём для внешних градусников
Для питания
двойной эмиттерный повторитель(УНЧ)
И пара мощных мосфетов для управления светильниками (мощными лентами)
(я сделал большое зеркало с подсветкой)
Кнопочки и контакты для припаивания внешних кнопок
Свободные ноги ардуины тоже вывести на контактные площадки
Вообщем в плате ЕСТЬ смысл.
Вариант прошивки есть и под BMP и под BME
Но когда собираешь 8-ой экземпляр то возиться целый день с этой долбаной макеткой, мягко говоря, не хочется.
требования к платке имеются.
На ней кроме ардуины и модулей времени и давления
должен быть
Разъём для перешивания
Разъём для внешних градусников
Для питания
двойной эмиттерный повторитель(УНЧ)
И пара мощных мосфетов для управления светильниками (мощными лентами)
(я сделал большое зеркало с подсветкой)
Кнопочки и контакты для припаивания внешних кнопок
Свободные ноги ардуины тоже вывести на контактные площадки
Вообщем в плате ЕСТЬ смысл.
Вариант прошивки есть и под BMP и под BME
Re: Большие плавные часы Arduino & WS2812 flowing clock
Мы так и непоняли друг друга, наверное я попал на украинский форум. Спасибо за помощь, ухожу от сюда.
-
b612
- Вымогатель припоя
- Сообщения: 584
- Зарегистрирован: Чт янв 07, 2010 16:58:11
- Контактная информация:
Re: Большие плавные часы Arduino & WS2812 flowing clock
[uquote="67RUS",url="/forum/viewtopic.php?p=3941088#p3941088"]ухожу от сюда.[/uquote]и зря
Тебе предлагают сотрудничество, а ты за мелкий "велосипед" ухватился.
Когда я начинал, я тоже взял чью-то схему чью-то прошивку в 30 строк кода.
Тогда просто не было готовых продвинутых решений.
Ну поиграешься маленько со скетчем. Ведь ничего сколь-нибудь значимого не изменишь. Ну датчик там шило на мыло переправишь.
Всё равно что брать жигули и ОТТЮНИНГОВАТЬ чтобы "летала".
Это ведь всё равно будут всё те же жигули.
Предложи что-то реально интересное.
Добавлено after 10 minutes 26 seconds:
PS
Так между прочим вот погляди это основа анимации
может пригодится
Тебе предлагают сотрудничество, а ты за мелкий "велосипед" ухватился.
Когда я начинал, я тоже взял чью-то схему чью-то прошивку в 30 строк кода.
Тогда просто не было готовых продвинутых решений.
Ну поиграешься маленько со скетчем. Ведь ничего сколь-нибудь значимого не изменишь. Ну датчик там шило на мыло переправишь.
Всё равно что брать жигули и ОТТЮНИНГОВАТЬ чтобы "летала".
Это ведь всё равно будут всё те же жигули.
Предложи что-то реально интересное.
Добавлено after 10 minutes 26 seconds:
PS
Так между прочим вот погляди это основа анимации
может пригодится
Спойлер
Код: Выделить всё
void convert() { //готовить пиксели к зажиганию
uint8_t pix;
uint16_t tripix;
if (obnovitTablo) {
obnovitTablo = false;
pereliv = true;
//сначала заполняем табло посегментно
#ifdef _b612
for (razryad = 0; razryad < 4; razryad++) //переберём разряды
#endif //#ifdef _b612
#ifdef _Mishany
for (razryad = 0; razryad < 6; razryad++) //переберём разряды
#endif //#ifdef _Mishany
{ razryadx21 = razryad * _LEDNASEGMENT * 7; //чтобы 21 раз не перемножать, перемножимо 1 раз и сохраним в переменную
switch (rejin) { //в зависимости от режима
case AdjChasy://VremyaToDIG();
case AdjMinuty://VremyaToDIG();
case ChasyMinuty: {
VremyaToDIG();
break;
}
case AdjDenNedeli://DayToDIG();
case DenMesyzaINedeli: {
DayToDIG();
break;
}
case AdjSekundy://VremyaMMSSToDIG();
case MinutyISekundy: {
VremyaMMSSToDIG();
break;
}
case AdjGod://YearToDIG();
case God: {
YearToDIG();
break;
}
#ifdef _BMPBME
case Davlenie: {
Davlenie_ToDIG();
break;
}
#ifdef _BME280
case Vlajnost: {
VlajnostToDIG();
break;
}
#endif//#ifdef _BME280
#endif//#ifdef _BMPBME
case RejOsveshennost: {
Osveshennost_ToDIG();
break;
}
case AdjDenMesyza://DateToDIG();
case AdjMesyz://DateToDIG();
case MesyazIDenMesyaza: {
DateToDIG();
break;
}
case RejinSettingsIndex:
case RejinSettings: {
Set_ToDIG();
break;
}
case Temperatura0:
case Temperatura1:
case Temperatura2:
case Temperatura3:
case Temperatura4: {
TermToDIG();
break;
}
case AdjAvtomat: {
A_ToDIG();
break;
}
#ifdef _Budilniki
case AdjBudilnikIndex: {
BudilnikIndex_ToDIG();
break;
}
case AdjBudilnikChasy://{BudilnikVremya_ToDIG();break;}
case AdjBudilnikMinuty: {
BudilnikVremya_ToDIG();
break;
}
case AdjBudilnikWDIndex:
case AdjBudilnikWD: {
BudilnikWD_ToDIG();
break;
}
#endif//#ifdef _Budilniki
#ifdef _Timer
case RejTimer: {
Timer_ToDIG();
break;
}
#endif//#ifdef _Timer
default: {
;
}
}
//if ((rejin >= Temperatura0) && (rejin <= Temperatura9)) {TermToDIG();}
// Serial.print("rejim.");
// Serial.println(rejin,DEC);
// Serial.print("cvet.");
// Serial.println(Cvet,DEC);
#ifdef _Mishany
//добавим смещение, возникающее из за точек
if (razryad >= 2) {
razryadx21 = razryadx21 + 2;
}
if (razryad >= 4) {
razryadx21 = razryadx21 + 2;
}
#endif //#ifdef _Mishany
for (uint8_t segment = 0; segment < 7; segment++) {//переберём сегменты
segmentx3 = segment * _LEDNASEGMENT; //перемножим и сохраним, чтобы потом 7 раз не перемножать
tagmask = pgm_read_byte(&digits[(DIG * 7) + 6 - segment]) * Cvet;
for (pix = 0; pix < _LEDNASEGMENT; pix++) //переберём пиксели в сегментах
{
Tag[razryadx21 + segmentx3 + pix] = tagmask;
//pixels.setPixelColor(razryadx21+segmentx3+pix, r,g,b);
}
}
}
//потушим прибамбасные (не сегментные) пиксели
#ifdef _b612
for (pix = pixTochkaVerh; pix < NUMPIXELS; pix++) {
Tag[pix] = 0;
}
#endif //#ifdef _b612
#ifdef _Mishany
Tag[pixTochkaVerh23] = 0;
Tag[pixTochkaNiz23] = 0;
Tag[pixTochkaVerh45] = 0;
Tag[pixTochkaNiz45] = 0;
#endif //#ifdef _Mishany
//дорабатываем поточечно
switch (rejin) { //в зависимости от режима
case AdjChasy://VremyaPix();
case AdjMinuty://VremyaPix();
case ChasyMinuty: {
VremyaPix();
break;
}
case AdjDenNedeli:{
DayToPix(CvetBelyj);
break;
}
case DenMesyzaINedeli: {
DayToPix(CvetDnyaNedeli);
break;
}
case AdjSekundy://VremyaMMSSToPix();
case MinutyISekundy: {
VremyaMMSSToPix();
break;
}
case AdjGod://YearToPix();
case God: {
YearToPix();
break;
}
case RejOsveshennost: {
Osveshennost_ToPix();
break;
}
case AdjDenMesyza://DateToPix();
case AdjMesyz://DateToPix();
case MesyazIDenMesyaza: {
DateToPix();
break;
}
case RejinSettingsIndex:
case RejinSettings: {
Set_ToPix();
break;
}
#ifdef _BMPBME
case Davlenie: {
Davlenie_ToPix();
break;
}
#endif//#ifdef _BMPBME
case Temperatura0:
case Temperatura1:
case Temperatura2:
case Temperatura3:
case Temperatura4:
{
TermToPix();
break;
}
#ifdef _DublScrToUART
case AdjAvtomat: {
A_ToPix();
break;
}
#endif//#ifdef _DublScrToUART
#ifdef _Budilniki
case AdjBudilnikIndex: {
BudilnikIndex_ToPix();
break;
}
case AdjBudilnikChasy: {
BudilnikVremya_ToPix();
break;
}
case AdjBudilnikMinuty: {
BudilnikVremya_ToPix();
break;
}
case AdjBudilnikWDIndex:
case AdjBudilnikWD: {
BudilnikWD_ToPix();
break;
}
#endif//#ifdef _Budilniki
#ifdef _Timer
case RejTimer: {
Timer_ToPix();
break;
}
#endif//#ifdef _Timer
default: {
;
}
}
#ifdef _DublScrToUART
if (tabloToUART)
{ for (uint8_t i = 0; i <= 6; i++)
{
Serial.write(DIGstr[i]);
}
Serial.write(0x0D);
}
#endif//#ifdef _DublScrToUART
}//obnovitTablo
//приблизим на шаг старую картинку к новой
LocalFlajok = true;//сбрасывается при любом непоследнем сдвиге
for (pix = 0; pix < NUMPIXELS; pix++) {
if ((!VremennoNeSpim) & Spim & (VsegdaDen | (!DenNoch)) ) //будем спать когда пора если всегда день или темно
//соответственно если пора спать но датчик активен и светло, то не спим
{ //если спим то любой базовый цвет будет черный CvetChernyj
basColorR = 0;
basColorG = 0;
basColorB = 0;
}
else
{
basColorR = Palitra[Tag[pix]][0];
basColorG = Palitra[Tag[pix]][1];
basColorB = Palitra[Tag[pix]][2];
}
switch (DelitelYarkosti)//в зависимости от режима
{
case 8: {
basColorR = basColorR / 256;
basColorG = basColorG / 256;
basColorB = basColorB / 256;
//spd = 1;
break;
}
case 7: {
basColorR = basColorR / 128;
basColorG = basColorG / 128;
basColorB = basColorB / 128;
//spd = 1;
break;
}
case 6: {
basColorR = basColorR / 64;
basColorG = basColorG / 64;
basColorB = basColorB / 64;
//spd = 1;
break;
}
case 5: {
basColorR = basColorR / 32;
basColorG = basColorG / 32;
basColorB = basColorB / 32;
//spd = 1;
break;
}
case 4: {
basColorR = basColorR / 16;
basColorG = basColorG / 16;
basColorB = basColorB / 16;
//spd = 1;
break;
}
case 3: {
basColorR = basColorR / 8;
basColorG = basColorG / 8;
basColorB = basColorB / 8;
//spd = 3;
break;
}
case 2: {
basColorR = basColorR / 4;
basColorG = basColorG / 4;
basColorB = basColorB / 4;
//spd = 5;
break;
}
case 1: {
basColorR = basColorR / 2;
basColorG = basColorG / 2;
basColorB = basColorB / 2;
//spd = 10;
break;
}
}
xTag[1] = basColorR;
xTag[0] = basColorG;
xTag[2] = basColorB;
//переберём цвета (RGB)
#ifdef __NeoPixel
tripix = pix * 3;
CurPix = Cur + tripix;
for (uint8_t i = 0; i < 3; i++)
{ if ((CurPix[i]) < (xTag[i])) //определимся надо уменьшать или увеличивать
//если до цели больше чем один шаг, делаем шаг
{ if (((xTag[i]) - (CurPix[i])) > (shagx[i])) {
CurPix[i] = (CurPix[i]) + (shagx[i]);
LocalFlajok = false;
}
//если до цели меньше чем один шаг, приравниваемся к цели
else if (((xTag[i]) - (CurPix[i])) > 0) {
CurPix[i] = xTag[i];
}
}
else
//если до цели больше чем один шаг, делаем шаг
{ if (((CurPix[i]) - (xTag[i])) > shagx[i]) {
(CurPix[i]) = (CurPix[i]) - (shagx[i]);
LocalFlajok = false;
}
//если до цели меньше чем один шаг, приравниваемся к цели
else if (((CurPix[i]) - (xTag[i])) > 0) {
CurPix[i] = xTag[i];
}
}
}
//перенесём в табло
//pixels.setPixelColor(pix, CurPix[1], CurPix[0], CurPix[2]);
#endif
}
if (LocalFlajok) {
pereliv = false; //перелив закончился
}
#ifdef _Zajcy
//зайчики
if (ZajcyOnOFF != 0)
{
//зайцы бегают только когда день и не спим
if (!Spim && DenNoch)
{
uint8_t yark;//яркость зайца
for (pix = 0; pix < 3; pix++) //переберём трёх зайцев
{ if (Tag[zayats[pix][0]] != 0) {
yark = 35; //если бежит по включенному яркоссть одна
}
else {
yark = 6; //если бежит по выключенному яркость другая
}
//Запомним цвет полянки на которой будет сидеть заяц
PolyankaIsporxhena = true;
CurPix = Cur + ((zayats[pix][0]) * 3);
zayats[pix][2] = CurPix[0];
zayats[pix][3] = CurPix[1];
zayats[pix][4] = CurPix[2];
zayats[pix][5] = zayats[pix][0];
switch (pix)
{
case 0: {
#ifdef __NeoPixel
pixels.setPixelColor(zayats[pix][0], yark * 2, 0, 0); //красный
#endif
//spd = spd * 2;
break;
}
case 1: {
#ifdef __NeoPixel
pixels.setPixelColor(zayats[pix][0], 0, yark, 0); //зеленый
#endif
//spd = spd * 3;
break;
}
case 2: {
#ifdef __NeoPixel
pixels.setPixelColor(zayats[pix][0], 0, 0, yark); //синий
#endif
//spd = spd * 4;
break;
}
}
}
}
}
#ifdef __NeoPixel
pixels.show();
#endif
//после того как вывели массив в реальные светики
//восстановим исходные цвета всех полянок
if (PolyankaIsporxhena)
{ for (pix = 0; pix < 3; pix++) //переберём трёх зайцев
{ CurPix = Cur + ((zayats[pix][5]) * 3);
CurPix[0] = zayats[pix][2];
CurPix[1] = zayats[pix][3];
CurPix[2] = zayats[pix][4];
}
PolyankaIsporxhena = false;
}
#else//#ifdef _Zajcy
#ifdef __NeoPixel
pixels.show();
#endif
#endif//#ifdef _Zajcy
}
#ifdef _Zajcy-
b612
- Вымогатель припоя
- Сообщения: 584
- Зарегистрирован: Чт янв 07, 2010 16:58:11
- Контактная информация:
Re: Большие плавные часы Arduino & WS2812 flowing clock
Дошли руки до ESP32
В связи с этим может быть у кого есть код, как выводить звук через ШИМ на ESP-хе ?
В связи с этим может быть у кого есть код, как выводить звук через ШИМ на ESP-хе ?
