Код совместит два кода
- Войдите на сайт для отправки комментариев
Чт, 09/03/2017 - 18:03
Здрвствуйте Уважаемие
Помогите пожолуйста мне, я новичок в етом деле и не очень разбираюсь в программирование.
как совместит оба кода
#include <boarddefs.h>
#include <IRremote.h>
#include <IRremoteInt.h>
#include <ir_Lego_PF_BitStreamEncoder.h>
#include <IRremote.h>
int RECV_PIN = 4; //вход ИК приемника
IRrecv irrecv(RECV_PIN);
decode_results results;
int LED = 6;
void setup()
{
irrecv.enableIRIn(); // включить приемник
pinMode(LED, OUTPUT);
}
void loop() {
if (irrecv.decode(&results))
{
if (results.value == 0xFFA25D) //код моей кнопки "2FD807F". У Вас он будет дугой
{
digitalWrite(LED, HIGH);
}
if (results.value == 0xFFE21D)//код моей кнопки "2FD40BF". У Вас он будет дугой
{
digitalWrite(LED, LOW);
}
irrecv.resume();
}
}
и етот код
#include "DHT.h" //библиотека для работы с DHT
#define DHTPIN 3 //Обозначаем номер пина, к которому подключен датчик DHT11
#define Relay 5 //Обозначаем номер пина, к которому подключен реле
DHT dht(DHTPIN, DHT11); //инициируем датчик DHT
void setup() {
pinMode (Relay, OUTPUT); //Инициализируем режим работы порта в режиме выхода
dht. begin();
Serial.begin (9600);
}
void loop() {
delay (1000);
float h = dht.readHumidity(); //Считываем влажность в переменную "h"
float t = dht.readTemperature(); //Считываем температуру в переменную "t"
//if (isnan(t) || isnan(h)) { //если неправильно считалась информация {
/*Serial.println ("Ошибка при считывании информации"); //выводим надпись в программе
} else { //иначе
Serial.print ("Humidity: "); //выводим надпись Humidity
Serial.print (h); //выводим значение переменной влажности
Serial.print (" %\t"); //выводим надпись %\t
Serial.print ("Temperature: "); //выводим надпись в программе
Serial.print (t); //выводим переменную температуры
Serial.println (" *C"); //выводим надпись *C
} */
if (t > 24) //Указываем условие, если переменная "h" (влажность) больше 40%
{
digitalWrite (Relay, LOW); //то включаем наше реле, которое приводит в действие вентилятор
}
else //иначе
{
digitalWrite (Relay, HIGH); //Реле будет выключено, вентилятор не работает
}
}
/*Вы можете изменить переменную на переменную . Мы привели вам самый простой пример, его идею можно использовать для создания качественного проекта! */
извеняюсь за ошибки)))))
А что при совмещении произойти должно?
при нажатие кнопки с пульта или градус <24 должен вкл реле
я попробал, нажимаю на кнопку реле вкл но через кокое то секунд откл.
он откл из за того что градус меньше 24
вот код
#include "DHT.h" //библиотека для работы с DHT #define DHTPIN 3 //Обозначаем номер пина, к которому подключен датчик DHT11 #define Relay 5 //Обозначаем номер пина, к которому подключен реле DHT dht(DHTPIN, DHT11); //инициируем датчик DHT #include <boarddefs.h> #include <IRremote.h> #include <IRremoteInt.h> #include <ir_Lego_PF_BitStreamEncoder.h> #include <IRremote.h> int RECV_PIN = 4; //вход ИК приемника IRrecv irrecv(RECV_PIN); decode_results results; int LED = 5; void setup() { pinMode (Relay, OUTPUT); //Инициализируем режим работы порта в режиме выхода dht. begin(); Serial.begin (9600); irrecv.enableIRIn(); // включить приемник pinMode(LED, OUTPUT); } void loop() { delay (1000); float h = dht.readHumidity(); //Считываем влажность в переменную "h" float t = dht.readTemperature(); //Считываем температуру в переменную "t" //if (isnan(t) || isnan(h)) { //если неправильно считалась информация { /*Serial.println ("Ошибка при считывании информации"); //выводим надпись в программе } else { //иначе Serial.print ("Humidity: "); //выводим надпись Humidity Serial.print (h); //выводим значение переменной влажности Serial.print (" %\t"); //выводим надпись %\t Serial.print ("Temperature: "); //выводим надпись в программе Serial.print (t); //выводим переменную температуры Serial.println (" *C"); //выводим надпись *C } */ if (irrecv.decode(&results)) if (t > 24 || results.value == 0xFFA25D ) //Указываем условие, если переменная "h" (влажность) больше 40% { digitalWrite (Relay, LOW); //то включаем наше реле, которое приводит в действие вентилятор digitalWrite(LED, HIGH);} else if ( t < 24 || results.value == 0xFFE21D) //иначе { digitalWrite (Relay, HIGH); //Реле будет выключено, вентилятор не работает digitalWrite(LED, LOW); } irrecv.resume(); } /*Вы можете изменить переменную на переменную . Мы привели вам самый простой пример, его идею можно использовать для создания качественного проекта! */строку 10 удалите
А вас не смущает что у вас раз в секунду только пульт окрашивается? Замените делай на конструкцию из blink without delay, температуру окрашивание раз в секунду, а пульт почаще, и вызывайте сравнение условий переключения реле если изменяется температура или поступил новый сигнал отличный от предыдущего.