Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <SPI.h>
- #include "SdFat.h"
- #include <LiquidCrystal_I2C.h>
- LiquidCrystal_I2C lcd(0x27,20,4);
- //SS default value = Pin 10
- const uint8_t chipSelect = SS;
- String b="";
- int counter=0;
- int usedcounter=1;
- int wrtcounter=0;
- int coincounter=0;
- int coinwrtcounter=0;
- int coinusedcounter=0;
- String inString;
- String b2="";
- int counter2=0;
- int usedcounter2=0;
- int wrtcounter2=0;
- String inString2;
- int screensaver=0;
- SdFat SD;
- File myFile;
- ArduinoOutStream cout(Serial);
- int a =0;
- int e = 6;
- int r = 8;
- int i = 7;
- int o =0;
- int o1=0;
- int led1hr = 3;
- int led1d = 4;
- int buttoncounter=0;
- #define error(s) SD.errorHalt(F(s))
- void r40m_get_code() {
- char line[25];
- int n;
- SdFile rdfile("code40m.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading code40m.txt file");}
- Serial.println(F("Selecting Specific Voucher For 40 minutes"));
- while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
- if (line[n - 1] == '\n') {
- counter++;
- if (counter == usedcounter){
- b=line;} }}
- counter = 0;
- Serial.println(b);
- rdfile.close();
- }
- void r40m_get_counter() {
- char line[25];
- int n;
- Serial.println(F("Getting Counter For 40 minutes"));
- SdFile rdfile("ctr40m.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading ctr40m.txt");}
- while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
- if (line[n - 1] == '\n') {
- usedcounter=0;
- inString = line;
- usedcounter = (inString.toInt());
- } }
- counter = 0;
- rdfile.close();
- }
- void r40m_write_counter(){
- Serial.println(F("Writing Counter For 40 minutes"));
- myFile = SD.open("ctr40m.txt", FILE_WRITE);
- if (myFile) {
- wrtcounter = usedcounter+1;
- myFile.println(wrtcounter);
- myFile.close(); }
- }
- void r1hr_get_code() {
- char line[25];
- int n;
- SdFile rdfile("code1hr.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading code1hr.txt file");}
- Serial.println(F("Selecting Specific Voucher For 1hr"));
- while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
- if (line[n - 1] == '\n') {
- counter++;
- if (counter == usedcounter){
- b=line; } }}
- counter = 0;
- Serial.println(b);
- rdfile.close(); }
- void r1hr_get_counter() {
- char line[25];
- int n;
- Serial.println(F("Getting Counter For 1hr"));
- SdFile rdfile("ctr1hr.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading ctr1hr.txt"); }
- while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
- if (line[n - 1] == '\n') {
- usedcounter=0;
- inString = line;
- usedcounter = (inString.toInt()); } }
- counter = 0;
- Serial.println(usedcounter);
- rdfile.close(); }
- void r1hr_write_counter(){
- Serial.println(F("Writing Counter For 1hr"));
- myFile = SD.open("ctr1hr.txt", FILE_WRITE);
- if (myFile) {
- wrtcounter = usedcounter+1;
- myFile.println(wrtcounter);
- myFile.close();}
- Serial.println(wrtcounter);
- }
- void r2hr_get_code() {
- char line[25];
- int n;
- SdFile rdfile("code2hr.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading code2hr.txt file");}
- Serial.println(F("Selecting Specific Voucher For 2hr"));
- while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
- if (line[n - 1] == '\n') {
- counter++;
- if (counter == usedcounter){
- b=line; } }}
- counter = 0;
- Serial.println(b);
- rdfile.close(); }
- void r2hr_get_counter() {
- char line[25];
- int n;
- Serial.println(F("Getting Counter For 2hr"));
- SdFile rdfile("ctr2hr.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading ctr2hr.txt"); }
- while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
- if (line[n - 1] == '\n') {
- usedcounter=0;
- inString = line;
- usedcounter = (inString.toInt()); } }
- counter = 0;
- Serial.println(usedcounter);
- rdfile.close(); }
- void r2hr_write_counter(){
- Serial.println(F("Writing Counter For 2hr"));
- myFile = SD.open("ctr2hr.txt", FILE_WRITE);
- if (myFile) {
- wrtcounter = usedcounter+1;
- myFile.println(wrtcounter);
- myFile.close();}
- Serial.println(wrtcounter);
- }
- void r3hr_get_code() {
- char line[25];
- int n;
- SdFile rdfile("code3hr.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading code3hr.txt file"); }
- Serial.println(F("Selecting Specific Voucher For 3hr"));
- while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
- if (line[n - 1] == '\n') {
- counter++;
- if (counter == usedcounter){
- b=line; } } }
- counter = 0;
- Serial.println(b);
- rdfile.close();
- }
- void r3hr_get_counter() {
- char line[25];
- int n;
- Serial.println(F("Getting Counter For 3hr"));
- SdFile rdfile("ctr3hr.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading ctr3hr.txt"); }
- while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
- if (line[n - 1] == '\n') {
- usedcounter=0;
- inString = line;
- usedcounter = (inString.toInt()); } }
- counter = 0;
- Serial.println(usedcounter);
- rdfile.close();
- }
- void r3hr_write_counter(){
- Serial.println(F("Writing Counter For 3hr"));
- myFile = SD.open("ctr3hr.txt", FILE_WRITE);
- if (myFile) {
- wrtcounter = usedcounter+1;
- myFile.println(wrtcounter);
- myFile.close();}
- Serial.println(wrtcounter);
- }
- void coin_get_counter() {
- char line[25];
- int n;
- Serial.println(F("Getting Counter for insertedcoin.txt"));
- SdFile rdfile("insertedcoin.txt", O_READ);
- if (!rdfile.isOpen())
- {
- error("error reading insertedcoin.txt");}
- while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
- if (line[n - 1] == '\n')
- {
- coinusedcounter=0;
- inString = line;
- coinusedcounter = (inString.toInt());
- }
- }
- coincounter = 0;
- Serial.println(usedcounter);
- rdfile.close();
- }
- void coin_write_counter(){
- Serial.println(F("Writing Counter For insertedcoin.txt"));
- myFile = SD.open("insertedcoin.txt", FILE_WRITE);
- if (myFile) {
- coinwrtcounter = coinusedcounter+5;
- Serial.println(F("TOTAL COIN"));
- Serial.println(coinwrtcounter);
- myFile.println(coinwrtcounter);
- myFile.close(); }
- }
- void setup(void)
- {
- Serial.begin(9600);
- pinMode(r,INPUT_PULLUP);
- pinMode(i,INPUT_PULLUP);
- while (!Serial)
- {
- SysCall::yield();
- }
- if (!SD.begin(chipSelect, SD_SCK_MHZ(50)))
- {
- SD.initErrorHalt();
- }
- lcd.init();
- lcd.backlight();
- lcd.begin(16, 2);
- lcd.setCursor(0,0);
- lcd.print(F(" Welcome"));
- delay(400);
- lcd.setCursor(0,0);
- lcd.print(F(" AGI Portal"));
- lcd.setCursor(0, 1);
- lcd.print(F(">Insert P5 Coin<"));
- }
- void loop()
- {
- int button = digitalRead(r);
- int button3 = digitalRead(i);
- if (button == LOW)
- {
- coin_get_counter();
- coin_write_counter();
- Serial.println(F("5 peso detected"));
- screensaver=0;
- a = a +5;
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F("CODE FOR 40mins "));
- lcd.setCursor(0, 1);
- lcd.print(F("Coin ="));
- lcd.setCursor(7, 1);
- lcd.print(a);
- if (a >= 10)
- {
- lcd.setCursor(0, 0);
- lcd.print(F("CODE FOR 1hr "));
- lcd.setCursor(0, 1);
- lcd.print(F("Coins ="));
- lcd.setCursor(7, 1);
- lcd.print(a);
- }
- if (a >= 15)
- {
- lcd.setCursor(0, 0);
- lcd.print(F("CODE FOR 2hrs "));
- lcd.setCursor(0, 1);
- lcd.print(F("Coins ="));
- lcd.setCursor(7, 1);
- lcd.print(a);
- }
- if (a >= 20)
- {
- lcd.setCursor(0, 0);
- lcd.print(F("CODE FOR 3hrs "));
- lcd.setCursor(0, 1);
- lcd.print(F("Coins ="));
- lcd.setCursor(7, 1);
- lcd.print(a);
- }
- }
- if (buttoncounter == 0)
- {
- if (button3 == LOW)
- {
- delay(800);
- Serial.println(F("show code button pressed"));
- screensaver=0;
- lcd.clear();
- if (a==0)
- {
- lcd.setCursor(0, 0);
- lcd.print(F(" Please Insert"));
- lcd.setCursor(0, 1);
- lcd.print(F(" 5 Peso Coin"));
- }
- if(a >=5 and a <=9)
- {
- r40m_get_counter();
- r40m_write_counter();
- r40m_get_code();
- a= a - 5;
- lcd.setCursor(0, 0);
- lcd.print(F("CODE :"));
- lcd.setCursor(8, 0);
- lcd.print(b);
- lcd.setCursor(0, 1);
- lcd.print(F("Copy and Log-in"));
- delay(5000);
- buttoncounter=2;
- lcd.setCursor(0, 1);
- lcd.print(F("Press CLR Button"));
- }
- if(a >=10 and a <=14)
- {
- r1hr_get_counter();
- r1hr_write_counter();
- r1hr_get_code();
- a= a - 10;
- lcd.setCursor(0, 0);
- lcd.print(F("CODE :"));
- lcd.setCursor(8, 0);
- lcd.print(b);
- lcd.setCursor(0, 1);
- lcd.print(F("Copy and Log-in"));
- delay(5000);
- buttoncounter=2;
- lcd.setCursor(0, 1);
- lcd.print(F("Press CLR Button"));
- }
- if(a >=15 and a <=19)
- {
- r2hr_get_counter();
- r2hr_write_counter();
- r2hr_get_code();
- a= a - 15;
- lcd.setCursor(0, 0);
- lcd.print(F("CODE :"));
- lcd.setCursor(8, 0);
- lcd.print(b);
- lcd.setCursor(0, 1);
- lcd.print(F("Copy and Log-in"));
- delay(5000);
- buttoncounter=2;
- lcd.setCursor(0, 1);
- lcd.print(F("Press CLR Button"));
- }
- if(a >=20 and a <=40 )
- {
- r3hr_get_counter();
- r3hr_write_counter();
- r3hr_get_code();
- a= a - 20;
- lcd.setCursor(0, 0);
- lcd.print(F("CODE :"));
- lcd.setCursor(8, 0);
- lcd.print(b);
- lcd.setCursor(0, 1);
- lcd.print(F("Copy and Log-in"));
- delay(5000);
- buttoncounter=2;
- lcd.setCursor(0, 1);
- lcd.print(F("Press CLR Button"));
- }
- if(a>41)
- {
- lcd.setCursor(0, 0);
- lcd.print(F("!!!ERROR COIN!!!"));
- lcd.setCursor(0, 1);
- lcd.print(F(" ACCEPTOR"));
- }
- a=0;
- b="";
- }
- }
- else if(buttoncounter ==2)
- {
- if (button3 == LOW)
- {
- buttoncounter= 0;
- lcd.print(F("CODE CLEARED"));
- Serial.println(F("clear button pressed"));
- delay(1000);
- lcd.clear();
- lcd.setCursor(0,0);
- lcd.print(F(" Insert P5 Coin"));
- lcd.setCursor(0, 1);
- lcd.print(F("Thank you...."));
- //delay(1000);
- //lcd.clear();
- }
- }
- else
- { }
- if (button == HIGH)
- {
- screensaver++;
- delay(5);
- //if (screensaver > 25000)
- if (screensaver > 500)
- {
- //screensaver = 25005;
- screensaver = 505;
- o++;
- lcd.setCursor(16, 1);
- lcd.print(o);
- if (o>500)
- {
- o1++;
- o=0;
- if (o1 >= 5)
- {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F("Insert P5 Coin"));
- lcd.setCursor(0, 1);
- lcd.print(F(">>Press button<<"));
- o=0;
- }
- if(o1 >= 10)
- {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F(" Copy Voucher "));
- lcd.setCursor(0, 1);
- lcd.print(F(" FOR 15 SECONDS "));
- o=0;
- }
- if(o1>=12)
- {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F(" SIGN IN"));
- lcd.setCursor(0, 1);
- lcd.print(F(" DONE "));
- o=0;
- }
- if(o1>=15)
- {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F("P5 for 40mins"));
- lcd.setCursor(0, 1);
- lcd.print(F("P10 for 1hr"));
- o=0;
- }
- if(o1>=17)
- {
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F("P15 for 2hrs"));
- lcd.setCursor(0, 1);
- lcd.print(F("P20 for 3hrs"));
- o=0;
- }
- if(o1>=20){
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F("To check Status"));
- lcd.setCursor(0, 1);
- lcd.print(F("kkkv.portal"));
- o=0;}
- if(o1>=23)
- { o1=0;}
- }}}}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement