Форум программистов, компьютерный форум, киберфорум
Наши страницы

Arduino: теория и практика

Войти
Регистрация
Восстановить пароль
 
Elodreip
0 / 0 / 0
Регистрация: 04.12.2017
Сообщений: 1
#1

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

04.12.2017, 22:25. Просмотров 245. Ответов 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.12.2017, 22:25
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Программирование RGB ленты на Arduino (Arduino):

Написание новостной ленты - C++
Хочется написать небольшое приложение вроде того же стандартного &quot;Новости&quot; из Windows 8. Вопрос не по коду, по реализации... Как работают...

Исключить из ленты группу символов - C++
Дано ленту символов. Исключить из ленты группу символов, размещенные между скобками (). Сами скобки также исключить. Заранее дано, что...

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

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

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

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

2
Mirmik
techpriest
198 / 169 / 44
Регистрация: 27.02.2014
Сообщений: 911
06.12.2017, 11:13 #2
Так в чем ваш вопрос?
Идея с биллиярдом вполне ничего.
0
ValeryS
Модератор
6781 / 5189 / 495
Регистрация: 14.02.2011
Сообщений: 17,411
06.12.2017, 12:18 #3
Цитата Сообщение от Elodreip Посмотреть сообщение
как в бильярде, а именно в векторном виде, чтобы вектор отбивался от граней куба.
смотри в сторону HSV
https://ru.wikipedia.org/wiki/HSV_(цветовая_модель)
Цитата Сообщение от Elodreip Посмотреть сообщение
Представте себе куб, три оси которого R, G, B.
В RGB это реализовать достаточно сложно

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

Добавлено через 1 минуту
Цитата Сообщение от Elodreip Посмотреть сообщение
a1=rand() %255+1;
а сделать вот так
C++
1
a1=rand() %256;
Заратустра не позволяет?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.12.2017, 12:18
Привет! Вот еще темы с ответами:

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

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

Требования по устойчивости к внешним воздействиям для RGB контроллера светодиодной ленты - Лазеры
Не могу никак найти требования по устойчивости к внешним воздействиям и требования к надежности.

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


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.