Управление скоростью и яркостью led гирлянды

iaedi
Offline
Зарегистрирован: 05.03.2017

Всем привет!

Помогите пожалуйст! Собрал 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);             
}

Спасибо!

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Вы забыли написать в чём Ваш вопрос.

iaedi
Offline
Зарегистрирован: 05.03.2017

Вопрос: Что нужно добавить в код что бы менялась по нажатию кнопок яркость свечения и скорость эфекта. Если это вообще возможно с этим кодом... 

iaedi
Offline
Зарегистрирован: 05.03.2017

Просто подключать каждый раз компьютер для этих действий крайни не удобно.... Загвоздка в том , что скорость во всех эфектах разная, а яркость вообще не пойму как регулировать...

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Ну у Вас же там задержки везде константами пописаны. Замените их на переменные и меняйте их по нажатию кнопки сколько влезет. Вот скорость и будет меняться. В чём проблема-то?

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

ЕвгенийП пишет:

Ну у Вас же там задержки везде константами пописаны. Замените их на переменные и меняйте их по нажатию кнопки сколько влезет. Вот скорость и будет меняться. В чём проблема-то?

Проблема в том, что программа, вероятнее всего аочти не будет реагировать на кнопки.

2ТС: В программу не добавлять надо, ее надо переписывать с нуля. Но перед этим прочитав и разобравшись, как работает blink without delay.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

andriano пишет:

Проблема в том, что программа, вероятнее всего аочти не будет реагировать на кнопки.

Ну, почему. Пусть сделает скорость, а кнопки потом не прерывания посадит - будет реагировать, куда денется-то.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

iaedi пишет:

а яркость вообще не пойму как регулировать...


http://arduino.ru/Reference/AnalogWrite

Logik
Offline
Зарегистрирован: 05.08.2014

iaedi пишет:

Вопрос: Что нужно добавить в код что бы менялась по нажатию кнопок яркость свечения и скорость эфекта. Если это вообще возможно с этим кодом... 

Нужно добавить програмера и дать ему возможность с нуля переписать код.

ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

Logik пишет:

Нужно добавить програмера и дать ему возможность с нуля переписать код.

Тема пива не раскрыта! :)

Logik
Offline
Зарегистрирован: 05.08.2014

Пиво не требует явного указания, оно по умолчанию! :)

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

Logik пишет:

Пиво не требует явного указания, оно по умолчанию! :)

пива по умолчанию всегда меньше на 1 литр

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Не всегда.

Иногда на 2.