You can reduce the size and complexity of your sketch by using arrays:
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
bool debug = false;
unsigned displayTimeMilis = 3000;
bool starting = true;
int lightUmbral[4] = {365, 855, 465, 840};
// int lightUmbral4 = 365;
int coinNumber[4]; // Dime 10, Penny 01, Nickel 05, Quarter 25
bool coinPassing[4];
//int tempNumber100 = 0;
float tempTotalMoney = 0;
bool showingCount = false;
int photocellPin[4] = {A0, A1, A2, A3}; // 10
int photocellReading[4];
void setup()
{
analogWrite(6, 128); // display
analogWrite(9, 128); // display
// set up the LCD's number of columns and rows:
lcd.begin();
// Print a message to the LCD.
lcd.setCursor(0, 0); // column, row
lcd.print("Getting Started...");
digitalWrite(1, HIGH); // luz
//Serial.begin(9600);
delay(1000); // INITIAL WAIT TIME
for (int i = 0; i < 4; i++)
{
photocellReading[i] = analogRead(photocellPin[i]);
coinNumber[i] = 0;
coinPassing[i] = false;
}
}
void loop()
{
lcd.setCursor(0, 1);
// print the number of seconds since reset:
for (int i = 0; i < 4; i++)
{
photocellReading[i] = analogRead(photocellPin[i]);
if (photocellReading[i] >= lightUmbral[i])
{
coinPassing[i] = false;
}
else if (!coinPassing[i])
{
coinPassing[i] = true;
coinNumber[i]++;
}
}
if (debug)
{
// CLEAN LCD
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
// end CLEAN LCD
lcd.setCursor(0, 0); // column, Row
lcd.print(photocellReading[0]);
lcd.setCursor(5, 0); // column, Rowa
lcd.print(photocellReading[1]);
lcd.setCursor(10, 0); // column, Row
lcd.print(photocellReading[2]);
lcd.setCursor(0, 1); // column, Row
lcd.print(photocellReading[3]);
}
else if (!showingCount && millis() % displayTimeMilis < displayTimeMilis / 2)
{
showingCount = true;
// CLEAN LCD
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
// end CLEAN LCD
lcd.setCursor(0, 0); // column, Row
lcd.print("10=");
lcd.setCursor(3, 0);
lcd.print(coinNumber[0]);
lcd.setCursor(8, 0); // column, Row
lcd.print("01=");
lcd.setCursor(11, 0);
lcd.print(coinNumber[1]);
lcd.setCursor(0, 1); // column, Row
lcd.print("05=");
lcd.setCursor(4, 1);
lcd.print(coinNumber[2]);
lcd.setCursor(8, 1); // column, Row
lcd.print("25=");
lcd.setCursor(12, 1);
lcd.print(coinNumber[3]);
}
else if (showingCount && millis() % displayTimeMilis >= displayTimeMilis / 2)
{
showingCount = false;
// CLEAN LCD
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(" ");
// end CLEAN LCD
lcd.setCursor(2, 0); // column, Row
lcd.print("MONEY TOTAL:");
tempTotalMoney = (coinNumber[0] * 0.10)
+ (coinNumber[1] * 0.01)
+ (coinNumber[2] * 0.05)
+ (coinNumber[3] * 0.25);
lcd.setCursor(4, 1);
lcd.print("$");
lcd.setCursor(5, 1); // column, Row
lcd.print(tempTotalMoney);
}
}