"Умное освещение"
Добрый вечер.
Возникла проблема с этим проектом....
Не кидайтесь тапками, опыта в программирование по сути нет, вот и маюсь сижу.
* Проблема такова: *
Есть 6 "блоков", глядя на схему их можно разделить.
Каждый блок выполняет свою определенную функцию.
Без особых усилий смог собрать каждый блок и "накалякать", найти для каждого блока скетч.
Но не хватает моих познаний, опыта, мозгов, чтобы соединить, "слепить" из 6 скетчей - один рабочий.
-
Вот от безнадеги решил обратиться за помощью к уже бывалым программистам и гениям.
Возможно же "склеить" их в один?
-
По схеме: большой квадратик с 4-мя пинами - это датчик звука.
Квадратик (прямоугольник) с 3-мя пинами - это датчик Движения.
! в скетчах могут не совпадать пины со схемой!
Остальное, думаю, понятно.
-
-
скетчи:// 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 A2void 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);
}}- Как-то так....
Возможно же запрограммировать на Совместную работу?
Например, если срабатывает Датчик Движения - лампа (светодиод) горит, а в тоже время активны и другие блоки?
- Войдите на сайт для отправки комментариев
Боюсь, что гении такой хер... до такой мелочи не опускаются. А бывалых программистов я тут не видел. Хотя, нет, есть один. По его словам, конечно. Остальные только мелочь по карманам тырят. По его мнению.
Так что даже и не знаю - смогут ли вам тут помочь или нет.
Тут надо текнически, а мы текникумы не кончали. https://www.youtube.com/watch?v=TS-1_hHknPg
Ну, да.... Гении* программируют "умные дома" полностью, а не дачный вариант освещения.
Но ведь и смертным помогать то надо?
А что делать, если "смертные" такие тупые, что даже код не могут правильно вставить http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukommentarii
И что делать жизнь у смертных такая короткая, ну не успевают ума набраться. Только вот вот за ум взялся а смерть к нему и пришла.https://www.youtube.com/watch?v=rrPJ1nkn4kU
Правила объединения. Всё что во всех скетчах до setup собрать всё вместе и поместить сверху. Всё что внутри всех setup собрать последовательно в один setup. Всё что во всех loop собрать в один loop. Проверить константы и переменные - если есть одинаковые - переименовать или лишние одиниковые выбросить, если логика позволяет. Проверить ноги процессора - если разные части обращались к одним и тем же за разными целями - перераспределить ноги. Скрестить пальчики и попробовать скомпилировать. Осталось проверить логику работы.
Скетчи:
А в один собирать папаримский будет?
Вот с этим и нужна помощь, сижу который уже день и жду Папу Римского*.
Ну так я описал что делать. За вас только в разделе ищу исполнителя кто то что сделает. Сделайте один скетч. Покажите что получилось. Будем дальше советы давать. Это форум по интересам. Если найдётся человек который будет строить освещение - вам повезло. Будет общий интерес. Тратить время на программу, которая никогда не пригодится, и не будет отлажена из за отсутствия железа не вижу смысла. Добрые дела обычно наказываются.