Код совместит два кода

abbos_net
Offline
Зарегистрирован: 14.05.2016

Здрвствуйте Уважаемие

Помогите пожолуйста мне, я новичок в етом деле и не очень разбираюсь в программирование.

как совместит оба кода

 

#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); //Реле будет выключено, вентилятор не работает 
} 

}
/*Вы можете изменить переменную на переменную . Мы привели вам самый простой пример, его идею можно использовать для создания качественного проекта! */ 

извеняюсь за ошибки)))))

 

Sr.FatCat
Offline
Зарегистрирован: 19.02.2016

А что при совмещении произойти должно?

abbos_net
Offline
Зарегистрирован: 14.05.2016

при нажатие кнопки с пульта или  градус <24 должен вкл реле

 

abbos_net
Offline
Зарегистрирован: 14.05.2016

я попробал, нажимаю на кнопку реле вкл но через кокое то секунд откл.

он откл из за того что градус меньше 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();
}
/*Вы можете изменить переменную на переменную . Мы привели вам самый простой пример, его идею можно использовать для создания качественного проекта! */ 

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

строку 10 удалите

Mr.Privet
Mr.Privet аватар
Offline
Зарегистрирован: 17.11.2015

А вас не смущает что у вас раз в секунду только пульт окрашивается? Замените делай на конструкцию из blink without delay, температуру окрашивание раз в секунду, а пульт почаще, и вызывайте сравнение условий переключения реле если изменяется температура или поступил новый сигнал отличный от предыдущего.