#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Set up a 20x4 LCD (address 0x27, update if different)
LiquidCrystal_I2C lcd(0x27, 20, 4);
// Define analog pins for 4 photodiode modules
const int photodiodePins[4] = {A0, A1, A2, A3};
void setup() {
lcd.init();
lcd.backlight();
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("4 Photodiode Monitor");
delay(2000);
}
void loop() {
lcd.clear();
for (int i = 0; i < 4; i++) {
int rawValue = analogRead(photodiodePins[i]);
int lightValue = 1023 - rawValue; // Invert so more light = higher number
lcd.setCursor(0, i); // Line 0 to 3
lcd.print("Sensor ");
lcd.print(i + 1);
lcd.print(": ");
lcd.print(lightValue);
lcd.print(" "); // Extra spaces to overwrite old digits
}
delay(500); // Update twice per second
}