My project is based on a moving fan using DHT11 sensors. I have used 2 void loops and the IDE is showing an error
"exit status 1 redefinition of 'void loop()'"
One doubt: Can we use 2 void loops in the code? Please see and identify the errors.
2nd doubt: dht DHT;
shows error
"exit status 1 'dht' does not name a type" for my version of Arduino 1.8.1
#include <DHT.h>
#include <DHT_U.h>
#include <Adafruit_Sensor.h>
// Including library for dht
#include<LiquidCrystal.h>
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
#define dht_dpin 12
dht DHT;
#define pwm 9
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
// put your setup code here, to run once:
lcd.begin(16, 2);
lcd.clear();
lcd.print(" Fan Speed");
lcd.setCursor(0,1);
lcd.print(" Controlling");
delay(2000);
analogWrite(pwm, 255);
lcd.clear();
lcd.print("Circuit Digest ");
delay(2000);
}
void loop() {
DHT.read11(dht_dpin);
int temp=DHT.temperature;
lcd.setCursor(0,0);
lcd.print("Temperature:");
lcd.print(temp); // Printing temperature on LCD
lcd.print("oC");
lcd.setCursor(0,1);
if(temp <26 ) {
analogWrite(9,0);
lcd.print("Fan OFF");
delay(100);
} else if(temp==26) {
analogWrite(pwm, 51);
lcd.print("Fan Speed: 20%");
delay(100);
} else if(temp==27) {
analogWrite(pwm, 102);
lcd.print("Fan Speed: 40%");
delay(100);
} else if(temp==28) {
analogWrite(pwm, 153);
lcd.print("Fan Speed: 60%");
delay(100);
} else if(temp==29) {
analogWrite(pwm, 204);
lcd.print("Fan Speed: 80%");
delay(100);
} else if(temp>29) {
analogWrite(pwm, 255);
lcd.print("Fan Speed: 100%");
delay(100);
}
delay(3000);
}
}
1 Answer 1
Here, below is updated version of your code.
Before running this code, you have to download DHT library. Just click on Click Here
and you find good explanation & library of DHT11 Sensor. Becuase this library I usually preferred for my code. So, please download it and then run my code.
And two void() loop never used. Put your all logic in one void() loop.
Note: This is not tested code. So if you face any problem then update me.
#include <dht.h> // DHT library
#include<LiquidCrystal.h> // LCD library
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
dht DHT;
#define DHT11_PIN 12
#define pwm 9
float temp;
void setup()
{
Serial.begin(9600);
pinMode(pwm, OUTPUT); //Pin as OUTPUT
}
void loop()
{
int chk = DHT.read11(DHT11_PIN);
temp = DHT.temperature;
Serial.print("Temperature = ");
Serial.print("\t");
Serial.print(temp);
delay(1000);
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Fan Speed");
lcd.setCursor(0, 1);
lcd.print("Controlling");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Circuit Digest");
delay(2000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Temperature:");
lcd.setCursor(10, 0);
lcd.print(temp);
lcd.setCursor(0, 1);
if(temp < 26 )
{
analogWrite(pwm, 0);
lcd.print("Fan OFF");
delay(100);
}
else if(temp == 26)
{
analogWrite(pwm, 51);
lcd.print("Fan Speed: 20%");
delay(100);
}
else if(temp == 27)
{
analogWrite(pwm, 102);
lcd.print("Fan Speed: 40%");
delay(100);
}
else if(temp == 28)
{
analogWrite(pwm, 153);
lcd.print("Fan Speed: 60%");
delay(100);
}
else if(temp == 29)
{
analogWrite(pwm, 204);
lcd.print("Fan Speed: 80%");
delay(100);
}
else if(temp > 29)
{
analogWrite(pwm, 255);
lcd.print("Fan Speed: 100%");
delay(100);
}
}
Explore related questions
See similar questions with these tags.
DHT dht;
. The syntax istype_name variable_name;
and the type name isDHT
(upper case).