Help me with the code UNO RELAY LCD LED LAMP

UnoDHT11RelayDisplay16x2 Led lamps №2.ino (1.5 КБ)


This comes out when uploading the code can you me help

You did something wrong in the code you didn't post.

1 Like

The code is posted in the article

No, it isn't posted.
I wouldn't have commented if it had been.

Please post it like this.

#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 3
#define DHTTYPE DHT11
#define WHITE_LED 5  // pin to which white LED is connected
#define GREEN_LED 6  // pin to which green LED is connected
#define RED_LED 7  // pin to which red LED is connected

LiquidCrystal_I2C lcd (0x27, 20, 3);
DHT dht (DHTPIN, DHTTYPE);


void setup() {
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(WHITE_LED, OUTPUT);
  pinMode(GREEN_LED, OUTPUT);
  pinMode(RED_LED, OUTPUT);
  Serial.begin(9600);
  dht.begin();
  lcd.init();
  lcd.setCursor(0, 0);
  lcd.backlight();
  lcd.print ("Starting LCD...");
  delay (1000);
  lcd.clear();

}

void loop() {

  lcd.setCursor (0, 0);
  lcd.print ("Temp.: ");
  lcd.print (int(dht.readTemperature()));
  lcd.print (" \337C");
  lcd.setCursor (0, 1);
  lcd.print ("Humidity: ");
  lcd.print (int(dht.readHumidity()));
  lcd.print ("%");
  delay (100);

  if (int(dht.readTemperature()) <= 27) {
    digitalWrite(12, HIGH);
    digitalWrite(11, LOW);
  } if (int(dht.readTemperature()) > 27) {

    digitalWrite(12, LOW);
    digitalWrite(11, HIGH);
  }
  If (Temp < 20) {
    digitalWrite(WHITE_LED, HIGH);
    digitalWrite(GREEN_LED, LOW);
    digitalWrite(RED_LED, LOW);
  } if (Temp > 20 & temp. < 30) {
    digitalWrite(WHITE_LED, LOW);
    digitalWrite(GREEN_LED, HIGH);
    digitalWrite(RED_LED, LOW);
  } If(Temp > 30) {
    digitalWrite(WHITE_LED, LOW);
    digitalWrite(GREEN_LED, LOW);
    digitalWrite(RED_LED, HIGH);
  }

  delay(2000);
}
}

Maybe this part?

If(Temp > 30) {
    digitalWrite(WHITE_LED, LOW);
    digitalWrite(GREEN_LED, LOW);
    digitalWrite(RED_LED, HIGH);
  }

The IF statement is capitalized

if (Temp > 30) {
    digitalWrite(WHITE_LED, LOW);
    digitalWrite(GREEN_LED, LOW);
    digitalWrite(RED_LED, HIGH);
  }

Yes

I rewrote the if statements and removed the extra } at the end of the code. You don't have a DHT.h file attached so fix that and continue.

#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 3
#define DHTTYPE DHT11
#define WHITE_LED 5  // pin to which white LED is connected
#define GREEN_LED 6  // pin to which green LED is connected
#define RED_LED 7  // pin to which red LED is connected

LiquidCrystal_I2C lcd (0x27, 20, 3);
DHT dht (DHTPIN, DHTTYPE);


void setup() {
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(WHITE_LED, OUTPUT);
  pinMode(GREEN_LED, OUTPUT);
  pinMode(RED_LED, OUTPUT);
  Serial.begin(9600);
  dht.begin();
  lcd.init();
  lcd.setCursor(0, 0);
  lcd.backlight();
  lcd.print ("Starting LCD...");
  delay (1000);
  lcd.clear();

}

void loop() {

  lcd.setCursor (0, 0);
  lcd.print ("Temp.: ");
  lcd.print (int(dht.readTemperature()));
  lcd.print (" \337C");
  lcd.setCursor (0, 1);
  lcd.print ("Humidity: ");
  lcd.print (int(dht.readHumidity()));
  lcd.print ("%");
  delay (100);

  if (int(dht.readTemperature()) <= 27) {
    digitalWrite(12, HIGH);
    digitalWrite(11, LOW);
  }

  if (int(dht.readTemperature()) > 27) {
    digitalWrite(12, LOW);
    digitalWrite(11, HIGH);
  }

  if (Temp < 20) {
    digitalWrite(WHITE_LED, HIGH);
    digitalWrite(GREEN_LED, LOW);
    digitalWrite(RED_LED, LOW);
  }

  if (Temp > 20 & temp. < 30) {
    digitalWrite(WHITE_LED, LOW);
    digitalWrite(GREEN_LED, HIGH);
    digitalWrite(RED_LED, LOW);
  }

  if (Temp > 30) {
    digitalWrite(WHITE_LED, LOW);
    digitalWrite(GREEN_LED, LOW);
    digitalWrite(RED_LED, HIGH);
  }

  delay(2000);
}


