Форум программистов, компьютерный форум, киберфорум
Arduino
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.89/9: Рейтинг темы: голосов - 9, средняя оценка - 4.89
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 1

Программирование RGB ленты на Arduino

04.12.2017, 22:25. Показов 2088. Ответов 2

Студворк — интернет-сервис помощи студентам
Доброго здравия!

Интересует создание рандомайзера для RGB ленты. Нужен полный охват всех цветов (16,5 млн) в рандомном порядке,переключение цвета с помощью плавного перехода(чтобы R,G,B изменялись с дискретностью в единицу)

Есть такой исходник, который делает переход цветов, но по ограниченному периоду.(Охватывает всего лишь до трёх тысяч цветов)
Есть идея, что можна реализовать это, как в бильярде, а именно в векторном виде, чтобы вектор отбивался от граней куба.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#include <time.h>
int a1,a2,a3,c1,c2,c3,l;
void setup() {
  Serial.begin(9600);
  // put your setup code here, to run once:
 srand(time(NULL));
  a1=rand() %255+1;
  analogWrite(3, a1);
  a2=rand() %255+1;
  analogWrite(5, a2);
  a3=rand() %255+1;
  analogWrite(6, a3);
  
c1=1;
c2=0;
c3=1;
  
 
}
 
void loop() {
  // put your main code here, to run repeatedly:
//Serial.print("a1=");
Serial.print(a1);
//Serial.print(" a2=");
Serial.print(" ");
Serial.print(a2);
//Serial.print(" a3=");
Serial.print(" ");
Serial.print(a3);
Serial.print(" ");
Serial.print(c1);
Serial.print("\n");
delay(10);
  
 
  if(0<=a1&&a1<=5)
  {c1=1;}
  else if(250<=a1&&a1<=255)
  {c1=0;}
   if(0<=a2&&a2<=5)
  {c2=1;}
  else if(250<=a2&&a2<=255)
  {c2=0;}
   if(0<=a3&&a3<=5)
  {c3=1;}
  else if(250<=a3&&a3<=255)
  {c3=0;}
  analogWrite(3, a1);
  if(c1==1)
  {
    l=rand() % 5 +1;
    a1+=l;;
  }
  else
  {
    l=rand() % 5 +1;
    a1-=l;;
  }
  delay(25);
  analogWrite(5, a2);
  if(c2==1)
  {l=rand() % 5 +1;
    a2+=l;;
  }
  else
  {l=rand() % 5 +1;
    a2-=l;;
  }
  delay(2);
   analogWrite(6, a3);
  if(c3==1)
  {l=rand() % 5 +1;
    a3+=l;;
  }
  else
  {l=rand() % 5 +1;
    a3-=l;;
  }
  delay(2);
//delay (500);
 
}
Добавлено через 54 минуты
Представте себе куб, три оси которого R, G, B. Каждый канал имеет 256 значений интенсивности, в сумме мы получаем куб с 16,7 млн возможными оттенками цветов. Возьмем любую ячейку в этом кубе, для плавного изменения цвета мы должны перемещатся через каждую ячейку, но в какую сторону это должно выбираться произвольно. Например, возможные перемещения: [55,100,30] -> [54,101,31]->[53,100,32]->...и т.д. Важна именно рандомизация направленя перемещения ячейки в этом кубе.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
04.12.2017, 22:25
Ответы с готовыми решениями:

Определение цвета пикселя под курсором и контроль RGB ленты на Arduino
Доброго времени суток уважаемые форумчане! Как получить цвет пикселя под курсором на экране при этом сбрасывать эти данные в массив? И...

Arduino nano v 3.0 и светодиодные ленты
Здравствуйте, у меня есть arduino nano и 4 свет. Аналоговые ргб ленты и включатель/выключатель. Мне нужно запрограммировать чтоб они...

Rgb matrix (64х32) P3 анализатор спектра (Arduino)
Здравствуйте форумчане! Я студент, многих тонкостей не знаю, так что не обессудьте. Я хочу сделать на матрице анализатор спектра через...

2
techpriest
 Аватар для Mirmik
634 / 213 / 57
Регистрация: 27.02.2014
Сообщений: 1,180
06.12.2017, 11:13
Так в чем ваш вопрос?
Идея с биллиярдом вполне ничего.
0
Модератор
Эксперт по электронике
8978 / 6744 / 921
Регистрация: 14.02.2011
Сообщений: 23,854
06.12.2017, 12:18
Цитата Сообщение от Elodreip Посмотреть сообщение
как в бильярде, а именно в векторном виде, чтобы вектор отбивался от граней куба.
смотри в сторону HSV
https://ru.wikipedia.org/wiki/... ая_модель)
Цитата Сообщение от Elodreip Посмотреть сообщение
Представте себе куб, три оси которого R, G, B.
В RGB это реализовать достаточно сложно

Добавлено через 1 минуту
Цитата Сообщение от Elodreip Посмотреть сообщение
Нужен полный охват всех цветов (16,5 млн)
А ты их увидишь?

Добавлено через 1 минуту
Цитата Сообщение от Elodreip Посмотреть сообщение
a1=rand() %255+1;
а сделать вот так
C++
1
a1=rand() %256;
Заратустра не позволяет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
06.12.2017, 12:18
Помогаю со студенческими работами здесь

Источник питания RGB ленты
Добрый день. Хочу сделать электро-пои, используя rgb led ленту. Для корпуса будет использоваться поликарбонатная труба диметром 32 мм и...

Тумблер для RGB Ленты
Ребят подскажите....Вообщем есть лента RGB + на неё постоянный имеется а минуса 2, т.е. 3 режима. в 1м режиме надо чтобы горела лента...

Управление цветом RGB ленты
Добрый день. Помогите разобраться с кодом. Программа должна управлять цветом RGB светодиодной ленты. При нажатии на кнопку срабатывает...

Синхронизация между собой контролеров RGB ленты
Реально ли реализовать следующее. Допустим есть 4 отрезка ленты по 1-2 метра, у каждого из них свой grb контролер, можно ли как-то...

Стабилизатор тока для небольшой светодиодной RGB ленты
Привет, Хочу поиграться со светодиодной RGB лентой, выбор пал на такую - 12 Lm/LED 30шт на метр 12V 7,2W, длина ленты - ~0,5м. ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка.
Programma_Boinc 23.12.2025
Thinkpad X220 Tablet — это лучший бюджетный ноутбук для учёбы, точка. Рецензия / Мнение Это мой обзор планшета X220 с точки зрения школьника. Недавно я решила попытаться уменьшить свой. . .
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru