Advertisement
Guest User

Untitled

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