Помогите новичку

Morozvol
Offline
Зарегистрирован: 22.09.2016

хочу сделать цветомузыку  на RGB ленте  и, другие режимы работы (горение разными цветами  и периливы цвытов  ) ,

и всем этим управлять при помощи ик пульта  стал вопрос как их объединить чтобы всё работало,    ведь и для цветомузыки и для управления с пульта нужны петли (void loop)

#include <fix_fft.h>
#define AUDIOPIN 6
 
char im[128], data[128];
int i=0, val;
int out = 0;
int br = 0;

int redPin = 2;          // pins that the LED are attached to  
int greenPin = 8;
int bluePin = 5;
 
void setup() {
  Serial.begin(19200);
  analogWrite(redPin,0);                 // just test connections
      analogWrite(greenPin,0);
        analogWrite(bluePin,0);
        delay(500);
  analogWrite(redPin,255);
  delay(500);
  analogWrite(redPin,0);
  analogWrite(greenPin,255);
  delay(500);
  analogWrite(greenPin,0);
  analogWrite(bluePin,255);
  delay(500);
  analogWrite(bluePin,0);
}
 
void loop() {
    for (i=0; i < 128; i++){
      val = analogRead(AUDIOPIN)*2;
      data[i] = val;
      im[i] = 0;
    }

    fix_fft(data,im,7,0);
     
    for (i=0; i<3;i++){
      data[i] = sqrt(data[i] * data[i] + im[i] * im[i]);
     
   if (i == 0) {
   out = data[i];
   Serial.print("low - ");
   Serial.println(out);
   Serial.println(val);
   if (out <= 9)
     {analogWrite(redPin,0);}
   if (out >= 13)
     {analogWrite(redPin,out*20);}}
   
if (i == 1) {
   out = data[i];
   Serial.print("mid - ");
   Serial.println(out);
   Serial.println(val);
   if (out <= 5)
     {analogWrite(bluePin,0);}
   if (out >= 10)
     {analogWrite(bluePin,out*5);}}
   
if (i == 2) {
   out = data[i];
   Serial.print("hi  - ");
   Serial.println(out);
   Serial.println(val);
   if (out <= 4)
     {analogWrite(greenPin,0);}
   if (out >= 8)
     {analogWrite(greenPin,out*12);}}
  }
}    






























#include <IRremote.h> // это скачанная библиотека

int RECV_PIN = 11; //вход ИК приемника

IRrecv irrecv(RECV_PIN);

decode_results results;

int a=0; // переменная переключения режима, при нажатии кнопки она принимает значение +1

int b=0; //

int c=0; //

int d=0; //

int e=0; //

int f=0; //

int g=0; //

void setup()

{

irrecv.enableIRIn(); // включить приемник

pinMode(13, OUTPUT);

pinMode(2, OUTPUT);

pinMode(3, OUTPUT); // назначаем пины как выходы

pinMode(4, OUTPUT);

pinMode(5, OUTPUT);

pinMode(6, OUTPUT);

pinMode(7, OUTPUT);

}

void loop() {

if (irrecv.decode(&results)) {

delay(300); // задержка перед выполнением определения кнопок, чтобы избежать быстрое двойное нажатие

if (results.value == 0x1000809) {a=a+1;} // обработка нажитя клавиши, здесь переменная принимает значение +1

if (results.value == 0x1008889) {b=b+1;} //ВАЖНО !!! ( 1008889 ) это код кнопки №2 - моего пульта от телевизора Panasonic - у вашего пульта будет другой код - замените на свой

if (results.value == 0x1004849) {c=c+1;}

if (results.value == 0x100C8C9) {d=d+1;}

if (results.value == 0x1002829) {e=e+1;}

if (results.value == 0x100A8A9) {f=f+1;}

if (results.value == 0x1006869) {g=g+1;}

// начинаем включать светодиоды на пинах

if (a==1){digitalWrite(13, HIGH);} else {digitalWrite(13, LOW); a=0;} // действие после нажатия кнопки, если переменная стала равна 1 то

if (b==1){digitalWrite(2, HIGH);} else {digitalWrite(2, LOW); b=0;} // произвести переключение пина в режим HIGH, если же нет то вернуть переменную в исходное состояние

if (c==1){digitalWrite(3, HIGH);} else {digitalWrite(3, LOW); c=0;} // Дествие может быть другим

if (d==1){digitalWrite(4, HIGH);} else {digitalWrite(4, LOW); d=0;} // действие после нажатия кнопки

if (e==1){digitalWrite(5, HIGH);} else {digitalWrite(5, LOW); e=0;} // действие после нажатия кнопки

if (f==1){digitalWrite(6, HIGH);} else {digitalWrite(6, LOW); f=0;} // действие после нажатия кнопки

if (g==1){digitalWrite(7, HIGH);} else {digitalWrite(7, LOW); g=0;} // действие после нажатия кнопки

{ //

delay(50); //пауза между повторами //

} //

irrecv.resume(); //

}

}











 

 

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

Morozvol пишет:

хочу сделать 

Ну, дык, вперёд!

Morozvol пишет:
истал вопрос как их объединить чтобы всё работало,    ведь и для цветомузыки и для управления с пульта нужны петли (void loop)

"Петли"??? А почему Вы решили, что именно петли, это слово ещё и как "качели" переводится. Может Вам качели нужны?

А если серьёзно, то, судя по Вашему вопросу, с тем багажом знаний, который у Вас есть, Вы сможете только взять кем-то сделанный код и прошить его. Вам это доставит удовольствие? Боюсь, что нет. А самому Вам сегодня не сделать.

Давайте начнём от печки, прочитайте вот это, а потом вот это. А после этого Вы не только сделаете свою гирлянду, но ещё и другим подсказывать будете.