Включение светодиода в зависимости от влажности или температуры

УмныйДомНеумног...
Offline
Зарегистрирован: 14.12.2016

Здравствуйте.

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

Что есть: Ардуино Уно R3 с подключенным к ней датчиком DHT-11 и тупо мониторящим температуру и влажность,многоцветный светодиод, рабочая прога для датчика. (Макетная плата и подобное-есть)

Что хочу: чтобы ардуинина зажигала тот или иной цвет светодиода при понижении\повышении влажности до 20\80 процентов соответственно, и чтобы зажигала другой цвет при понижении\повышении температуры до 16\30 градусов соответственно.

Вот мой скетч для датчика, ес что. Работает в версии 1.0.6

 

#include <dht.h>
 
 
 
#define dht_apin A0 
 
dht DHT;
 
 
void setup(){
 
  Serial.begin(38400);
 
  delay(500);
 
  Serial.println("DHT11 Humidity & temperature Sensor\n\n");
 
  delay(1000);
 
}//end "setup()"
 
 
 
void loop(){
 
  //Start of Program 
 
  DHT.read11(dht_apin);
 
 
 
    Serial.print("Current humidity = ");
 
    Serial.print(DHT.humidity);
 
    Serial.print("%  ");
 
    Serial.print("temperature = ");
 
    Serial.print(DHT.temperature); 
 
    Serial.println("C  ");
 
  delay(5000);//Wait 5 seconds before accessing sensor again.
 
  
 
}// end loop() 
 
Не пинайте, а поправляйте, если что криво написал.
УмныйДомНеумног...
Offline
Зарегистрирован: 14.12.2016

И забыл сказать- я в этом деле реально как хлебушек, плохо понимаю в програмировании.

valera678
Offline
Зарегистрирован: 04.11.2016

допустим у тебя не градусник а фоторезистор http://edurobots.ru/2014/05/arduino-fotorezistor/  как дописать имеющийся там скетч сообразишь при желании.

УмныйДомНеумног...
Offline
Зарегистрирован: 14.12.2016

valera678 пишет:

 как дописать имеющийся там скетч сообразишь при желании.

 

То есть, мне надо после строки delay(5000) вписать

if (analogRead(DHT) <= 15) digitalWrite(led, HIGH);

И так для всех значений?

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013

не видя твоего кода, сложно сказать определенно.

Но глобально направление верное.

valera678
Offline
Зарегистрирован: 04.11.2016
бла бла бла

if (-273<= analogRead(DHT) <= 15) digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);  // НЕ ЗАБЫВАЕМ ВЫКЛЮЧАТЬ ДРУГОЙ(ДРУГИЕ)
if (15<= analogRead(DHT) <= 100) digitalWrite(led2, HIGH);
digitalWrite(led1, LOW); // НЕ ЗАБЫВАЕМ ВЫКЛЮЧАТЬ ДРУГОЙ(ДРУГИЕ)

 

Tomasina
Tomasina аватар
Offline
Зарегистрирован: 09.03.2013
if (-273<= analogRead(DHT) <= 15)

Зачем предлагать то, что заведомо не работает? Тут вам не Паскаль.

valera678
Offline
Зарегистрирован: 04.11.2016

шутка такая