I am making a simple temperature and humidity controlled fan using the DHT 11 sensor . The problem is that arduino is not giving any output . I measured it and it was a mere 32 mV even when the code said it to be HIGH.
#include <dht.h>
#define dht_dpin A0 //Output Pin for DHT11 sensor
dht DHT;
int led = 8; // Output for a red LED
int TempMin = 21; // Can be set according to a city's climate
int TempMax = 42;
int fan = 11; //Output voltage of fan from this pin
int fanSpeed;
void setup(){
Serial.begin(9600);
delay(1000);
pinMode(fan,OUTPUT);
pinMode(led,OUTPUT);
digitalWrite(led,LOW);
}
void loop(){
DHT.read11(dht_dpin);
Serial.print("temperature = ");
Serial.print(DHT.temperature);
Serial.print("\n");
Serial.print("Humidity = ");
Serial.print(DHT.humidity);
Serial.print("\n");
if(DHT.temperature<TempMin){
fanSpeed = (DHT.humidity - 20) * 4;
if(fanSpeed<0)
fanSpeed = 0;
if(fanSpeed>255)
fanSpeed = 255;
analogWrite(fan,fanSpeed);
}
if((DHT.temperature>=TempMin)&&(DHT.temperature<=30))
{
fanSpeed = 50 + (DHT.humidity - 20) * 4;
if(fanSpeed<0)
fanSpeed = 0;
if(fanSpeed>255)
fanSpeed = 255;
analogWrite(fan,fanSpeed); // Speed of Fan is set now
}
if((DHT.temperature>=30)&&(DHT.temperature<=33))
{
fanSpeed = 100 + (DHT.humidity - 20) * 2;
if(fanSpeed<0)
fanSpeed = 0;
if(fanSpeed>255)
fanSpeed = 255;
analogWrite(fan,fanSpeed);
}
if((DHT.temperature>=33)&&(DHT.temperature<=36))
{
fanSpeed = 170 + (DHT.humidity - 50) * 2;
if(fanSpeed<0)
fanSpeed = 0;
if(fanSpeed>255)
fanSpeed = 255;
analogWrite(fan,fanSpeed);
}
if((DHT.temperature>=36)&&(DHT.temperature<=38))
{
fanSpeed = 220 + (DHT.humidity - 20) * 2;
if(fanSpeed<0)
fanSpeed = 0;
if(fanSpeed>255)
fanSpeed = 255;
analogWrite(fan,fanSpeed);
}
if((DHT.temperature>=38)&&(DHT.temperature<=TempMax))
{
fanSpeed = 230 + (DHT.humidity - 20) * 2;
if(fanSpeed<0)
fanSpeed = 0;
if(fanSpeed>255)
fanSpeed = 255;
analogWrite(fan,fanSpeed);
}
if(DHT.temperature>TempMax)
{
fanSpeed = 255;
analogWrite(fan,fanSpeed);
digitalWrite(led,HIGH);
}
delay(2000);
}
Is there some problem in the code? I have ensured that all the grounds are common