Как прикрутить кнопку
- Войдите на сайт для отправки комментариев
Пт, 05/05/2017 - 05:43
Доброго времени суток! Всем!
Долго мучился... пытался... но нет, мне не поддалось.
И вот обращаюсь к ВАМ. Написал скетч по управлению рэле по сравнению двух датчиков влажности. Но есть необходимость прикрутить кнопку вкл/выкл... Вот вопрос: Как прописать кнопку включения данного в скетче сравнения показаний датчиков на 5 дней (но без delay), с возможностью отключения этого кнопкой... пытался поместить в case'ы, возникла проблема с delay в чтении датчиков...
#include "stDHT.h" DHT sens(DHT22); const int relPin1 = 3; //реле 1 const int relPin2 = 5; //реле 2 void setup() { Serial.begin(57600); pinMode(2, INPUT); digitalWrite(2, HIGH); pinMode(4, INPUT); digitalWrite(4, HIGH); pinMode(relPin1, OUTPUT); pinMode(relPin2, OUTPUT); pinMode(11, INPUT); } void loop() { int t = sens.readTemperature(2); // чтение датчика на пине 2 int h = sens.readHumidity(2); // чтение датчика на пине 2 delay(2000); int t2 = sens.readTemperature(4); // чтение датчика на пине 4 int h2 = sens.readHumidity(4); // чтение датчика на пине 4 delay(2000); if( t >= (t2+5)){ digitalWrite(relPin1, LOW); // при достижении температуры датчика 1 более 5 градусов включаем реле 2, отключаем реле 1 digitalWrite(relPin2, HIGH); // } else if( h >= (h2+5)){ digitalWrite(relPin1, LOW); //при влажности датчика 1 более 5 градусов включаем реле 2, реле 1 выключен digitalWrite(relPin2, HIGH); // } else { digitalWrite(relPin1, HIGH); // в других случаях реле 1 включено, реле 2 выключено digitalWrite(relPin2, LOW); } Serial.print("Влага датчика №1: "); Serial.print(h); Serial.print(" %"); Serial.print("Темпер датчика №1: "); Serial.print(t); Serial.println(" C "); Serial.print("Влага датчика №2: "); Serial.print(h2); Serial.print(" %"); Serial.print("Темпер датчика №2: "); Serial.print(t2); Serial.println(" C "); }
Заранее спасибо за любую помощь!
Не понял, что надо? "Прикрутить" или "прописать"? В разных местах по-разному.
А так, вообще, Вам надо вот в эту сторону копать.
Ну да прописать))) в скетче
Для начала, наверно, перенести чтение датчиков в неблокирующие функции. У вас четыре секунды вообще ничего прочесть невозможно, а потом за пару миллисекунд надо отловить кнопку, в данном случае еще терпимо, а если периоды считывания по минуте сделаете?
я про это и писал ... ардуино висит при чтении датчиков... но пробовал на миллес... не смог(
А ссылку прочитать? Там вроде все очень доходчиво.
А ссылку прочитать? Там вроде все очень доходчиво.
прочитать-то одно... буду вникать и пробовать)