daily pastebin goal
29%
SHARE
TWEET

Untitled

a guest Feb 16th, 2019 73 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <SPI.h>
  2. #include "SdFat.h"
  3. #include <LiquidCrystal_I2C.h>
  4. LiquidCrystal_I2C lcd(0x27, 20, 4);
  5. const uint8_t chipSelect = SS;
  6. String b = "";
  7. int counter = 0;
  8. int usedcounter = 0;
  9. int wrtcounter = 0;
  10. int coincounter = 0;
  11. int coinwrtcounter = 0;
  12. int coinusedcounter = 0;
  13. String inString;
  14. String b2 = "";
  15. int counter2 = 0;
  16. //int usedcounter2=usedcounter;
  17. //int wrtcounter2=0;
  18. String inString2;
  19. int screensaver = 0;
  20. SdFat SD;
  21. File myFile;
  22. ArduinoOutStream cout(Serial);
  23. int a = 0;
  24. int c = 0;
  25. int e = 6;
  26. int r = 8;
  27. int i = 7;
  28. int o = 0;
  29. int o1 = 0;
  30. int led1hr = 1;
  31. int led2hr = 2;
  32. int led3hr = 3;
  33. int led5hr = 4;
  34. int led1d = 5;
  35. int led1m = 6;
  36. int buttoncounter = 0;
  37. #define error(s) SD.errorHalt(F(s))
  38.   void coinInterrupt(){
  39.   //Do some stuf when coin is inserted
  40.   a = a + 1;
  41. }
  42. void r1hr_get_code() {
  43.   char line[25];
  44.   int n;
  45.   SdFile rdfile("code1hr.txt", O_READ);
  46.   if (!rdfile.isOpen()) {
  47.     error("error reading code1hr.txt file");
  48.   }
  49.   Serial.println(F("Selecting Specific Voucher For 1hr"));
  50.   while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  51.     if (line[n - 1] == '\n') {
  52.       counter++;
  53.       if (counter == usedcounter) {
  54.         b = line;
  55.       }
  56.     }
  57.   }
  58.   counter = 0;
  59.   Serial.println(b);
  60.   rdfile.close();
  61. }
  62. void r1hr_get_counter() {
  63.   char line[25];
  64.   int n;
  65.   Serial.println(F("Getting Counter For 1hr"));
  66.   SdFile rdfile("ctr1hr.txt", O_READ);
  67.   if (!rdfile.isOpen()) {
  68.     error("error reading ctr1hr.txt");
  69.   }
  70.   while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  71.     if (line[n - 1] == '\n') {
  72.       usedcounter = 0;
  73.       inString = line;
  74.       usedcounter = (inString.toInt());
  75.     }
  76.   }
  77.   counter = 0;
  78.   rdfile.close();
  79. }
  80. void r1hr_write_counter() {
  81.   Serial.println(F("Writing Counter For 1hr"));
  82.   myFile = SD.open("ctr1hr.txt", FILE_WRITE);
  83.   if (myFile) {
  84.     wrtcounter = usedcounter + 1;
  85.     myFile.println(wrtcounter);
  86.     myFile.close();
  87.   }
  88. }
  89. void r3hr_get_code() {
  90.   char line[25];
  91.   int n;
  92.   SdFile rdfile("code2hr.txt", O_READ);
  93.   if (!rdfile.isOpen()) {
  94.     error("error reading code2hr.txt file");
  95.   }
  96.   Serial.println(F("Selecting Specific Voucher For 2hr"));
  97.   while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  98.     if (line[n - 1] == '\n') {
  99.       counter++;
  100.       if (counter == usedcounter) {
  101.         b = line;
  102.       }
  103.     }
  104.   }
  105.   counter = 0;
  106.   Serial.println(b);
  107.   rdfile.close();
  108. }
  109. void r3hr_get_counter() {
  110.   char line[25];
  111.   int n;
  112.   Serial.println(F("Getting Counter For 2hr"));
  113.   SdFile rdfile("ctr2hr.txt", O_READ);
  114.   if (!rdfile.isOpen()) {
  115.     error("error reading ctr2hr.txt");
  116.   }
  117.   while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  118.     if (line[n - 1] == '\n') {
  119.       usedcounter = 0;
  120.       inString = line;
  121.       usedcounter = (inString.toInt());
  122.     }
  123.   }
  124.   counter = 0;
  125.   Serial.println(usedcounter);
  126.   rdfile.close();
  127. }
  128. void r3hr_write_counter() {
  129.   Serial.println(F("Writing Counter For 2hr"));
  130.   myFile = SD.open("ctr2hr.txt", FILE_WRITE);
  131.   if (myFile) {
  132.     wrtcounter = usedcounter + 1;
  133.     myFile.println(wrtcounter);
  134.     myFile.close();
  135.   }
  136.   Serial.println(wrtcounter);
  137. }
  138. void r12hr_get_code() {
  139.   char line[25];
  140.   int n;
  141.   SdFile rdfile("code5hr.txt", O_READ);
  142.   if (!rdfile.isOpen()) {
  143.     error("error reading code5hr.txt file");
  144.   }
  145.   Serial.println(F("Selecting Specific Voucher For 5hr"));
  146.   while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  147.     if (line[n - 1] == '\n') {
  148.       counter++;
  149.       if (counter == usedcounter) {
  150.         b = line;
  151.       }
  152.     }
  153.   }
  154.   counter = 0;
  155.   Serial.println(b);
  156.   rdfile.close();
  157. }
  158. void r12hr_get_counter() {
  159.   char line[25];
  160.   int n;
  161.   Serial.println(F("Getting Counter For 5hr"));
  162.   SdFile rdfile("ctr5hr.txt", O_READ);
  163.   if (!rdfile.isOpen()) {
  164.     error("error reading ctr5hr.txt");
  165.   }
  166.   while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  167.     if (line[n - 1] == '\n') {
  168.       usedcounter = 0;
  169.       inString = line;
  170.       usedcounter = (inString.toInt());
  171.     }
  172.   }
  173.   counter = 0;
  174.   Serial.println(usedcounter);
  175.   rdfile.close();
  176. }
  177. void r12hr_write_counter() {
  178.   Serial.println(F("Writing Counter For 5hr"));
  179.   myFile = SD.open("ctr5hr.txt", FILE_WRITE);
  180.   if (myFile) {
  181.     wrtcounter = usedcounter + 1;
  182.     myFile.println(wrtcounter);
  183.     myFile.close();
  184.   }
  185.   Serial.println(wrtcounter);
  186. }
  187. void r1day_get_code() {
  188.   char line[25];
  189.   int n;
  190.   SdFile rdfile("code1d.txt", O_READ);
  191.   if (!rdfile.isOpen()) {
  192.     error("error reading code1d.txt file");
  193.   }
  194.   Serial.println(F("Selecting Specific Voucher For 1day"));
  195.   while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  196.     if (line[n - 1] == '\n') {
  197.       counter++;
  198.       if (counter == usedcounter) {
  199.         b = line;
  200.       }
  201.     }
  202.   }
  203.   counter = 0;
  204.   Serial.println(b);
  205.   rdfile.close();
  206. }
  207. void r1day_get_counter() {
  208.   char line[25];
  209.   int n;
  210.   Serial.println(F("Getting Counter For 1day"));
  211.   SdFile rdfile("ctr1d.txt", O_READ);
  212.   if (!rdfile.isOpen()) {
  213.     error("error reading ctr1d.txt");
  214.   }
  215.   while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  216.     if (line[n - 1] == '\n') {
  217.       usedcounter = 0;
  218.       inString = line;
  219.       usedcounter = (inString.toInt());
  220.     }
  221.   }
  222.   counter = 0;
  223.   Serial.println(usedcounter);
  224.   rdfile.close();
  225. }
  226. void r1day_write_counter() {
  227.   Serial.println(F("Writing Counter For 1day"));
  228.   myFile = SD.open("ctr1d.txt", FILE_WRITE);
  229.   if (myFile) {
  230.     wrtcounter = usedcounter + 1;
  231.     myFile.println(wrtcounter);
  232.     myFile.close();
  233.   }
  234.   Serial.println(wrtcounter);
  235. }
  236. void coin_get_counter() {
  237.   char line[25];
  238.   int n;
  239.   Serial.println(F("Getting Counter for insertedcoin.txt"));
  240.   SdFile rdfile("insertedcoin.txt", O_READ);
  241.   if (!rdfile.isOpen()) {
  242.     error("error reading insertedcoin.txt");
  243.   }
  244.   while ((n = rdfile.fgets(line, sizeof(line))) > 0) {
  245.     if (line[n - 1] == '\n') {
  246.       coinusedcounter = 0;
  247.       inString = line;
  248.       coinusedcounter = (inString.toInt());
  249.     }
  250.   }
  251.   coincounter = 0;
  252.   Serial.println(usedcounter);
  253.   rdfile.close();
  254. }
  255. void coin_write_counter() {
  256.   Serial.println(F("Writing Counter For insertedcoin.txt"));
  257.   myFile = SD.open("insertedcoin.txt", FILE_WRITE);
  258.   if (myFile) {
  259.     coinwrtcounter = coinusedcounter + 1;
  260.     Serial.println(F("TOTAL COIN"));
  261.     Serial.println(coinwrtcounter);
  262.     myFile.println(coinwrtcounter);
  263.     myFile.close();
  264.   }
  265. }
  266. void setup(void) {
  267.   Serial.begin(9600);
  268.   attachInterrupt(digitalPinToInterrupt(r), coinInterrupt, RISING);
  269.   pinMode(i, INPUT_PULLUP);
  270.   pinMode(led1hr, OUTPUT);
  271.   while (!Serial) {
  272.     SysCall::yield();
  273.   }
  274.   if (!SD.begin(chipSelect, SD_SCK_MHZ(50))) {
  275.     SD.initErrorHalt();
  276.   }
  277.   lcd.init();
  278.   lcd.backlight();
  279.   lcd.begin(20, 4);
  280.   lcd.setCursor(0, 0);
  281.   lcd.print(F("   Welcome to "));
  282.   lcd.setCursor(0, 1);
  283.   lcd.print(F("<<<AGI Portal>>>"));
  284.   delay (5000);
  285.   lcd.clear();
  286.   lcd.setCursor(1, 0);
  287.   lcd.print(F("Insert P5 Coin"));
  288.   lcd.setCursor(3, 1);
  289.   lcd.print(F("2 Get Code"));
  290. }
  291. void loop() {
  292.   int button = digitalRead(r);
  293.   int button3 = digitalRead(i);
  294.   if (button == LOW) {
  295.     coin_get_counter();
  296.     coin_write_counter();
  297.     Serial.println(F("Coin Detected"));
  298.  
  299.     a = 5;
  300.     lcd.clear();
  301.     lcd.setCursor(0, 0);
  302.     lcd.print(F("CODE  FOR  1hr"));
  303.     lcd.setCursor(0, 1);
  304.     lcd.print(F("Coin = Php"));
  305.     lcd.setCursor(12, 1);
  306.     lcd.print(a);
  307.     if (a >= 10) {
  308.       lcd.setCursor(0, 0);
  309.       lcd.print(F("CODE    FOR   2hrs"));
  310.       lcd.setCursor(0, 1);
  311.       lcd.print(F("Coins = Php"));
  312.       lcd.setCursor(12, 1);
  313.       lcd.print(a);
  314.     }
  315.     if (a >= 20) {
  316.       lcd.setCursor(0, 0);
  317.       lcd.print(F("CODE    FOR  5hrs"));
  318.       lcd.setCursor(0, 1);
  319.       lcd.print(F("Coins = Php"));
  320.       lcd.setCursor(12, 1);
  321.       lcd.print(a);
  322.     }
  323.     if (a >= 35) {
  324.       lcd.setCursor(0, 0);
  325.       lcd.print(F("CODE    FOR   1day"));
  326.       lcd.setCursor(0, 1);
  327.       lcd.print(F("Coins = Php"));
  328.       lcd.setCursor(12, 1);
  329.       lcd.print(a);
  330.     }
  331.   }
  332.   if (buttoncounter == 0) {
  333.     if (button3 == LOW) {
  334.       Serial.println(F("show code button pressed"));
  335.       lcd.clear();
  336.       if (a == 0) {
  337.         lcd.setCursor(0, 0);
  338.         lcd.print(F(" Please Insert "));
  339.         lcd.setCursor(0, 1);
  340.         lcd.print(F("  P5 Coins"));
  341.       }
  342.       if (a >= 5 and a <= 9) {
  343.         r1hr_get_counter();
  344.         r1hr_write_counter();
  345.         r1hr_get_code();
  346.         c = a - 5;
  347.         lcd.setCursor(0, 0);
  348.         lcd.print(F("CODE  :"));
  349.         lcd.setCursor(8, 0);
  350.         lcd.print(b);
  351.         lcd.setCursor(0, 1);
  352.         lcd.print(F("Copy and Sign-in"));
  353.         delay(5000);
  354.         buttoncounter = 2;
  355.         lcd.setCursor(0, 1);
  356.         lcd.print(F("Press CLR Button"));
  357.       }
  358.       if (a >= 10 and a <= 19) {
  359.         r3hr_get_counter();
  360.         r3hr_write_counter();
  361.         r3hr_get_code();
  362.         c = a - 10;
  363.         lcd.setCursor(0, 0);
  364.         lcd.print(F("CODE :"));
  365.         lcd.setCursor(8, 0);
  366.         lcd.print(b);
  367.         lcd.setCursor(0, 1);
  368.         lcd.print(F("Copy and Sign-in"));
  369.         delay(5000);
  370.         buttoncounter = 2;
  371.         lcd.setCursor(0, 1);
  372.         lcd.print(F("Press CLR Button"));
  373.       }
  374.       if (a >= 20 and a <= 34 ) {
  375.         r12hr_get_counter();
  376.         r12hr_write_counter();
  377.         r12hr_get_code();
  378.         c = a - 20;
  379.         lcd.setCursor(0, 0);
  380.         lcd.print(F("CODE :"));
  381.         lcd.setCursor(8, 0);
  382.         lcd.print(b);
  383.         lcd.setCursor(0, 1);
  384.         lcd.print(F("Copy and Sign-in"));
  385.         delay(5000);
  386.         buttoncounter = 2;
  387.         lcd.setCursor(0, 1);
  388.         lcd.print(F("Press CLR Button"));
  389.       }
  390.       if (a >= 35 and a <= 200 ) {
  391.         r1day_get_counter();
  392.         r1day_write_counter();
  393.         r1day_get_code();
  394.         c = a - 35;
  395.         lcd.setCursor(0, 0);
  396.         lcd.print(F("Code :"));
  397.         lcd.setCursor(8, 0);
  398.         lcd.print(b);
  399.         lcd.setCursor(0, 1);
  400.         lcd.print(F("Copy and Sign-in"));
  401.         delay(5000);
  402.         buttoncounter = 2;
  403.         lcd.setCursor(0, 1);
  404.         lcd.print(F("Press CLR Button"));
  405.       }
  406.       a = c;
  407.       b = "";
  408.     }
  409.   }
  410.   else if (buttoncounter == 2) {
  411.     if (button3 == LOW) {
  412.       buttoncounter = 0;
  413.       lcd.setCursor(0, 1);
  414.       lcd.print(F("    CODE CLEARED"));
  415.       Serial.println(F("clear button pressed"));
  416.       delay(1000);
  417.       lcd.clear();
  418.       lcd.setCursor(0, 0);
  419.       lcd.print(F("  Please Wait..."));
  420.       lcd.setCursor(0, 1);
  421.       lcd.print(F("<<<AGI Portal>>>"));
  422.       delay(700);
  423.       if (c >= 5 ) {
  424.         ;
  425.         lcd.clear();
  426.         lcd.setCursor(0, 0);
  427.         lcd.print(F("You Have"));
  428.         lcd.setCursor(0, 1);
  429.         lcd.print(F("Coin = Php"));
  430.         lcd.setCursor(12, 1);
  431.         lcd.print(a);
  432.         delay(3000);
  433.       };
  434.       lcd.clear();
  435.       lcd.setCursor(0, 0);
  436.       lcd.print(F("Pls Insert Coin"));
  437.       lcd.setCursor(0, 1);
  438.       lcd.print(F("5 Peso Coin"));
  439.       delay(2000);
  440.       lcd.clear();
  441.       lcd.print(F(" P5=1hr P10=2hr"));
  442.       lcd.setCursor(0, 1);
  443.       lcd.print(F(" P20=5hr P35=1D"));
  444.     }
  445.   }
  446. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top