Спойлер: Схема. Добрый вечер. Возникла проблема с этим проектом.... Не кидайтесь тапками, опыта в программирование по сути нет, вот и маюсь сижу. * Проблема такова: * Есть 6 "блоков", глядя на схему их можно разделить. Каждый блок выполняет свою определенную функцию. Без особых усилий смог собрать каждый блок и "накалякать", найти для каждого блока скетч. Но не хватает моих познаний, опыта, мозгов, чтобы соединить, "слепить" из 6 скетчей - один рабочий. - Вот от безнадеги решил обратиться за помощью к уже бывалым программистам и гениям. Возможно же "склеить" их в один? - По схеме: большой квадратик с 4-мя пинами - это датчик звука. Квадратик (прямоугольник) с 3-мя пинами - это датчик Движения. ! в скетчах могут не совпадать пины со схемой! Остальное, думаю, понятно. - - скетчи: Код (C++): // 1 Датчик Звука (Хлопки) boolean statuslamp; void setup() { pinMode(12,OUTPUT); pinMode(A0,INPUT); statuslamp=false; Serial.begin(9600); } void loop() { Serial.println (analogRead(A0)); if(analogRead(A0)>60) statuslamp=!statuslamp; digitalWrite(12,statuslamp); delay(20); } } // 2 Датчик движения #define pirKor 2 #define ledKor 13 #define ledKor_ 4 int calibrationTime = 10; //t калибровки датчика (10-60 сек. по даташиту) void setup() { Serial.begin(9600); pinMode(pirKor, INPUT); pinMode(ledKor, OUTPUT); pinMode(ledKor_, OUTPUT); Serial.print("Калибровка"); for (int i = 0; i < calibrationTime; i++) { Serial.print("."); delay(500); } Serial.println("Готово"); Serial.println("SENSOR ACTIVE"); delay(50); } void loop() { int pirVal = digitalRead(pirKor); if (pirVal == HIGH) //Если обнаружили движение { digitalWrite(ledKor, HIGH); digitalWrite(ledKor_, HIGH); Serial.print("Wow_горит"); delay(5000); } else { Serial.print("Aaa_Idiot"); digitalWrite(ledKor, LOW); digitalWrite(ledKor_, LOW); } } // 3 Датчик освещенности (Без доп. управления - кнопки) (13 пины для себя были) #define ledKom 13 #define ledKom_ 10 #define photoKom A2 void setup() { Serial.begin(9600); pinMode(ledKom, OUTPUT); pinMode(ledKom_, OUTPUT); } void loop() { void kom(); } void kom() { int val = analogRead(photoKom); Serial.println("..."); Serial.println(val); if (val < 850) { //950 = 10к Ом digitalWrite(ledKom, LOW); // hign digitalWrite(ledKom_, LOW); // hign } else { digitalWrite(ledKom, HIGH); //low digitalWrite(ledKom_, HIGH); // low }} // 4-5 Кнопка int knopkaZal = 7; int ledZal = 8; boolean lastButton = LOW; boolean currentButton = LOW; boolean ledOn = false; void setup() { pinMode(knopkaZal, INPUT); pinMode(ledZal, OUTPUT); } boolean debounse(boolean last) { boolean current = digitalRead(knopkaZal); if(last != current) { delay(5); current = digitalRead(knopkaZal); } return current; } void loop() { currentButton = debounse(lastButton); if(lastButton == LOW && currentButton == HIGH) { ledOn = !ledOn; } lastButton = currentButton; digitalWrite(ledZal, ledOn); } // 6 Датчик Освещенности с доп. управлением - кнопка. int ledVxod_ = 2; int photoVxod = A0; int knopkaVxod = 9; // переменные для хранения состояния кнопки и светодиода boolean lastKnopka = LOW; boolean currentKnopka = LOW; boolean ledOnn = false; void setup() { Serial.begin(9600); pinMode(ledVxod_, OUTPUT); pinMode(knopkaVxod, INPUT); } boolean debounse(boolean last) { boolean current = digitalRead(knopkaVxod); if (last != current) { delay(5); current = digitalRead(knopkaVxod); } return current; } void loop() { int val = analogRead(photoVxod); Serial.println("..."); Serial.println(val); if (val < 950) { //950 digitalWrite(ledVxod_, HIGH); } else { digitalWrite(ledVxod_, LOW); currentKnopka = debounse(lastKnopka); if (lastKnopka == LOW && currentKnopka == HIGH) { ledOnn = !ledOnn; } lastKnopka = currentKnopka; digitalWrite(ledVxod_, ledOnn); }} - Как-то так.... Возможно же запрограммировать на Совместную работу? Например, если срабатывает Датчик Движения - лампа (светодиод) горит, а в тоже время активны и другие блоки?
Вопрос в другом. Если вы не знаете как слепить несколько программ в одну, что вы ждете от нас? Ответа на вопрос "возможно ли?", да, это возможно. Дальше нам надо будет сделать это?
А какое громкое название Рано, рано на двухколесный велосипед сел. Ещё не научился педали крутить на трехколесном.
Гуглите на тему «blink без delay», вот первая ссылка из поиска. Читаете, разбираетесь, думаете. Дальше, заменяете в каждом Вашем отдельном скетче delay() в loop() на вариант с millis(), как в примере из ссылки, проверяете, что все правильно работает. Дальше все setup() объединяете в одном, все loop() тоже объединяете. Смотрите, чтобы переменные во всех скетчах не пересекались. Как то так...