Не могу в скетче заменить кнопку на команду с инфракрасного пульта.

alex7106
Offline
Зарегистрирован: 05.02.2017

Здравствуйте, Очень прошу не отказать в помощи. Я в программировании полный ноль, но пытаюсь освоить ардуино, но пока мало что получается.

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

проще было бы. Ну и сама просьба: есть arduino nano, lcd 1602, dht22, bmp180, кнопка. Приобрёл пульт с приёмником hx1838, загружал скетч для кодов кнопок, зажигал 

светодиоды, но как добавить управление с пульта вместо кнопки не получается, испробовал несколько вариантов- не выходит, уже голова кипит. Если не трудно, помогите

реализовать проект.

Вот сам скетч

/*
 * SCL - A5 ( аналоговый пин )
 * SDA - А4 ( аналоговый пин )
 * VCC - 5V
 */
 
#if defined(ARDUINO) && ARDUINO >= 100
#include <Arduino.h>
#else
#include <WProgram.h>
#endif
#include <Wire.h> 
#include <BMP085.h>   // https://geekelectronics.org/download/23/
#include "DHT.h"
#define DHTPIN 8 
#define DHTTYPE DHT22   // DHT 22  (AM2302)
#include <Wire.h>
#include <LiquidCrystal.h>
 
BMP085 dps = BMP085();    
 byte simvol[8]   = {B11100,B10100,B11100,B00000,B00000,B00000,B00000,B00000,};         // Символ градуса
 byte house[8]={B00000,B00100,B01110,B11111,B10001,B10001,B11111,B00000,};              // Символ домика
DHT dht(DHTPIN, DHTTYPE);
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);          // Задаем адрес и размер дисплея
long Temperature = 0, Pressure = 0;

#define buttonT 9   // К цифровому 9 пину подключаем кнопку ( соединяем минус и 9 пин резистором наминалом от 200 Ом до 1 кОм  а кнопка при замыкании соеденяет 3 пин с 5 вольтами )

//==================================================================================
 
void setup() 
{ 
   
  dht.begin();

    pinMode(buttonT, INPUT);
          
 lcd.begin(16, 2);                               // Инициализация lcd      
  Wire.begin(); 
  delay(1000);
  dps.init();
  }
  //===========================================================================
  
void loop() 
{ 
  if(digitalRead(buttonT)){
            delay(20);
            tempPer();
            delay(5000);

  lcd.clear();
        }
    float t = dht.readTemperature();
  dps.getPressure(&Pressure);
  lcd.createChar(1, simvol);                 // Создаем символ под номером 1
  lcd.setCursor(2,0);                        // Устанавливаем курсор на 1 строку, ячейка 2
  lcd.print("Temp");                         // Выводим текст
  lcd.setCursor(7,0);                        // Устанавливаем курсор на 1 строку, ячейка 7 
  lcd.print(t);                              // Выводим показания температуры DHT22
  lcd.setCursor(12,0);                       // Устанавливаем курсор на 1 строку, ячейка 12  
  lcd.print("\1");                           // Выводим символ градуса
  lcd.setCursor(13,0);                       // Устанавливаем курсор на 1 строку, ячейка 13 
  lcd.print("C");                            // Выводим текст 
  lcd.setCursor(1,1);                        // Устанавливаем курсор на 2 строку, ячейка 2 
  lcd.print("Press");                        // Выводим текст
  lcd.setCursor(7,1);                        // Устанавливаем курсор на 1 строку, ячейка 7 
  lcd.print(Pressure/133.3);                 // Выводим показания давления 
  lcd.setCursor(13,1);                       // Устанавливаем курсор на 2 строку, ячейка 13
  lcd.print("mm");                           // Выводим текст 
  delay(2000);
}


void tempPer(){
    lcd.clear();
  float h = dht.readHumidity();
  dps.getTemperature(&Temperature);
  lcd.createChar(1, simvol);                  // Создаем символ под номером 1
  lcd.createChar(2, house);                   // Создаем символ под номером 2
  lcd.setCursor(2,0);                         // Устанавливаем курсор на 1 строку, ячейка 2
  lcd.print("Temp");                          // Выводим текст
  lcd.setCursor(7,0);                         // Устанавливаем курсор на 1 строку, ячейка 7 
  lcd.print(Temperature*0.1);                 // Выводим показания температуры
  lcd.setCursor(12,0);                        // Устанавливаем курсор на 1 строку, ячейка 12  
  lcd.print("\1");                            // Выводим символ градуса
  lcd.setCursor(13,0);                        // Устанавливаем курсор на 1 строку, ячейка 13 
  lcd.print("C");                             // Выводим текст 
  lcd.setCursor(15,0);                        // Устанавливаем курсор на 1 строку, ячейка 13 
  lcd.print("\2");                            // Выводим символ градуса
  lcd.setCursor(0,1);                         // Устанавливаем курсор на 2 строку, ячейка 1 
  lcd.print("Humidity");                     // Выводим текст
  lcd.setCursor(9,1);                        // Устанавливаем курсор на 1 строку, ячейка 9
  lcd.print(h);                               // Выводим показания давления 
  lcd.setCursor(14,1);                        // Устанавливаем курсор на 2 строку, ячейка 15
  lcd.print("%");                             // Выводим текст 
}

 

bwn
Offline
Зарегистрирован: 25.08.2014

Надо добавить функцию считывания кодов с пульта и отправлять результат в 47 строку. Если тру, оно сработает.