Advertisement
Guest User

Untitled

a guest
Feb 16th, 2019
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 11.08 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 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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement