/********* Pleasedontcode.com **********
Pleasedontcode thanks you for automatic code generation! Enjoy your code!
- Terms and Conditions:
You have a non-exclusive, revocable, worldwide, royalty-free license
for personal and commercial use. Attribution is optional; modifications
are allowed, but you're responsible for code maintenance. We're not
liable for any loss or damage. For full terms,
please visit pleasedontcode.com/termsandconditions.
- Project: "LDR Status"
- Source Code NOT compiled for: ESP32 DevKit V1
- Source Code created on: 2024-08-06 16:26:54
********* Pleasedontcode.com **********/
/****** SYSTEM REQUIREMENTS *****/
/****** SYSTEM REQUIREMENT 1 *****/
/* esp32 code for fault detection in 5 lights based */
/* on 5 LDR threshold and display which light is */
/* fault in lcd display */
/****** END SYSTEM REQUIREMENTS *****/
/****** DEFINITION OF LIBRARIES *****/
#include
#include // https://github.com/offcircuit/LCDIC2
/****** FUNCTION PROTOTYPES *****/
void setup(void);
void loop(void);
/***** DEFINITION OF I2C PINS *****/
const uint8_t lcd_LCD1602I2C_I2C_PIN_SDA_D21 = 21; // SDA pin
const uint8_t lcd_LCD1602I2C_I2C_PIN_SCL_D22 = 22; // SCL pin
const uint8_t lcd_LCD1602I2C_I2C_SLAVE_ADDRESS = 0x27; // I2C address for the LCD
/****** DEFINITION OF LIBRARIES CLASS INSTANCES*****/
// Initialize the LCDIC2 object with the I2C address and dimensions of the display
LCDIC2 lcd(lcd_LCD1602I2C_I2C_SLAVE_ADDRESS, 16, 2); // 16 columns and 2 rows
// Define the LDR pins for the lights
const uint8_t ldrPins[5] = {34, 35, 32, 33, 25}; // Example GPIO pins for LDRs
const int threshold = 500; // Threshold value for fault detection
void setup(void)
{
// Initialize the LCD and print a welcome message
lcd.begin(); // Removed the conditional check for lcd.begin()
lcd.print("System Ready"); // Print a message on the LCD
// Initialize LDR pins as input
for (int i = 0; i < 5; i++) {
pinMode(ldrPins[i], INPUT);
}
}
void loop(void)
{
// Variable to track which light is faulty
int faultyLight = -1;
// Check each LDR to see if it is below the threshold
for (int i = 0; i < 5; i++) {
int ldrValue = analogRead(ldrPins[i]); // Read the LDR value
if (ldrValue < threshold) {
faultyLight = i; // Mark the faulty light
break; // Exit the loop if a fault is detected
}
}
// Display the faulty light on the LCD
lcd.clear(); // Clear the previous message
if (faultyLight != -1) {
lcd.print("Faulty Light: ");
lcd.print(faultyLight + 1); // Displaying light number (1-5)
} else {
lcd.print("All Lights OK"); // Display if no faults detected
}
delay(1000); // Wait for a second before the next check
}
/* END CODE */