// Matthias Ray Jiménez Villamar
// 22/07/2025
// Arduino!
//MJ
#include <LiquidCrystal.h>
const int dt=1, gold=23, buzz=25;
const int bounce=9, pulse=10;
int con=0, c=0;
bool val=true;
float time, distance;
String benvenue="Dollar Counter System", benvenue_2="By Matthias Jimenez V";
LiquidCrystal screen(7, 2, 3, 4, 5, 6);
void setup(){
pinMode(bounce, INPUT);
pinMode(pulse, OUTPUT);
pinMode(buzz, OUTPUT);
pinMode(gold, OUTPUT);
screen.begin(16, 2);
Serial.begin(9600);
welcome();
screen.clear();
screen.setCursor(0, 0);
screen.print("Saved: $");
}
void loop(){
val=true;
digitalWrite(pulse, 0);
delayMicroseconds(2);
digitalWrite(pulse, 1);
delayMicroseconds(10);
digitalWrite(pulse, 0);
time=pulseIn(bounce, 1);
distance=(time*0.034)/2;
//Serial.println(distance);
while(distance<6){
if(val==true){
c++;
val=false;
Serial.println("$1.00 Dollar detected.");
Serial.print("Incomes: $");
Serial.print(c);
Serial.println(".00");
if(c>=1 && c<10){
screen.setCursor(8, 0);screen.print(c);
screen.setCursor(9, 0);screen.print(".00");
}else if(c>=10 && c<100){
screen.setCursor(8, 0);screen.print(c);
screen.setCursor(10, 0);screen.print(".00");
}else if(c>=100){
screen.setCursor(8, 0);screen.print(c);
screen.setCursor(11, 0);screen.print(".00");
}
digitalWrite(gold, 1);
delay(400);
}else{
Serial.println("COIN THREAT!");
digitalWrite(buzz, 1);
digitalWrite(gold, 1);
}
digitalWrite(pulse, 0);
delayMicroseconds(2);
digitalWrite(pulse, 1);
delayMicroseconds(10);
digitalWrite(pulse, 0);
time=pulseIn(bounce, 1);
distance=(time*0.034)/2;
delay(dt);
digitalWrite(gold, 0);
digitalWrite(buzz, 0);
}
delay(dt);
}
void welcome(){
screen.setCursor(0, 0);screen.print(benvenue);
screen.setCursor(0, 1);screen.print(benvenue_2);
delay(350);
for(int i=0; i<5; i++){
screen.scrollDisplayLeft();
delay(300);
}
for(int i=0; i<5; i++){
screen.scrollDisplayRight();
delay(300);
}
}