Всем здравствуйте! Вот в чем вопрос, как сделать параллельное управление, т.е. что б можно было управлять и с блютуса и с сенсорной кнопки. По отдельности коды работают, но когда объединяешь диоды реагируют только на кнопки. Не могли бы помочь, что нужно подправить в коде. Код (Text): #include <IRremote.h> #include <dht.h> #include <CapacitiveSensor.h> IRsend irsend; DHT sensor = DHT(); unsigned int TVPower[68] = {4450 ,4450, 600 ,1600, 600 ,1650, 600 ,1650, 550 ,550, 550 ,550, 600 ,550, 550 ,550, 550 ,550, 550 ,1650, 600 ,1650, 550 ,1650, 600 ,550, 550,550, 550,550, 600 ,550, 550 ,550, 550 ,600, 500 ,1700, 550 ,500 ,600 ,550, 550 ,550, 600 ,500, 600 ,550, 550 ,600, 500 ,1700, 550 ,550, 550,1650, 600 ,1600, 600,1650, 600 ,1600, 600 ,1650, 600 ,1600, 600 }; unsigned int TVSource[68] = {4500 ,4450, 550 ,1650, 600 ,1650, 550 ,1650 ,600 ,500, 600 ,500 ,600 ,550, 600 ,500 ,600 ,550 ,550 ,1650, 600 ,1600, 600 ,1650, 600 ,500, 600,550, 550 ,550, 550 ,550, 600 ,550, 550 ,1650, 550 ,550 ,550 ,550 ,600 ,550, 550 ,550, 550 ,550 ,600 ,550 ,550 ,550 ,550 ,550 ,550 ,1650, 600,1650, 550 ,1600,650 ,1650 ,550 ,1650, 600 ,1600, 600 ,1650, 600}; unsigned int TVSoundMinus[68] = {4500 ,4450, 550 ,1650, 600 ,1600, 600 ,1650, 600 ,500, 600 ,500, 600 ,550, 600 ,500, 600 ,550, 550 ,1650, 600 ,1650, 550 ,1650, 600 ,500, 600,550, 550 ,550, 550 ,550, 600 ,500, 600 ,1650, 550 ,1650, 600 ,550, 550 ,1650, 550 ,550, 600 ,550, 550 ,500, 600 ,550, 600 ,550, 550 ,500,600 ,1650, 550 ,550, 600 ,1600, 600 ,1600, 650 ,1650, 550 ,1650, 600}; unsigned int TVSoundPlus[68] = {4450 ,4500, 550 ,1650, 600 ,1650, 550 ,1650, 600 ,500, 600 ,550, 550 ,550, 550 ,550, 600 ,550, 550 ,1600, 600 ,1650, 600 ,1650, 550 ,550, 600,550 ,550 ,550, 550 ,550, 550 ,600 ,550 ,1650, 550 ,1650 ,600 ,1650, 550 ,500, 600 ,550, 550 ,600, 550 ,550, 550 ,550, 550 ,600, 550 ,550,550 ,550, 550 ,1650,550 ,1650, 600 ,1650 ,550 ,1700, 550 ,1650 ,550}; int IRledPin = 3; //IR Led pin PWM 3 String readString; int led1 =12; int LightPin =11; int led3 =10; long time1 = 0; long time2 = 0; long time3 = 0; int state1 = HIGH; int state2 = HIGH; int state3 = HIGH; boolean yes1; boolean yes2; boolean yes3; boolean previous1 = false; boolean previous2 = false; boolean previous3 = false; int debounce1 = 200; int debounce2 = 200; int debounce3 = 200; CapacitiveSensor cs_4_2 = CapacitiveSensor(4,2); CapacitiveSensor cs_4_6 = CapacitiveSensor(4,6); CapacitiveSensor cs_4_8 = CapacitiveSensor(4,8); void setup() { Serial.begin(9600); cs_4_2.set_CS_AutocaL_Millis(0xFFFFFFFF); pinMode(IRledPin,OUTPUT); pinMode(LightPin,OUTPUT); pinMode(led1, OUTPUT); pinMode(led3, OUTPUT); sensor.attach(A0); delay(1000); } void loop() { while(Serial.available()) { delay(3); char c = Serial.read(); readString +=c; } if(readString.length() > 0){ //TV if ( readString=="600") //"power" { irsend.sendRaw(TVPower,68,32); } if ( readString=="601") //"tvav" { irsend.sendRaw(TVSource,68,32); } if (readString=="604") //"volup" { irsend.sendRaw(TVSoundPlus,68,32); } if (readString=="605")//"voldown" { irsend.sendRaw(TVSoundMinus,68,32); } //DVD if (readString=="6103") //usb-sd { irsend.sendNEC(0xFFB847, 32); } if (readString=="6102") //previous { irsend.sendNEC(0xFF38C7, 32); } if (readString=="6101") //next { irsend.sendNEC(0xFF28D7, 32); } if (readString=="6104") //power { irsend.sendNEC(0xFF48B7, 32); } if (readString=="606") //"stop" { irsend.sendNEC(0xFFE01F, 32); } if (readString=="607") //"play" { irsend.sendNEC(0xFFE817, 32); } if (readString=="6108")//eject { irsend.sendNEC(0xFF6897, 32); } if (readString=="609")//"back" { irsend.sendNEC(0xFFF00F, 32); } if (readString=="610")//"forward" { irsend.sendNEC(0xFF708F, 32); } //LIGHT if (readString=="lighton")//"lighton" { digitalWrite(LightPin, LOW); } if (readString=="lightoff") //"lightoff" { digitalWrite(LightPin, HIGH); } readString=""; } sensor.update(); // данные последнего измерения можно считать соответствующими // методами char msg[128]; sprintf(msg, "Температура: %dC, Влажность: %d%%", sensor.getTemperatureInt(), sensor.getHumidityInt()); Serial.println(msg); long total1 = cs_4_2.capacitiveSensor(30); long total2 = cs_4_6.capacitiveSensor(30); long total3 = cs_4_8.capacitiveSensor(30); if (total1 > 600){yes1 = true;} else {yes1 = false;} if(yes1 == true && previous1 == false && millis() - time1>debounce1){ if(state1 == LOW){ state1 = HIGH; } else state1 = LOW; time1 = millis(); } digitalWrite(led1, state1); previous1 = yes1; if (total2 > 600){yes2 = true;} else {yes2 = false;} if(yes2 == true && previous2 == false && millis() - time2>debounce2){ if(state2 == LOW){ state2 = HIGH; } else state2 = LOW; time2 = millis(); } digitalWrite(LightPin, state2); previous2 = yes2; if (total3 > 600){yes3 = true;} else {yes3 = false;} if(yes3 == true && previous3 == false && millis() - time3>debounce3){ if(state3 == LOW){ state3 = HIGH; } else state3 = LOW; time3 = millis(); } digitalWrite(led3, state3); previous3 = yes3; }
вот один из них, остальные пока не прописал Код (Text): if (readString=="lighton")//"lighton" { digitalWrite(LightPin, LOW); } if (readString=="lightoff") //"lightoff" { digitalWrite(LightPin, HIGH); }
После слова объединяешь, надо было запятую поставить) Имелось ввиду после объединения кода капсенс и блютус управления
При заливке скетча блютус, светодиоды работают. При загрузке скетча капсенс, светодиоды работают. После объединения двух скетчей в один и заливки в ардуино, светодиоды реагируют только на сенсорные кнопки, управление по блютус не работает