This is coming out

Do you have the DHT.h file included in your sketch?

I think so

You didn't in the .ino file you attached so I don't think you do. Or maybe it's in a library you don't have. I don't know. You need to go back to the display provider and make sure you have all the correct libraries and code you need.

#include <LiquidCrystal_I2C.h>

#include <DHT.h>

#define DHTPIN 3

#define DHTTYPE DHT11

#define WHITE_LED 5 // pin to which white LED is connected

#define GREEN_LED 6 // pin to which green LED is connected

#define RED_LED 7 // pin to which red LED is connected

LiquidCrystal_I2C lcd (0x27, 20, 3);

DHT dht (DHTPIN, DHTTYPE);

void setup() {

pinMode(12, OUTPUT);

pinMode(11, OUTPUT);

pinMode(WHITE_LED, OUTPUT);

pinMode(GREEN_LED, OUTPUT);

pinMode(RED_LED, OUTPUT);

Serial.begin(9600);

dht.begin();

lcd.init();

lcd.setCursor(0,0);

lcd.backlight();

lcd.print ("Starting LCD...");

delay (1000);

lcd.clear();

}

void loop() {

lcd.setCursor (0,0);

lcd.print ("Temp.: ");

lcd.print (int(dht.readTemperature()));

lcd.print (" \337C");

lcd.setCursor (0,1);

lcd.print ("Humidity: ");

lcd.print (int(dht.readHumidity()));

lcd.print ("%");

delay (100);

if (int(dht.readTemperature()) <=27){

digitalWrite(12,HIGH);

digitalWrite(11,LOW);

}if (int(dht.readTemperature()) >27){

digitalWrite(12,LOW);

digitalWrite(11,HIGH);

}

}
This code is tried and tested, I just add a few things

#include <LiquidCrystal_I2C.h>
#include <DHT.h>
#define DHTPIN 3
#define DHTTYPE DHT11
#define WHITE_LED 5  // pin to which white LED is connected
#define GREEN_LED 6  // pin to which green LED is connected
#define RED_LED 7  // pin to which red LED is connected

LiquidCrystal_I2C lcd (0x27, 20, 3);
DHT dht (DHTPIN, DHTTYPE);


void setup() {
  pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(WHITE_LED, OUTPUT);
  pinMode(GREEN_LED, OUTPUT);
  pinMode(RED_LED, OUTPUT);
Serial.begin(9600);  
  dht.begin();
lcd.init();
lcd.setCursor(0,0);
lcd.backlight();
lcd.print ("Starting LCD...");
delay (1000);
lcd.clear();

}

void loop() {

 lcd.setCursor (0,0);
lcd.print ("Temp.: ");
lcd.print (int(dht.readTemperature()));
lcd.print (" \337C");
lcd.setCursor (0,1);
lcd.print ("Humidity: ");
lcd.print (int(dht.readHumidity()));
lcd.print ("%");
delay (100);

if (int(dht.readTemperature()) <=27){
  digitalWrite(12,HIGH);
  digitalWrite(11,LOW);
}if (int(dht.readTemperature()) >27){
  
  digitalWrite(12,LOW);
  digitalWrite(11,HIGH);
}
If (Temp < 20){
    digitalWrite(WHITE_LED, HIGH);
    digitalWrite(GREEN_LED, LOW);
    digitalWrite(RED_LED, LOW);
  }if (Temp > 20 & temp. < 30) {
    digitalWrite(WHITE_LED, LOW);
    digitalWrite(GREEN_LED, HIGH);
    digitalWrite(RED_LED, LOW);
  }If(Temp > 30) {
    digitalWrite(WHITE_LED, LOW);
    digitalWrite(GREEN_LED, LOW);
    digitalWrite(RED_LED, HIGH);
  }

  delay(2000);
}
}

Still have the capitalized 'I'.

Two Three problems there, I feel.

  • two variables not declared or different written

  • using bitwise AND-operator instead of logical AND-operator

  • adding a dot behind a simple variable which would guide into a struct that is not defined and not named

Take a look into this tutorial:

Arduino Programming Course

It is easy to understand and has a good mixture between explaining important concepts and example-codes to get you going. So give it a try and report your opinion about this tutorial.

best regards Stefan

1 Like

Oops - yes, I missed the single '&' (though it ought to have worked as expected)

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.