как сделать ленту синий розовый и желтый
- Войдите на сайт для отправки комментариев
Пнд, 15/07/2019 - 23:02
пытался сделать ну чтота не то если кто может подскажите
//обзавём каналы
int RedPin = 9;
int GreenPin = 10;
int BluePin = 11;
//заведём переменные текущих значений каналов, и сразу их забьём рандомными значениями
int ValRed = random(0, 255);
int ValGreen = random(0, 255);
int ValBlue = random(0, 255);
void setup() {
pinMode(RedPin, OUTPUT); //настроим пины каналов на выход
pinMode(GreenPin, OUTPUT);
pinMode(BluePin, OUTPUT);
analogWrite(RedPin, ValRed); //и сразу запихает туда первую пачку значений
analogWrite(GreenPin, ValGreen);
analogWrite(BluePin, ValBlue);
}
void loop() {
int NewValRed = random(10, 255); //сгенерим новые значения
int NewValGreen = random(10, 255);
int NewValBlue = random(10, 255);
//будем крутить пока новые не сравняются с текущими
while ((ValRed != NewValRed)&(ValGreen != NewValGreen)&(ValBlue != NewValBlue)) {
//для красного канала
if (ValRed < NewValRed){ //если новое больше текущего
analogWrite(RedPin, ValRed++ ); //то текущий увеличиваем
};
if (ValRed > NewValRed) { // если меньше уменьшаем
analogWrite(RedPin, ValRed-- );
};
//для зелёного канала
if (ValGreen < NewValGreen){
analogWrite(GreenPin, ValGreen++ );
};
if (ValGreen > NewValGreen) {
analogWrite(GreenPin, ValGreen-- );
};
//для синего канала
if (ValBlue < NewValBlue){
analogWrite(BluePin, ValBlue++ );
};
if (ValBlue > NewValBlue) {
analogWrite(BluePin, ValBlue-- );
};
delay(10); //чтоб в глазах не рябило подождём
}
}
Условие цикла никогда не выполнится, так как новые значения присваются до цикла в основном лупе. Нужно или логику переработать или отказаться от while цикла. Или в нем их присваивать, но это все чем то дурным попахивает... В чем основная суть задачи то?
просто сделать при включения наченала работать лайтбокс переходил сини>розовы>желтый и так цикл круговорот
Уверены, что из синего можно просто попасть в желтый без промежуточных цветов?
А зачем тогда рандом? И что за лента вообще? Для плавного перехода не нужен рандом и цикл с непонятными условиями. Вы пытаетесь угадать рандомные числа трёх переменных в одном проходе - это маловероятно, почти невозможно. И зачем вы так делаете? Переработайте логику, учитывая что сама функция loop - это и есть бесконечный цикл.
друг а можеш написать правельно
друг а можеш написать правельно
можно - но это в разделе "Ищу исполнителя"
ваша задача простая - думаю рублей за 500 найдется....
как сделать ленту синий розовый и желтый
Боюсь, что с таким программированием - никак.
Но, способ есть!
жёлтый = синий + зелёный
розовый = красный +белый
белый = красный + синий +зеленый
синий = синий