Advertisement
Guest User

Untitled

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