21ani

menuTambah

Jul 20th, 2020
155
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 11.46 KB | None | 0 0
  1.  #include <SPI.h>
  2. #include <Keypad.h>
  3. #include <MFRC522.h>
  4. #include <LiquidCrystal_I2C.h>  //i2C LCD Library
  5. LiquidCrystal_I2C lcd(0x27, 16, 2); //library i2c lcd
  6.  
  7. #define SS_PIN 8
  8. #define RST_PIN 9
  9.  
  10. MFRC522 mfrc522(SS_PIN, RST_PIN);   // Create MFRC522 instance.
  11.  
  12. char customKey;
  13. const byte ROWS = 4;
  14. const byte COLS = 4;
  15. long passwd = 0;
  16. long isiku;
  17. long kartu1;
  18. long kartu2;
  19. long kartu3;
  20. long kartu4;
  21. int id;
  22. long beli;
  23. long dtTombol=0;
  24. int digit;
  25. bool notif = true;
  26. bool mode1=true; //digunakan untuk
  27. bool mode2=false;
  28. byte data;
  29.  
  30. char keys[ROWS][COLS] = {
  31. {'1', '2', '3', 'A'},
  32. {'4', '5', '6', 'B'},
  33. {'7', '8', '9', 'C'},
  34. {'*', '0', '#', 'D'}
  35. };
  36.  
  37.  
  38. byte rowPins [ROWS] = {A0,A1,A2,7};
  39. byte colPins [COLS] = {6,5,4,3};
  40.  
  41. //initialize an instance of class NewKeypad
  42. Keypad customKeypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS);
  43.  
  44.  
  45.  
  46. void setup()
  47. {
  48.   lcd.begin(); //set lcd i2c
  49.   lcd.noCursor(); //biar gak ada cursor di lcd
  50.   lcd.clear(); //clear lcd
  51.   Serial.begin(9600);   // Initiate a serial communication
  52.   SPI.begin();      // Initiate  SPI bus
  53.   mfrc522.PCD_Init();   // Initiate MFRC522
  54. //  Serial.println("Put your card to the reader...");
  55. //  Serial.println();
  56.  
  57.   delay(1000);
  58.  
  59. }
  60.  
  61.  
  62. void loop(){
  63.  
  64.   lcd.setCursor(0,0);
  65.   lcd.print("Pilih Menu");
  66.   lcd.setCursor(0,1);
  67.   lcd.print("A.Tambah    B.Kurangi");
  68.  
  69. customKey = customKeypad.getKey();
  70. if(customKey == 'A'){
  71.   lcd.clear();
  72.   lcd.setCursor(0,0);
  73.       lcd.print("Menu Tambah");
  74.       delay(3000);
  75.       cekTekan();
  76.     /*lcd.clear();
  77.     delay(1000);
  78.     //passwd = 0;
  79.     //isi();
  80.       lcd.setCursor(0,0);
  81.       lcd.print("Dekatkan Kartu");
  82.     delay(3000);
  83.     lcd.clear();
  84.     //isiscan();
  85.     //cekTombol();
  86.     delay(1000);
  87.     isiku = 0;
  88.     scan();
  89.     */
  90.     }
  91.  
  92.     if(customKey == 'B'){
  93.  
  94.    
  95.     lcd.clear();
  96.     lcd.setCursor(0,0);
  97.     lcd.print("Dekatkan Kartu");
  98.     delay(3000);
  99.     lcd.clear();
  100.     //isiscan();
  101.     lcd.clear();
  102.     beli = 0;
  103.     bayar();
  104.    
  105.     //mulaiisi();
  106.     }
  107.  
  108.  
  109.  
  110.  
  111.  
  112. }
  113.  
  114.  
  115.  
  116. void cekTekan(){
  117.  
  118.   lcd.clear();
  119.   dtTombol=0;
  120.   lcd.setCursor(0,0);
  121.   lcd.print("Masukkan Nominal");
  122.   while(mode1){
  123.     char key = customKeypad.getKey();
  124.     Serial.println("Test");
  125.     if(key){
  126.    
  127.    
  128.         if(key!='A' && key!='B' && key!='C' && key!='#'){
  129.           if(key=='*'){
  130.             dtTombol=(dtTombol-dtTombol%10)/10;
  131.             lcd.setCursor(0,1);
  132.             lcd.print("                 ");
  133.           }else{
  134.             dtTombol=dtTombol*10+key;
  135.           }
  136. //          lcd.setCursor(0,0);
  137. //          lcd.print(str);
  138.           lcd.setCursor(0,1);
  139.           lcd.print(dtTombol);
  140.         }    
  141.          
  142.    
  143.   }
  144.  
  145. }
  146. }
  147.  
  148.  
  149. /*
  150. void isi(){
  151.  
  152.   lcd.setCursor(0,0);
  153.   lcd.print("Input Password");
  154.  
  155. customKey = customKeypad.getKey();
  156.  
  157.     /*
  158.     if(customKey >= '0' && customKey <= '9')
  159.     {
  160.       passwd = passwd * 10 + (customKey - '0');
  161.       lcd.setCursor(0,1);
  162.       lcd.print(passwd);
  163.     }
  164.  
  165.    
  166.     if((customKey == 'D')&&(passwd == 112233)){
  167.     lcd.clear();
  168.     delay(1000);
  169.     customKey == ' ';
  170.     return;
  171.     }
  172.  
  173.     if(customKey == 'C'){
  174.     lcd.clear();
  175.     delay(200);
  176.     passwd = 0;
  177.     }
  178.    
  179.  isi();
  180.   }*/
  181.  
  182.  
  183. /*
  184. void isiscan(){
  185.  
  186.   lcd.setCursor(0,0);
  187.   lcd.print("Scan Kartu");
  188.  
  189.   SPI.begin();      // Initiate  SPI bus
  190.   mfrc522.PCD_Init();   // Initiate MFRC522
  191. //  Serial.println("Put your card to the reader...");
  192.  
  193.   // Look for new cards
  194.   if ( ! mfrc522.PICC_IsNewCardPresent())
  195.   {
  196.     //return;
  197.   }
  198.   // Select one of the cards
  199.   if ( ! mfrc522.PICC_ReadCardSerial())
  200.   {
  201.     //return;
  202.   }
  203.   //Show UID on serial monitor
  204.   //lcd.setCursor(0,0);
  205. //  Serial.print("UID tag :");
  206.   String content= "";
  207.   byte letter;
  208.   for (byte i = 0; i < mfrc522.uid.size; i++)
  209.   {
  210.  //    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
  211.  //    Serial.print(mfrc522.uid.uidByte[i], HEX);
  212.      content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
  213.      content.concat(String(mfrc522.uid.uidByte[i], HEX));
  214.   }
  215.  
  216.   content.toUpperCase();
  217.  
  218.   if (content.substring(1) == "03 3D 9E 02")
  219.   {
  220.        
  221.  
  222.       lcd.setCursor(0,1);
  223.       lcd.print(content.substring(1));
  224.       delay(3000);
  225.       id = 1;
  226.       lcd.clear();
  227.       content.substring(1) = "";
  228.       return;
  229.   }
  230.  
  231.  if (content.substring(1) == "99 AD B5 55")
  232.   {
  233.        
  234.       lcd.setCursor(0,1);
  235.       lcd.print(content.substring(1));
  236.       delay(3000);
  237.       id = 2;
  238.       lcd.clear();
  239.       content.substring(1) = "";
  240.       return;
  241.   }
  242.  
  243.    if (content.substring(1) == "A3 32 48 83")
  244.   {
  245.      
  246.       lcd.setCursor(0,1);
  247.       lcd.print(content.substring(1));
  248.       delay(3000);
  249.       id = 3;
  250.       lcd.clear();
  251.       content.substring(1) = "";
  252.       return;
  253.   }
  254.  
  255.    if (content.substring(1) == "06 5D 01 FA")
  256.   {
  257.        
  258.       lcd.setCursor(0,1);
  259.       lcd.print(content.substring(1));
  260.       delay(3000);
  261.       id = 4;
  262.       lcd.clear();
  263.       content.substring(1) = "";
  264.       return;
  265.   }
  266.  
  267. isiscan();  
  268. }
  269. */
  270.  
  271. void cekTombol(){
  272.  
  273.   lcd.setCursor(0,0);
  274.   lcd.print("Mau isi berapa");
  275.  
  276.  
  277.  
  278.  
  279.   if(customKey!='A' && customKey!='B' && customKey!='C' && customKey!='#'){
  280.           if(customKey=='*'){
  281.             dtTombol=(dtTombol-dtTombol%10)/10;
  282.             lcd.setCursor(0,1);
  283.             lcd.print("                 ");
  284.           }else{
  285.             dtTombol=dtTombol*10+customKey;
  286.           }
  287. //          lcd.setCursor(0,0);
  288. //          lcd.print(str);
  289.           lcd.setCursor(0,1);
  290.           lcd.print(dtTombol);
  291.         }
  292.  
  293.   /*SPI.begin();      // Initiate  SPI bus
  294.   mfrc522.PCD_Init();   // Initiate MFRC522
  295. //  Serial.println("Put your card to the reader...");
  296.  
  297.   // Look for new cards
  298.   if ( ! mfrc522.PICC_IsNewCardPresent())
  299.   {
  300.     return;
  301.   }
  302.   // Select one of the cards
  303.   if ( ! mfrc522.PICC_ReadCardSerial())
  304.   {
  305.     return;
  306.   }
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.   //Show UID on serial monitor
  314.   //lcd.setCursor(0,0);
  315. //  Serial.print("UID tag :");
  316.   String content= "";
  317.   byte letter;
  318.   for (byte i = 0; i < mfrc522.uid.size; i++)
  319.   {
  320.  //    Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
  321.  //    Serial.print(mfrc522.uid.uidByte[i], HEX);
  322.      content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
  323.      content.concat(String(mfrc522.uid.uidByte[i], HEX));
  324.   }
  325.  
  326.   content.toUpperCase();
  327.  
  328.   if (content.substring(1) == "03 3D 9E 02")
  329.   {
  330.        
  331.  
  332.       lcd.setCursor(0,1);
  333.       lcd.print(content.substring(1));
  334.       delay(3000);
  335.       id = 1;
  336.       lcd.clear();
  337.       content.substring(1) = "";
  338.       return;
  339.   }
  340.  
  341.  if (content.substring(1) == "99 AD B5 55")
  342.   {
  343.        
  344.       lcd.setCursor(0,1);
  345.       lcd.print(content.substring(1));
  346.       delay(3000);
  347.       id = 2;
  348.       lcd.clear();
  349.       content.substring(1) = "";
  350.       return;
  351.   }
  352.  
  353.    if (content.substring(1) == "A3 32 48 83")
  354.   {
  355.      
  356.       lcd.setCursor(0,1);
  357.       lcd.print(content.substring(1));
  358.       delay(3000);
  359.       id = 3;
  360.       lcd.clear();
  361.       content.substring(1) = "";
  362.       return;
  363.   }
  364.  
  365.    if (content.substring(1) == "06 5D 01 FA")
  366.   {
  367.        
  368.       lcd.setCursor(0,1);
  369.       lcd.print(content.substring(1));
  370.       delay(3000);
  371.       id = 4;
  372.       lcd.clear();
  373.       content.substring(1) = "";
  374.       return;
  375.   }
  376. */
  377. cekTombol();  
  378. }
  379.  
  380.  
  381.  
  382. void scan(){
  383.  
  384.   lcd.setCursor(0,0);
  385.   lcd.print("Isi Berapa mL?");
  386.  
  387. customKey = customKeypad.getKey();
  388.  
  389. while(notif){
  390.   if(customKey >= '0' && customKey <= '9')
  391.     {
  392.       isiku = isiku * 10 + (customKey - '0');
  393.       lcd.setCursor(0,1);
  394.       lcd.print(isiku);
  395.     }
  396.  
  397.     digit = isiku;
  398.    
  399.     isiku *= 1000;
  400.     Serial.print("saldo yang di input : ");
  401.     Serial.println(isiku);
  402.     Serial.println("Silahkan tap kartu untuk menambah saldo kartu");
  403.  
  404. }
  405.  
  406.    
  407.    
  408.    
  409.     if(customKey == 'C'){
  410.     lcd.clear();
  411.     delay(200);
  412.     isiku = 0;
  413.     }
  414.  
  415.     if((customKey == 'D')&&(id == 1)){
  416.     lcd.clear();
  417.     delay(2000);
  418.     kartu1 = isiku;
  419.     return;
  420.     }
  421.  
  422.     if((customKey == 'D')&&(id == 2)){
  423.     lcd.clear();
  424.     delay(2000);
  425.     kartu2 = isiku;
  426.     return;
  427.     }
  428.  
  429.     if((customKey == 'D')&&(id == 3)){
  430.     lcd.clear();
  431.     delay(2000);
  432.     kartu3 = isiku;
  433.     return;
  434.     }
  435.  
  436.     if((customKey == 'D')&&(id == 4)){
  437.     lcd.clear();
  438.     delay(2000);
  439.     kartu4 = isiku;
  440.     return;
  441.     }
  442.    
  443.  scan();
  444.   }
  445.  
  446.  
  447.   void bayar(){
  448.  
  449.   lcd.setCursor(0,0);
  450.   lcd.print("Beli Berapa mL ?");
  451.  
  452. customKey = customKeypad.getKey();
  453.  
  454.     if(customKey >= '0' && customKey <= '9')
  455.     {
  456.       beli = beli * 10 + (customKey - '0');
  457.       lcd.setCursor(0,1);
  458.       lcd.print(beli);
  459.     }
  460.    
  461.     if(customKey == 'C'){
  462.     lcd.clear();
  463.     delay(200);
  464.     beli = 0;
  465.     }
  466.  
  467.     if((customKey == 'D')&&(id == 1)){
  468.     lcd.clear();
  469.     delay(2000);
  470.     kartu1 = kartu1 - beli;
  471.  
  472.     if(kartu1 >= 0){
  473.     Serial.println(id);
  474.     Serial.println(beli);
  475.     Serial.println(kartu1);  
  476.     delay(1000);
  477.     lcd.setCursor(0,0);
  478.     lcd.print("BERHASIL");
  479.     lcd.setCursor(0,1);
  480.     lcd.print("SALDO=");
  481.     lcd.print(kartu1);
  482.     delay(5000);
  483.     lcd.clear();
  484.     return;
  485.     }
  486.  
  487.     if(kartu1 < 0){
  488.     kartu1 = kartu1 + beli;  
  489.     lcd.setCursor(0,0);
  490.     lcd.print("SALDO KURANG");
  491.     lcd.setCursor(0,1);
  492.     lcd.print("SALDO=");
  493.     lcd.print(kartu1);
  494.     delay(5000);
  495.     lcd.clear();
  496.     beli = 0;
  497.     }
  498.  
  499.     }
  500.  
  501.     if((customKey == 'D')&&(id == 2)){
  502.     lcd.clear();
  503.     delay(2000);
  504.     kartu2 = kartu2 - beli;
  505.  
  506.     if(kartu2 >= 0){
  507.     Serial.println(id);
  508.     Serial.println(beli);
  509.     Serial.println(kartu2);  
  510.     delay(1000);
  511.     lcd.setCursor(0,0);
  512.     lcd.print("BERHASIL");
  513.     lcd.setCursor(0,1);
  514.     lcd.print("SALDO=");
  515.     lcd.print(kartu2);
  516.     delay(5000);
  517.     lcd.clear();
  518.     return;
  519.     }
  520.  
  521.     if(kartu2 < 0){
  522.     kartu2 = kartu2 + beli;  
  523.     lcd.setCursor(0,0);
  524.     lcd.print("SALDO KURANG");
  525.     lcd.setCursor(0,1);
  526.     lcd.print("SALDO=");
  527.     lcd.print(kartu2);
  528.     delay(5000);
  529.     lcd.clear();
  530.     beli = 0;
  531.     }
  532.  
  533.     }
  534.  
  535.     if((customKey == 'D')&&(id == 3)){
  536.     lcd.clear();
  537.     delay(2000);
  538.     kartu3 = kartu3 - beli;
  539.  
  540.     if(kartu3 >= 0){
  541.     Serial.println(id);
  542.     Serial.println(beli);
  543.     Serial.println(kartu3);
  544.     delay(1000);
  545.     lcd.setCursor(0,0);
  546.     lcd.print("BERHASIL");
  547.     lcd.setCursor(0,1);
  548.     lcd.print("SALDO=");
  549.     lcd.print(kartu3);
  550.     delay(5000);
  551.     lcd.clear();
  552.     return;
  553.     }
  554.  
  555.     if(kartu3 < 0){
  556.     kartu3 = kartu3 + beli;  
  557.     lcd.setCursor(0,0);
  558.     lcd.print("SALDO KURANG");
  559.     lcd.setCursor(0,1);
  560.     lcd.print("SALDO=");
  561.     lcd.print(kartu3);
  562.     delay(5000);
  563.     lcd.clear();
  564.     beli = 0;
  565.     }
  566.  
  567.     }
  568.  
  569.     if((customKey == 'D')&&(id == 4)){
  570.     lcd.clear();
  571.     delay(2000);
  572.     kartu4 = kartu4 - beli;
  573.  
  574.     if(kartu4 >= 0){
  575.     Serial.println(id);
  576.     Serial.println(beli);
  577.     Serial.println(kartu4);
  578.     delay(1000);
  579.     lcd.setCursor(0,0);
  580.     lcd.print("BERHASIL");
  581.     lcd.setCursor(0,1);
  582.     lcd.print("SALDO=");
  583.     lcd.print(kartu4);
  584.     delay(5000);
  585.     lcd.clear();
  586.     return;
  587.     }
  588.  
  589.     if(kartu4 < 0){
  590.     kartu4 = kartu4 + beli;  
  591.     lcd.setCursor(0,0);
  592.     lcd.print("SALDO KURANG");
  593.     lcd.setCursor(0,1);
  594.     lcd.print("SALDO=");
  595.     lcd.print(kartu4);
  596.     delay(5000);
  597.     lcd.clear();
  598.     beli = 0;
  599.     }
  600.     }
  601.    
  602.   bayar();
  603.   }
Add Comment
Please, Sign In to add comment