Не могу в скетче заменить кнопку на команду с инфракрасного пульта.
- Войдите на сайт для отправки комментариев
Пнд, 05/06/2017 - 19:59
Здравствуйте, Очень прошу не отказать в помощи. Я в программировании полный ноль, но пытаюсь освоить ардуино, но пока мало что получается.
немного получается пока из готовых примеров и подсказок собирать несложные схемы. Но мне интересно работать с ардуино, хотя уже трудновато, был бы помоложе,
проще было бы. Ну и сама просьба: есть 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("%"); // Выводим текст }
Надо добавить функцию считывания кодов с пульта и отправлять результат в 47 строку. Если тру, оно сработает.