Управление скоростью и яркостью led гирлянды
- Войдите на сайт для отправки комментариев
Вс, 05/03/2017 - 20:31
Всем привет!
Помогите пожалуйст! Собрал led гирлянду на пять каналов не могу понять как сделать управление яркостью и скоростью эфектов.
Управление предпологается кнопочное.
Сейчас код выглядит так:
void setup() {
pinMode(3, OUTPUT);
pinMode(4, OUTPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
pinMode(7, OUTPUT);
}
void loop() {
//Первый эффект.
digitalWrite(3, HIGH);
delay(500);
digitalWrite(3, LOW);
delay(500);
digitalWrite(4, HIGH);
delay(500);
digitalWrite(4, LOW);
delay(500);
digitalWrite(5, HIGH);
delay(500);
digitalWrite(5, LOW);
delay(500);
digitalWrite(6, HIGH);
delay(500);
digitalWrite(6, LOW);
delay(500);
digitalWrite(7, HIGH);
delay(500);
digitalWrite(7, LOW);
delay(500);
//Второй эффект.
digitalWrite(3, HIGH);
delay(200);
digitalWrite(4, HIGH);
delay(200);
digitalWrite(5, HIGH);
delay(200);
digitalWrite(6, HIGH);
delay(200);
digitalWrite(7, HIGH);
delay(200);
digitalWrite(7, LOW);
delay(200);
digitalWrite(6, LOW);
delay(200);
digitalWrite(5, LOW);
delay(200);
digitalWrite(4, LOW);
delay(200);
digitalWrite(3, LOW);
delay(200);
//Третий эффект.
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
delay(1000);
digitalWrite(3, HIGH);
digitalWrite(4, HIGH);
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(7, HIGH);
delay(1000);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
delay(1000);
//Четвертый эффект.
digitalWrite(3, HIGH);
delay(100);
digitalWrite(3, LOW);
delay(100);
digitalWrite(4, HIGH);
delay(100);
digitalWrite(4, LOW);
delay(100);
digitalWrite(5, HIGH);
delay(100);
digitalWrite(5, LOW);
delay(100);
digitalWrite(6, HIGH);
delay(100);
digitalWrite(6, LOW);
delay(100);
digitalWrite(7, HIGH);
delay(100);
digitalWrite(7, LOW);
delay(100);
digitalWrite(6, HIGH);
delay(100);
digitalWrite(6, LOW);
delay(100);
digitalWrite(5, HIGH);
delay(100);
digitalWrite(5, LOW);
delay(100);
digitalWrite(4, HIGH);
delay(100);
digitalWrite(4, LOW);
delay(100);
digitalWrite(3, HIGH);
delay(100);
digitalWrite(3, LOW);
delay(100);
//Пятый эффект.
digitalWrite(3, HIGH);
digitalWrite(7, HIGH);
delay(200);
digitalWrite(4, HIGH);
digitalWrite(6, HIGH);
delay(200);
digitalWrite(5, HIGH);
delay(300);
digitalWrite(3, LOW);
digitalWrite(4, LOW);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(7, LOW);
delay(1000);
}
Спасибо!
Вы забыли написать в чём Ваш вопрос.
Вопрос: Что нужно добавить в код что бы менялась по нажатию кнопок яркость свечения и скорость эфекта. Если это вообще возможно с этим кодом...
Просто подключать каждый раз компьютер для этих действий крайни не удобно.... Загвоздка в том , что скорость во всех эфектах разная, а яркость вообще не пойму как регулировать...
Рекомендую почитать отсюда http://arduino.ru/forum/programmirovanie/rabota-s-knopkami-v-pomoshch-novichku?page=19#comment-251890
Ну у Вас же там задержки везде константами пописаны. Замените их на переменные и меняйте их по нажатию кнопки сколько влезет. Вот скорость и будет меняться. В чём проблема-то?
Ну у Вас же там задержки везде константами пописаны. Замените их на переменные и меняйте их по нажатию кнопки сколько влезет. Вот скорость и будет меняться. В чём проблема-то?
Проблема в том, что программа, вероятнее всего аочти не будет реагировать на кнопки.
2ТС: В программу не добавлять надо, ее надо переписывать с нуля. Но перед этим прочитав и разобравшись, как работает blink without delay.
Проблема в том, что программа, вероятнее всего аочти не будет реагировать на кнопки.
Ну, почему. Пусть сделает скорость, а кнопки потом не прерывания посадит - будет реагировать, куда денется-то.
а яркость вообще не пойму как регулировать...
http://arduino.ru/Reference/AnalogWrite
Вопрос: Что нужно добавить в код что бы менялась по нажатию кнопок яркость свечения и скорость эфекта. Если это вообще возможно с этим кодом...
Нужно добавить програмера и дать ему возможность с нуля переписать код.
Нужно добавить програмера и дать ему возможность с нуля переписать код.
Тема пива не раскрыта! :)
Пиво не требует явного указания, оно по умолчанию! :)
Пиво не требует явного указания, оно по умолчанию! :)
пива по умолчанию всегда меньше на 1 литр
Не всегда.
Иногда на 2.