I am new to the Forum, and my programming is quite rusty.
Everything else appears to be working, however I am not able to figure out how to display the TOTAL amount being collected. THis is a Coin Counting project. It seems to be counting correctly.
Any assistance is greatly appreciated.
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27, 16, 2);
// initialize the library by associating any needed LCD interface pin
bool debug = false;
int displayTimeMilis = 3000;
bool starting = true;
int lightUmbral0 = 365;
int lightUmbral1 = 855;
int lightUmbral2 = 465;
int lightUmbral3 = 840;
int lightUmbral4 = 365;
int coinNumber0 = 0; // Dime 10
bool coinPassing0 = false;
int coinNumber1 = 0; // Penny 01
bool coinPassing1 = false;
int coinNumber2 = 0; // Nickel 05
bool coinPassing2 = false;
int coinNumber3 = 0; // Quarter 25
bool coinPassing3 = false;
//int tempNumber100 = 0;
int tempTotalMoney = 0;
bool showingCount = false;
int photocellPin0 = 0; // 10
int photocellReading0; // 10
int photocellPin1 = 1; // 01
int photocellReading1; // 01
int photocellPin2 = 2; // 05
int photocellReading2; // 05
int photocellPin3 = 3; // 25
int photocellReading3; // 25
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
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
if (starting) {
photocellReading0 = analogRead(photocellPin0);
photocellReading1 = analogRead(photocellPin1);
photocellReading2 = analogRead(photocellPin2);
photocellReading3 = analogRead(photocellPin3);
// photocellReading4 = analogRead(photocellPin4);
delay(2000); // INITIAL WAIT TIME
photocellReading0 = analogRead(photocellPin0);
photocellReading1 = analogRead(photocellPin1);
photocellReading2 = analogRead(photocellPin2);
photocellReading3 = analogRead(photocellPin3);
// photocellReading4 = analogRead(photocellPin4);
delay(2000); // INITIAL WAIT TIME
coinNumber0 = 0; // Dime 10
coinPassing0 = false;
coinNumber1 = 0; // Penny 01
coinPassing1 = false;
coinNumber2 = 0; // Nickel 05
coinPassing2 = false;
coinNumber3 = 0; // Quarter 25
coinPassing3 = false;
// coinNumber4 = 0; // moneda 100
// coinPassing4= false;
starting = false;
}
lcd.setCursor(0, 1);
// print the number of seconds since reset:
photocellReading0 = analogRead(photocellPin0);
photocellReading1 = analogRead(photocellPin1);
photocellReading2 = analogRead(photocellPin2);
photocellReading3 = analogRead(photocellPin3);
// photocellReading4 = analogRead(photocellPin4);
if (photocellReading0 >= lightUmbral0) {
coinPassing0 = false;
}
if (photocellReading0 < lightUmbral0 && !coinPassing0) {
coinPassing0 = true;
coinNumber0++;
}
if (photocellReading1 >= lightUmbral1) {
coinPassing1 = false;
}
if (photocellReading1 < lightUmbral1 && !coinPassing1) {
coinPassing1 = true;
coinNumber1++;
}
if (photocellReading2 >= lightUmbral2) {
coinPassing2 = false;
}
if (photocellReading2 < lightUmbral2 && !coinPassing2) {
coinPassing2 = true;
coinNumber2++;
}
if (photocellReading3 >= lightUmbral3) {
coinPassing3 = false;
}
if (photocellReading3 < lightUmbral3 && !coinPassing3) {
coinPassing3 = true;
coinNumber3++;
}
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(photocellReading0);
lcd.setCursor(5, 0); // column, Rowa
lcd.print(photocellReading1);
lcd.setCursor(10, 0); // column, Row
lcd.print(photocellReading2);
lcd.setCursor(0, 1); // column, Row
lcd.print(photocellReading3);
delay(500);
}
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(coinNumber0);
lcd.setCursor(8, 0); // column, Row
lcd.print("01=");
lcd.setCursor(11, 0);
lcd.print(coinNumber1);
lcd.setCursor(0, 1); // column, Row
lcd.print("05=");
lcd.setCursor(4, 1);
lcd.print(coinNumber2);
lcd.setCursor(8, 1); // column, Row
lcd.print("25=");
lcd.setCursor(12, 1);
lcd.print(coinNumber3);
} 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 = (coinNumber0 * 0.10) + (coinNumber1 * 0.01) + (coinNumber2 * 0.05) + (coinNumber3 * 0.25);
lcd.setCursor(4, 1);
lcd.print("$");
lcd.setCursor(5, 1); // column, Row
lcd.print(tempTotalMoney);
}
}