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);
- const uint8_t chipSelect = SS;
- String b = "";
- int counter = 0;
- int usedcounter = 0;
- int wrtcounter = 0;
- int coincounter = 0;
- int coinwrtcounter = 0;
- int coinusedcounter = 0;
- String inString;
- String b2 = "";
- int counter2 = 0;
- //int usedcounter2=usedcounter;
- //int wrtcounter2=0;
- String inString2;
- int screensaver = 0;
- SdFat SD;
- File myFile;
- ArduinoOutStream cout(Serial);
- int a = 0;
- int c = 0;
- int e = 6;
- int r = 8;
- int i = 7;
- int o = 0;
- int o1 = 0;
- int led1hr = 1;
- int led2hr = 2;
- int led3hr = 3;
- int led5hr = 4;
- int led1d = 5;
- int led1m = 6;
- int buttoncounter = 0;
- #define error(s) SD.errorHalt(F(s))
- void coinInterrupt(){
- //Do some stuf when coin is inserted
- a = a + 1;
- }
- 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;
- 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();
- }
- }
- void r3hr_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 r3hr_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 r3hr_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 r12hr_get_code() {
- char line[25];
- int n;
- SdFile rdfile("code5hr.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading code5hr.txt file");
- }
- Serial.println(F("Selecting Specific Voucher For 5hr"));
- 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 r12hr_get_counter() {
- char line[25];
- int n;
- Serial.println(F("Getting Counter For 5hr"));
- SdFile rdfile("ctr5hr.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading ctr5hr.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 r12hr_write_counter() {
- Serial.println(F("Writing Counter For 5hr"));
- myFile = SD.open("ctr5hr.txt", FILE_WRITE);
- if (myFile) {
- wrtcounter = usedcounter + 1;
- myFile.println(wrtcounter);
- myFile.close();
- }
- Serial.println(wrtcounter);
- }
- void r1day_get_code() {
- char line[25];
- int n;
- SdFile rdfile("code1d.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading code1d.txt file");
- }
- Serial.println(F("Selecting Specific Voucher For 1day"));
- 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 r1day_get_counter() {
- char line[25];
- int n;
- Serial.println(F("Getting Counter For 1day"));
- SdFile rdfile("ctr1d.txt", O_READ);
- if (!rdfile.isOpen()) {
- error("error reading ctr1d.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 r1day_write_counter() {
- Serial.println(F("Writing Counter For 1day"));
- myFile = SD.open("ctr1d.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 + 1;
- Serial.println(F("TOTAL COIN"));
- Serial.println(coinwrtcounter);
- myFile.println(coinwrtcounter);
- myFile.close();
- }
- }
- void setup(void) {
- Serial.begin(9600);
- attachInterrupt(digitalPinToInterrupt(r), coinInterrupt, RISING);
- pinMode(i, INPUT_PULLUP);
- pinMode(led1hr, OUTPUT);
- while (!Serial) {
- SysCall::yield();
- }
- if (!SD.begin(chipSelect, SD_SCK_MHZ(50))) {
- SD.initErrorHalt();
- }
- lcd.init();
- lcd.backlight();
- lcd.begin(20, 4);
- lcd.setCursor(0, 0);
- lcd.print(F(" Welcome to "));
- lcd.setCursor(0, 1);
- lcd.print(F("<<<AGI Portal>>>"));
- delay (5000);
- lcd.clear();
- lcd.setCursor(1, 0);
- lcd.print(F("Insert P5 Coin"));
- lcd.setCursor(3, 1);
- lcd.print(F("2 Get Code"));
- }
- void loop() {
- int button = digitalRead(r);
- int button3 = digitalRead(i);
- if (button == LOW) {
- coin_get_counter();
- coin_write_counter();
- Serial.println(F("Coin Detected"));
- a = 5;
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F("CODE FOR 1hr"));
- lcd.setCursor(0, 1);
- lcd.print(F("Coin = Php"));
- lcd.setCursor(12, 1);
- lcd.print(a);
- if (a >= 10) {
- lcd.setCursor(0, 0);
- lcd.print(F("CODE FOR 2hrs"));
- lcd.setCursor(0, 1);
- lcd.print(F("Coins = Php"));
- lcd.setCursor(12, 1);
- lcd.print(a);
- }
- if (a >= 20) {
- lcd.setCursor(0, 0);
- lcd.print(F("CODE FOR 5hrs"));
- lcd.setCursor(0, 1);
- lcd.print(F("Coins = Php"));
- lcd.setCursor(12, 1);
- lcd.print(a);
- }
- if (a >= 35) {
- lcd.setCursor(0, 0);
- lcd.print(F("CODE FOR 1day"));
- lcd.setCursor(0, 1);
- lcd.print(F("Coins = Php"));
- lcd.setCursor(12, 1);
- lcd.print(a);
- }
- }
- if (buttoncounter == 0) {
- if (button3 == LOW) {
- Serial.println(F("show code button pressed"));
- lcd.clear();
- if (a == 0) {
- lcd.setCursor(0, 0);
- lcd.print(F(" Please Insert "));
- lcd.setCursor(0, 1);
- lcd.print(F(" P5 Coins"));
- }
- if (a >= 5 and a <= 9) {
- r1hr_get_counter();
- r1hr_write_counter();
- r1hr_get_code();
- c = 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 Sign-in"));
- delay(5000);
- buttoncounter = 2;
- lcd.setCursor(0, 1);
- lcd.print(F("Press CLR Button"));
- }
- if (a >= 10 and a <= 19) {
- r3hr_get_counter();
- r3hr_write_counter();
- r3hr_get_code();
- c = 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 Sign-in"));
- delay(5000);
- buttoncounter = 2;
- lcd.setCursor(0, 1);
- lcd.print(F("Press CLR Button"));
- }
- if (a >= 20 and a <= 34 ) {
- r12hr_get_counter();
- r12hr_write_counter();
- r12hr_get_code();
- c = 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 Sign-in"));
- delay(5000);
- buttoncounter = 2;
- lcd.setCursor(0, 1);
- lcd.print(F("Press CLR Button"));
- }
- if (a >= 35 and a <= 200 ) {
- r1day_get_counter();
- r1day_write_counter();
- r1day_get_code();
- c = a - 35;
- lcd.setCursor(0, 0);
- lcd.print(F("Code :"));
- lcd.setCursor(8, 0);
- lcd.print(b);
- lcd.setCursor(0, 1);
- lcd.print(F("Copy and Sign-in"));
- delay(5000);
- buttoncounter = 2;
- lcd.setCursor(0, 1);
- lcd.print(F("Press CLR Button"));
- }
- a = c;
- b = "";
- }
- }
- else if (buttoncounter == 2) {
- if (button3 == LOW) {
- buttoncounter = 0;
- lcd.setCursor(0, 1);
- lcd.print(F(" CODE CLEARED"));
- Serial.println(F("clear button pressed"));
- delay(1000);
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F(" Please Wait..."));
- lcd.setCursor(0, 1);
- lcd.print(F("<<<AGI Portal>>>"));
- delay(700);
- if (c >= 5 ) {
- ;
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F("You Have"));
- lcd.setCursor(0, 1);
- lcd.print(F("Coin = Php"));
- lcd.setCursor(12, 1);
- lcd.print(a);
- delay(3000);
- };
- lcd.clear();
- lcd.setCursor(0, 0);
- lcd.print(F("Pls Insert Coin"));
- lcd.setCursor(0, 1);
- lcd.print(F("5 Peso Coin"));
- delay(2000);
- lcd.clear();
- lcd.print(F(" P5=1hr P10=2hr"));
- lcd.setCursor(0, 1);
- lcd.print(F(" P20=5hr P35=1D"));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement