naivxnaivet

JHUNDECK EDITED DISPLAY BASE

Jun 17th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.04 KB | None | 0 0
  1. //Include Libraries
  2. #include <EEPROM.h> //For EEPROM
  3. #include <ESP8266TelnetClient.h> //For ESP Telnet
  4. #include <ESP8266WiFi.h> //For ESP WiFi Core
  5. #include <ESP8266WiFiMulti.h> //For ESP Wifi
  6. #include <LiquidCrystal_I2C.h> //For I2C LCD
  7. #include <Wire.h> //For I2C Communication
  8. //----------------------------- ▼ Global Variables ▼ -------------------------------
  9. IPAddress mikrotikRouterIp (192, 168, 22, 1);
  10.  
  11. unsigned long temp;
  12. //WiFi
  13. const char* user = "admin";
  14. const char* pwd = "Secreto#020202";
  15. const char* ssid = "MikroTik Wifi";
  16. const char* password = "Secreto#020202";
  17. String M_command;
  18.  
  19. unsigned long previousMillis = 0; // will store last time LED was updated
  20. const long interval = 10000;
  21. long lcdCoin = 0;
  22. unsigned long previousResetMillis = 0;
  23. bool resetNow = false;
  24.  
  25. unsigned long startTime = 0;
  26. unsigned long checkTime = 0;
  27.  
  28. bool displayCoinCount = false;
  29.  
  30. int dummyCounter = 0;
  31.  
  32. unsigned long debounceDelay = 0;
  33.  
  34. bool activateButton = false;
  35. bool editMode = false;
  36. bool displayMainMessage = true;
  37. bool displayVouch = false;
  38.  
  39. int buttonStateTest1;
  40. int lastButtonStateTest1 = LOW;
  41. unsigned long lastDebounceTimeTest1 = 0;
  42.  
  43. int buttonStateTest2;
  44. int lastButtonStateTest2 = LOW;
  45. unsigned long lastDebounceTimeTest2 = 0;
  46.  
  47. int buttonStateTest3;
  48. int lastButtonStateTest3 = LOW;
  49. unsigned long lastDebounceTimeTest3 = 0;
  50.  
  51. long userCode;
  52.  
  53. int perPisoMin = 5; //ILANG MINUTES
  54. long computation = perPisoMin * 60L;
  55. long hourPromo = 3600UL;
  56.  
  57. long promoComp;
  58. long promoHour = 3600UL;
  59.  
  60. unsigned long promoTime;
  61.  
  62. int counterMap = 0;
  63.  
  64. int counter = 0;
  65. int counterChange = -1;
  66.  
  67. int coins = 0;
  68. int lastCoinCount = 0;
  69. long promoFinal;
  70. long inBet = 0;
  71.  
  72. //Promo Data
  73. //promo prices
  74. int promo1 = 10;
  75. int promo2 = 15;
  76. int promo3 = 20;
  77. int promo4 = 30;
  78. int promo5 = 150;
  79.  
  80. //promo hour
  81. int promoOne = 1;
  82. int promoTwo = 6;
  83. int promoThree = 12;
  84. int promoFour = 24;
  85. int promoFive = 168;
  86.  
  87. //LCD
  88. #define LCD_I2C_ADDR 0x27
  89. #define LCD_ROWS 4
  90. #define LCD_COLS 20
  91.  
  92. //Pinouts
  93. #define buttonPinTest1 D7
  94. #define buttonPinTest2 D3
  95. #define buttonPinTest3 D6
  96. #define LED_BUILTIN D4
  97. #define coinSlotPin D5
  98. #define BACKLIGHT_PIN 13 //backlight pin
  99.  
  100. //EEPROM Settings
  101. #define eeAddressA 0
  102. #define eeAddressB 10
  103. #define eeAddressC 20
  104. #define eeAddressD 30
  105. #define eeAddressE 40
  106. #define eeAddressF 50
  107. #define eeAddressG 60
  108. #define eeAddressH 70
  109. #define eeAddressI 80
  110. #define eeAddressJ 90
  111. #define eeAddressK 100
  112.  
  113. //----------------------------- ▲ Global Variables ▲ -------------------------------
  114.  
  115.  
  116. //----------------------------- ▼ Global Objects ▼ ---------------------------------
  117.  
  118. //ESP WiFi Multi Object
  119. ESP8266WiFiMulti WiFiMulti;
  120.  
  121. //Main ESP WiFi Object
  122. WiFiClient client;
  123.  
  124. //ESP Telnet Object
  125. ESP8266telnetClient tc(client);
  126.  
  127.  
  128. //LCD Object
  129. LiquidCrystal_I2C lcd(LCD_I2C_ADDR, LCD_COLS, LCD_ROWS);
  130.  
  131. //----------------------------- ▲ Global Objects ▲ ---------------------------------
  132.  
  133. void retrieve_data_from_eeprom() {
  134. EEPROM.get(eeAddressA, promo1);
  135. EEPROM.get(eeAddressB, promoOne);
  136. EEPROM.get(eeAddressC, promo2);
  137. EEPROM.get(eeAddressD, promoTwo);
  138. EEPROM.get(eeAddressE, promo3);
  139. EEPROM.get(eeAddressF, promoThree);
  140. EEPROM.get(eeAddressG, promo4);
  141. EEPROM.get(eeAddressH, promoFour);
  142. EEPROM.get(eeAddressI, promo5);
  143. EEPROM.get(eeAddressJ, promoFive);
  144. EEPROM.get(eeAddressK, perPisoMin);
  145. }
  146.  
  147. ICACHE_RAM_ATTR void coinInserted() {
  148. coins++;
  149.  
  150. if (coins < promo1)
  151. {
  152. promoFinal = computation * coins;
  153. }
  154. else if (coins >= promo1 && coins < promo2)
  155. {
  156. promoTime = promoOne * promoHour;
  157. promoComp = coins - promo1;
  158. inBet = promoComp * computation;
  159. promoFinal = inBet + promoTime;
  160. }
  161. else if (coins >= promo2 && coins < promo3)
  162. {
  163. promoTime = promoTwo * promoHour;
  164. promoComp = coins - promo2;
  165. inBet = promoComp * computation;
  166. promoFinal = inBet + promoTime;
  167. }
  168. else if (coins >= promo3 && coins < promo4)
  169. {
  170. promoTime = promoThree * promoHour;
  171. promoComp = coins - promo3;
  172. inBet = promoComp * computation;
  173. promoFinal = inBet + promoTime;
  174.  
  175. }
  176. else if (coins >= promo4 && coins < promo5)
  177. {
  178. //promo4 = 30;
  179.  
  180. //60 modulo
  181.  
  182. promoTime = promoFour * promoHour;
  183. promoComp = coins - promo4;
  184. inBet = promoComp * computation;
  185. promoFinal = inBet + promoTime;
  186. }
  187. else if (coins >= promo5)
  188. {
  189. promoTime = promoFive * promoHour;
  190. promoComp = coins - promo5;
  191. inBet = promoComp * computation;
  192. promoFinal = inBet + promoTime;
  193. }
  194. //Serial.println(promoFinal);
  195. }
  196.  
  197. void setup() {
  198. //Initialize EEPROM
  199. EEPROM.begin(512);
  200.  
  201. //Initialize Serial
  202. Serial.begin(115200);
  203.  
  204. //Do Nothing until Serial doesnt get initialized
  205. while (!Serial) {
  206. ;
  207. }
  208.  
  209. //Get Our Saved Promo Data Back
  210. retrieve_data_from_eeprom();
  211.  
  212. computation = perPisoMin * 60L;
  213.  
  214. //coins = 60;
  215. pinMode(coinSlotPin, INPUT);
  216. attachInterrupt(D5, coinInserted, RISING);
  217.  
  218. pinMode(buttonPinTest1, INPUT);
  219. pinMode(buttonPinTest2, INPUT);
  220. pinMode(buttonPinTest3, INPUT);
  221.  
  222. //Initiate the LCD
  223. lcd.begin();
  224. lcd.backlight();
  225.  
  226. lcd.setCursor(5, 0);
  227. lcd.print(F("WELCOME TO"));
  228. lcd.setCursor(0, 1);
  229. lcd.print(F("JHUNDECK HOTSPOT"));
  230. digitalWrite(LED_BUILTIN, HIGH);
  231. delay(1000);
  232.  
  233.  
  234. // Serial.println();
  235. // Serial.println();
  236. // Serial.println("Wait for WI-Fi...");
  237.  
  238.  
  239.  
  240. // while (WiFiMulti.run() != WL_CONNECTED)
  241. // {
  242. // // Serial.print(".");
  243. // delay(500);
  244. // }
  245.  
  246.  
  247.  
  248. //
  249. // Serial.println("");
  250. // Serial.println("WiFi connected");
  251. // Serial.print("IP Address : ");
  252. // Serial.println(WiFi.localIP());
  253. // Serial.println("Connecting....");
  254.  
  255.  
  256. tc.setPromptChar('>');
  257. //manual login pagka may problema
  258. // char key = 0;
  259. // Serial.println("\r\npress enter to begin:");
  260. // do
  261. // {
  262. // key = Serial.read();
  263. // Serial.println(key);
  264. // }
  265. //
  266. // //automatic login
  267. // while (key <= 0);
  268.  
  269. tc.login(mikrotikRouterIp, user, pwd);
  270. }
  271.  
  272. void loop() {
  273. editRates();
  274. readBtnTest1();
  275. readBtnTest2();
  276. readBtnTest3();
  277. //Serial.println(counter);
  278. editModeCheck();
  279. displayCheck();
  280. noNegative();
  281. //Serial.println(lcdCoin);
  282. displayCoin();
  283. displayVoucher();
  284. computation = perPisoMin * 60L;
  285. userCode = random(10000, 99999);
  286. //Serial.println(promoFinal);
  287. //Serial.println(counter);
  288. }
  289.  
  290. void readBtnTest1() {
  291. int reading = digitalRead(buttonPinTest1);
  292. if (reading != lastButtonStateTest1) {
  293. lastDebounceTimeTest1 = millis();
  294. }
  295. if ((millis() - lastDebounceTimeTest1) > debounceDelay) {
  296. if (reading != buttonStateTest1) {
  297. buttonStateTest1 = reading;
  298. if (buttonStateTest1 == HIGH)
  299. {
  300. counter++;
  301. }
  302. }
  303. }
  304. lastButtonStateTest1 = reading;
  305. }
  306.  
  307. void readBtnTest2() {
  308. int reading = digitalRead(buttonPinTest2);
  309. if (reading != lastButtonStateTest2) {
  310. lastDebounceTimeTest2 = millis();
  311. }
  312. if ((millis() - lastDebounceTimeTest2) > debounceDelay) {
  313. if (reading != buttonStateTest2) {
  314. buttonStateTest2 = reading;
  315. if (buttonStateTest2 == HIGH)
  316. {
  317. counter--;
  318. }
  319. }
  320. }
  321. lastButtonStateTest2 = reading;
  322. }
  323.  
  324. void readBtnTest3() {
  325. int reading = digitalRead(buttonPinTest3);
  326. if (reading != lastButtonStateTest3) {
  327. lastDebounceTimeTest3 = millis();
  328. }
  329. if ((millis() - lastDebounceTimeTest3) > debounceDelay) {
  330. if (reading != buttonStateTest3) {
  331. buttonStateTest3 = reading;
  332. if (buttonStateTest3 == HIGH)
  333. {
  334. counterChange++;
  335. //Serial.println(counterChange);
  336. }
  337. }
  338. }
  339. lastButtonStateTest3 = reading;
  340. }
  341.  
  342. void booleanCheck() {
  343. if (counter == 5)
  344. {
  345. activateButton = true;
  346. }
  347. }
  348.  
  349. void editModeCheck() {
  350. if (counterChange > 0 && displayMainMessage == true)
  351. {
  352. counterChange = 0;
  353. }
  354.  
  355.  
  356. if (coins > 0)
  357. {
  358. userCode = random(10000, 99999);
  359.  
  360. displayMainMessage = false;
  361. displayCoinCount = true; //map
  362. if (counterChange == 1)
  363. {
  364. detachInterrupt(D5);
  365. displayVouch = true;
  366. displayVoucher();
  367. displayVouch = true;
  368. displayCoinCount = false;
  369. resetCountStart();
  370. lcdCoin = coins;
  371. coins = 0;
  372. }
  373.  
  374. }
  375.  
  376. if (displayVouch == true)
  377. {
  378. counterMap = 1;
  379. displayVouch = false;
  380. //Serial.println("Wait reset");
  381. }
  382. if (counterMap == 1 && displayVouch == false)
  383. {
  384. resetAfter(6);
  385. if (resetNow == true && displayCoinCount == false || counterChange == 2)
  386. {
  387. lcd.clear();
  388. //Serial.println("Reset ");
  389. resetVariable();
  390. counterMap = 0;
  391. //map666
  392. attachInterrupt(D5, coinInserted, RISING);
  393.  
  394.  
  395. }
  396. }
  397. }
  398.  
  399. void editRates() {
  400. if (counter == 5 && activateButton == false && dummyCounter == 0)
  401. {
  402. //2242
  403.  
  404. dummyCounter++;
  405. editMode = true;
  406.  
  407. }
  408.  
  409. else if (activateButton == true)
  410. {
  411. lcd.clear();
  412. displayMainMessage = false;
  413. counter = 0;
  414. activateButton = false;
  415. editMode = true;
  416. }
  417.  
  418. if (editMode == true)
  419. {
  420. displayEditMode();
  421.  
  422. displayMainMessage = false;
  423.  
  424. }
  425. }
  426.  
  427. void resetAfter(int sec) {
  428. unsigned long currentResetMillis = millis();
  429. sec *= 1000;
  430. if (currentResetMillis - previousResetMillis >= sec && !resetNow) {
  431. previousResetMillis = currentResetMillis;
  432. resetNow = true;
  433. ////Serial.println("Reset Now");
  434. }
  435. }
  436.  
  437. void resetCountStart() {
  438. unsigned long currentResetMillis = millis();
  439. previousResetMillis = currentResetMillis;
  440. resetNow = false;
  441. }
  442.  
  443. void displayCheck() {
  444. if (displayMainMessage == true)
  445. {
  446. booleanCheck();
  447. //55
  448. lcdCoin = 0;
  449. editMode = false;
  450.  
  451.  
  452. lcd.setCursor(0, 0);
  453. lcd.print(F("Jhundeck Wi-Fi Vendo"));
  454. lcd.setCursor(0, 1);
  455. lcd.print(F(" Promo Price/Hours "));
  456. lcd.setCursor(0, 2);
  457. lcd.print(promo1);
  458. lcd.print(F("/"));
  459. lcd.print(promoOne);
  460. lcd.print(F(" "));
  461.  
  462. lcd.print(promo2);
  463. lcd.print(F("/"));
  464. lcd.print(promoTwo);
  465. lcd.print(F(" "));
  466.  
  467. lcd.print(promo3);
  468. lcd.print(F("/"));
  469. lcd.print(promoThree);
  470. lcd.print(F(" "));
  471.  
  472. lcd.setCursor(0, 3);
  473. lcd.print(promo4);
  474. lcd.print(F("/"));
  475. lcd.print(promoFour);
  476. lcd.print(F(" "));
  477.  
  478.  
  479. lcd.print(promo5);
  480. lcd.print(F("/"));
  481. lcd.print(promoFive);
  482. lcd.print(F(" "));
  483. }
  484. }
  485.  
  486. void displayEditMode() {
  487. if (editMode == true)
  488. {
  489. //write eeprom
  490. if (counterChange == 0)
  491. {
  492. lcd.setCursor(0, 0);
  493. lcd.print(F("EDIT MINUTE PER PISO"));
  494. lcd.setCursor(0, 1);
  495. lcd.print(counter);
  496. lcd.print(F(" "));
  497.  
  498. perPisoMin = counter;
  499. EEPROM.put(eeAddressK, perPisoMin);
  500. EEPROM.commit();
  501. }
  502. else if (counterChange == 1)
  503. {
  504. lcd.setCursor(0, 0);
  505. lcd.print(F(" EDIT PROMO 1 PRICE "));
  506. lcd.setCursor(0, 1);
  507. lcd.print(counter);
  508. lcd.print(F(" "));
  509. promo1 = counter;
  510. EEPROM.put(eeAddressA, promo1);
  511. EEPROM.commit();
  512. }
  513. else if (counterChange == 2)
  514. {
  515. lcd.setCursor(0, 0);
  516. lcd.print(F(" EDIT PROMO 1 HOURS "));
  517. lcd.setCursor(0, 1);
  518. lcd.print(counter);
  519. lcd.print(F(" "));
  520.  
  521. promoOne = counter;
  522. EEPROM.put(eeAddressB, promoOne);
  523. EEPROM.commit();
  524. }
  525. else if (counterChange == 3)
  526. {
  527. lcd.setCursor(0, 0);
  528. lcd.print(F(" EDIT PROMO 2 PRICE "));
  529. lcd.setCursor(0, 1);
  530. lcd.print(counter);
  531. lcd.print(F(" "));
  532.  
  533. promo2 = counter;
  534. EEPROM.put(eeAddressC, promo2);
  535. EEPROM.commit();
  536. }
  537. else if (counterChange == 4)
  538. {
  539. lcd.setCursor(0, 0);
  540. lcd.print(F(" EDIT PROMO 2 HOURS "));
  541. lcd.setCursor(0, 1);
  542. lcd.print(counter);
  543. lcd.print(F(" "));
  544.  
  545. promoTwo = counter;
  546. EEPROM.put(eeAddressD, promoTwo);
  547. EEPROM.commit();
  548. }
  549. else if (counterChange == 5)
  550. {
  551. lcd.setCursor(0, 0);
  552. lcd.print(F( " EDIT PROMO 3 PRICE "));
  553. lcd.setCursor(0, 1);
  554. lcd.print(counter);
  555. lcd.print(F(" "));
  556.  
  557. promo3 = counter;
  558. EEPROM.put(eeAddressE, promo3);
  559. EEPROM.commit();
  560. }
  561. else if (counterChange == 6)
  562. {
  563. lcd.setCursor(0, 0);
  564. lcd.print(F(" EDIT PROMO 3 HOURS "));
  565. lcd.setCursor(0, 1);
  566. lcd.print(counter);
  567. lcd.print(F(" "));
  568.  
  569. promoThree = counter;
  570. EEPROM.put(eeAddressF, promoThree);
  571. EEPROM.commit();
  572. }
  573. else if (counterChange == 7)
  574. {
  575. lcd.setCursor(0, 0);
  576. lcd.print(F(" EDIT PROMO 4 PRICE "));
  577. lcd.setCursor(0, 1);
  578. lcd.print(counter);
  579. lcd.print(F(" "));
  580.  
  581. promo4 = counter;
  582. EEPROM.put(eeAddressG, promo4);
  583. EEPROM.commit();
  584. }
  585. else if (counterChange == 8)
  586. {
  587. lcd.setCursor(0, 0);
  588. lcd.print(F(" EDIT PROMO 4 HOURS "));
  589. lcd.setCursor(0, 1);
  590. lcd.print(counter);
  591. lcd.print(F(" "));
  592.  
  593. promoFour = counter;
  594. EEPROM.put(eeAddressH, promoFour);
  595. EEPROM.commit();
  596. }
  597. else if (counterChange == 9)
  598. {
  599. lcd.setCursor(0, 0);
  600. lcd.print(F(" EDIT PROMO 5 PRICE "));
  601. lcd.setCursor(0, 1);
  602. lcd.print(counter);
  603. lcd.print(F(" "));
  604.  
  605. promo5 = counter;
  606. EEPROM.put(eeAddressI, promo5);
  607. EEPROM.commit();
  608. }
  609. else if (counterChange == 10)
  610. {
  611. lcd.setCursor(0, 0);
  612. lcd.print(F(" EDIT PROMO 5 HOURS "));
  613. lcd.setCursor(0, 1);
  614. lcd.print(counter);
  615. lcd.print(F(" "));
  616.  
  617. promoFive = counter;
  618. EEPROM.put(eeAddressJ, promoFive);
  619. EEPROM.commit();
  620. }
  621. else if (counterChange == 11)
  622. {
  623. EEPROM.put(eeAddressA, promo1);
  624. EEPROM.put(eeAddressB, promoOne);
  625. EEPROM.put(eeAddressC, promo2);
  626. EEPROM.put(eeAddressD, promoTwo);
  627. EEPROM.put(eeAddressE, promo3);
  628. EEPROM.put(eeAddressF, promoThree);
  629. EEPROM.put(eeAddressG, promo4);
  630. EEPROM.put(eeAddressH, promoFour);
  631. EEPROM.put(eeAddressI, promo5);
  632. EEPROM.put(eeAddressJ, promoFive);
  633. EEPROM.put(eeAddressK, perPisoMin);
  634. EEPROM.commit();
  635.  
  636. lcd.setCursor(0, 0);
  637. lcd.print(F(" PROMO 1 TO 5 PRICE "));
  638. lcd.setCursor(0, 1);
  639. lcd.print(F("AND HOURS ARE SAVED!"));
  640. lcd.setCursor(0, 2);
  641. lcd.print(F("PLEASE WAIT........."));
  642. lcd.setCursor(0, 3);
  643. lcd.print(F(" "));
  644. counterChange = 0;
  645. delay(3000);
  646. resetVariable();
  647. editMode = false;
  648. displayMainMessage = true;
  649.  
  650. displayCheck();
  651. }
  652. }
  653. }
  654.  
  655. void noNegative() {
  656. if (counter < 0)
  657. {
  658. counter = 0;
  659. }
  660. }
  661.  
  662. void displayVoucher() {
  663. if (displayVouch)
  664. {
  665. // M_command += "/ip hotspot user add name=";
  666. // M_command += userCode;
  667. // M_command += " limit-uptime=";
  668. // M_command += promoFinal;
  669. // int command_len = M_command.length() + 1;
  670. // char M_F_command[command_len];
  671. // M_command.toCharArray(M_F_command, command_len);
  672. // tc.sendCommand(M_F_command);
  673. coins = 0;
  674. lcd.setCursor(0, 0);
  675. lcd.print(F("Your voucher code is"));
  676. lcd.setCursor(0, 1);
  677. lcd.print(F(" <<"));
  678. lcd.print(userCode);
  679. lcd.print(F(">> "));
  680. //map320
  681. //
  682. // lcd.setCursor(0, 1);
  683. // lcd.print(promoFinal);
  684. format(promoFinal);
  685. // M_command = "";
  686. // memset(M_F_command , 0, sizeof(M_F_command ));
  687. }
  688. }
  689.  
  690. void resetVariable() {
  691. counterChange = 0;
  692. displayVouch = false;
  693. editMode = false;
  694. displayMainMessage = true;
  695. counter = 0;
  696. dummyCounter = 0;
  697. displayCoinCount = false;
  698. coins = 0;
  699. }
  700.  
  701. void displayCoin() {
  702. if (displayCoinCount)
  703. {
  704. lcd.setCursor(0, 0);
  705. lcd.print(F("Coins Inserted : "));
  706. lcd.setCursor(0, 1);
  707. lcd.print(coins);
  708. lcd.print(F(" "));
  709.  
  710. lcdCoin = coins;
  711. // lcd.setCursor(4, 0);
  712. // // checkPromo();
  713. //
  714. // lcd.print(promoFinal);
  715. temp = promoFinal;
  716.  
  717. format(promoFinal);
  718.  
  719. }
  720. }
  721.  
  722. void checkPromo() {
  723. // if (lcdCoin < promo1)
  724. // {
  725. // promoFinal = computation * lcdCoin;
  726. // }
  727. // else if (lcdCoin >= promo1 && lcdCoin < promo2)
  728. // {
  729. // promoTime = promoOne * promoHour;
  730. // promoComp = lcdCoin % promo1; //40 yung coin count, pumasok sa coin count na 30 tas may sampong piso na per rate na in between
  731. // inBetween = promoComp * computation; //REMAINDER MULTIPLY MO SA PRESYO PER PISO TAS ADD MO YUNG REMAINDER
  732. // promoFinal = inBetween + promoTime;
  733. // }
  734. // else if (lcdCoin >= promo2 && lcdCoin < promo3)
  735. // {
  736. // promoTime = promoTwo * promoHour;
  737. // promoComp = lcdCoin % promo2; //40 yung coin count, pumasok sa coin count na 30 tas may sampong piso na per rate na in between
  738. // inBetween = promoComp * computation; //REMAINDER MULTIPLY MO SA PRESYO PER PISO TAS ADD MO YUNG REMAINDER
  739. // promoFinal = inBetween + promoTime;
  740. //
  741. // }
  742. // else if (lcdCoin >= promo3 && lcdCoin < promo4)
  743. // {
  744. // promoComp = lcdCoin % promo3; //40 yung coin count, pumasok sa coin count na 30 tas may sampong piso na per rate na in between
  745. // inBetween = promoComp * computation; //REMAINDER MULTIPLY MO SA PRESYO PER PISO TAS ADD MO YUNG REMAINDER
  746. // promoTime = promoThree * promoHour;
  747. // promoFinal = inBetween + promoTime; //FINAL SHIT
  748. // }
  749. // else if (lcdCoin == promo4)
  750. // {
  751. // promoTime = promoFour * promoHour;
  752. // promoFinal = inBetween + promoTime;
  753. // }
  754. // else if (lcdCoin >= promo4 && lcdCoin < promo5)
  755. // {
  756. // promoComp = lcdCoin % promo4;
  757. // inBetween = promoComp * computation;
  758. // promoTime = promoFour * promoHour;
  759. // promoFinal = inBetween + promoTime;
  760. // }
  761. // else if (lcdCoin >= promo5)
  762. // {
  763. // promoComp = lcdCoin % promo5; //40 yung coin count, pumasok sa coin count na 30 tas may sampong piso na per rate na in between
  764. // inBetween = promoComp * computation; //REMAINDER MULTIPLY MO SA PRESYO PER PISO TAS ADD MO YUNG REMAINDER
  765. // promoTime = promoFive * promoHour;
  766. // promoFinal = inBetween + promoTime; //FINAL SHIT
  767. // }
  768. }
  769.  
  770. void format( long seconds) {
  771. long W = seconds / 604800;
  772. seconds = seconds % 604800;
  773. long D = seconds / 86400;
  774. seconds = seconds % 86400; //map999
  775. long H = seconds / 3600;
  776. seconds = seconds % 3600;
  777. long M = seconds / 60;
  778. long S = seconds % 60;
  779.  
  780. lcd.setCursor(0, 2);
  781. lcd.print(F("Voucher Duration : "));
  782. lcd.setCursor(0, 3);
  783. lcd.print(W);
  784. lcd.print(F("W"));
  785. lcd.print(F("-"));
  786. lcd.print(D);
  787. lcd.print(F("D"));
  788. lcd.print(F("-"));
  789. lcd.print(H);
  790. lcd.print(F("H"));
  791. lcd.print(F(":"));
  792. lcd.print(M);
  793. lcd.print(F("M"));
  794. lcd.print(F(" "));
  795. }
Add Comment
Please, Sign In to add comment