Помогите с кодом
- Войдите на сайт для отправки комментариев
Втр, 01/09/2015 - 02:43
Помогите разобраться новичку с кодом. Есть Arduino nano
Требуется управлять двумя выходами. Пусть будет выход 1 и выход 2. Начальные уровни на них низкие.
Будет один вход с кнопкой.
Алгоритм такой - при коротком нажатии на кнопку, выход 1 переводится в состояние high на время 5 секунд, а выход 2 - переводится в состояние high только через секунду после того, как включился выход 1. Время на которое включается выход 2 равно одной секунде.
Соответственно по истечении 5 секунд после нажатия кнопки - выход 1 выключается. и снова ждем когда нажмут на кнопку.
Постановка задачи сделана грамотно и толково, респект. А где же код, с которым Вы просите помочь разобраться ?
Постановка задачи сделана грамотно и толково, респект. А где же код, с которым Вы просите помочь разобраться ?
Оооо, это хороший вопрос, код еще предстоит написать)))
Моя очередь :)
http://arduino.ru/forumy/ishchu-ispolnitelya
Постановка задачи сделана грамотно и толково, респект. А где же код, с которым Вы просите помочь разобраться ?
Увы-увы..
Доброе время суток .
помогите доделать код. проблема с задержками времени.
Алгорит работы такой. при включенном авто режиме с ик пульта загорается зеленый индикатор
1 считывается показания влажности и включается вентилятор.
но хотелось бы чтоб он работал какоето время
2 считываем датчик освещенности и включаем вентилятор тоже с задержной времени.
с делай все виснет другие варианти прочитал но не разобрался.
требуется помощь
мой код
#include <IRremote.h> #include "DHT.h" int led1 = 11; //зеленый светодиод (работа в АВТО режиме) int led2 = 12; // красный светодиод (включен РУЧНОЙ режим) int irrem = 4; // пин ИК приемника int fan = 2; // пин реле вентилятора пин 2 int svet= A7; //пин фоторезистора int IKValue1 = 0; // переменная для кнопки 1 int IKValue2 = 0; // переменная для кнопки 2 unsigned int svetValue = 0; // переменная для датчика света #define DHTPIN 3 // пин датчика влажности #define DHTTYPE DHT11 DHT dht(DHTPIN, DHTTYPE); IRrecv irrecv(irrem); decode_results results; #define code1 16748655 // Кнопка 1 Авторежим (зеленая индикация) #define code2 16758855 // Кнопка 2 Ручной режим (красная индикация) вентилятор включен //------------------------------------------- void setup() { pinMode(led1, OUTPUT); pinMode(led2, OUTPUT); pinMode(fan, OUTPUT); digitalWrite(led1, HIGH); irrecv.enableIRIn(); Serial.begin(9600); } //----------------------------------------- void loop() { svetValue = analogRead(svet); // считываем значение с фоторезистора float h = dht.readHumidity(); //float t = dht.readTemperature(); round(h); //round(t); //Serial.print("Temperature: "); //Serial.print(t); //Serial.println(" *C"); Serial.print("Vlahnovt: "); Serial.println(h); Serial.print(" %\t"); Serial.println("Svet: "); Serial.println(svetValue); if (h >50 && digitalRead (led1) == HIGH) //если включен АВТО и влажность выше 50 % digitalWrite(fan, HIGH); // включаем вентилятор //задержка времени 10 минут после падения ниже установленого уровня //выключаем вентилятор else if (svetValue <500 && digitalRead (led1) == HIGH) // если включен АВТО и сет выше 500 % //задержка времени 5 минут затем digitalWrite(fan, HIGH); // включаем вентилятор //задержка времени 5 минут //выключаем вентилятор else if (digitalRead (led2) == HIGH)// если включен РУЧНОЙ digitalWrite(fan, HIGH); // включаем вентилятор пока включен ручной режим else digitalWrite(fan, LOW); // вылючаем вентилятор если нет условий {if (irrecv.decode(&results)) { unsigned int value = results.value; switch(value) { case code1: // Если пришел код кнопки 1 (АВТО режим Зеленый светодиод) if(IKValue1 == 1) // если статус кнопки равен 1 { digitalWrite(led1, LOW); // выключаем IKValue1 = 0; // присваиваем кнопке статус 0 } else // если нет { digitalWrite(led1, HIGH); //включаем IKValue1 = 1; // присваиваем кнопке статус 1 } break; case code2: //Если пришел код кнопки 2 (РУЧНОЙ режим красный светодиод) if(IKValue2 == 1) // если статус кнопки равен 1 { digitalWrite(led2, LOW); // выключаем IKValue2 = 0; // присваиваем кнопке статус 0 } else // если нет { digitalWrite(led2, HIGH); //включаем IKValue2 = 1; //присваиваем кнопке статус 1 } break; } irrecv.resume(); } } }http://arduino.ru/forum/obshchii/vstavka-programmnogo-koda-v-temukomment...
> #define DHTTYPE DHT11
Брось бяку. Купи нормальный датчик. Дискретность у этого 1 секунда. Для пинов добавь const.
Расставь фигурные скобки, так будет проще разобраться в структуре.