Помогите новичку
- Войдите на сайт для отправки комментариев
Чт, 22/09/2016 - 20:17
хочу сделать цветомузыку на 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(); // } }
хочу сделать
Ну, дык, вперёд!
"Петли"??? А почему Вы решили, что именно петли, это слово ещё и как "качели" переводится. Может Вам качели нужны?
А если серьёзно, то, судя по Вашему вопросу, с тем багажом знаний, который у Вас есть, Вы сможете только взять кем-то сделанный код и прошить его. Вам это доставит удовольствие? Боюсь, что нет. А самому Вам сегодня не сделать.
Давайте начнём от печки, прочитайте вот это, а потом вот это. А после этого Вы не только сделаете свою гирлянду, но ещё и другим подсказывать будете.