Hi there, im trying to program an rfid shopping cart
but my push button input doesn't work when to total up the entire merchandise.
Can anyone help me out?
below is my coding.
#include <SPI.h>
#include <MFRC522.h>
#define beep_pin 8
#include <LiquidCrystal.h>
#define t 4000//delay time
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);//arduino pin(rs=2,e=3,D4=4,D5=5,D6=6,D7=7)
int count = 0;
int a;
double total = 0;
int count_prod = 0;
const int BUTTON_PIN = 3; // Arduino pin connected to button's pin
const int BUZZER_PIN = 8; // Arduino pin connected to Buzzer's pin
//int buttonState = digitalRead(BUTTON_PIN); // read new state
int buttonState = 0;
int oldButtonState = LOW;
int ledState = LOW;
int ledPin = 7;
int totalAll (int buttonState);
#define SS_PIN 10
#define RST_PIN 9
MFRC522 mfrc522(SS_PIN, RST_PIN); // Create MFRC522 instance.
void setup()
{
// Pin direction
pinMode(4, OUTPUT); //RED LED
pinMode(8, OUTPUT); //BUZZER
pinMode(6, OUTPUT); //GREEN LED
pinMode(BUTTON_PIN, INPUT); // set arduino pin to input pull-up mode
pinMode(BUZZER_PIN, OUTPUT); // set arduino pin to output mode
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
lcd.begin(16, 2);// set up the LCD's number of columns and rows
SPI.begin(); // Initiate SPI bus
mfrc522.PCD_Init(); // Initiate MFRC522
Serial.println("Put your card to the reader...");
Serial.println();
delay(1000);
lcd.setCursor(1, 0);//set print point
lcd.print("AUTOMATIC BILL");//print text
lcd.setCursor(1, 1);
lcd.print("SHOPPING CART ");
delay(2000);
lcd.clear();
lcd.setCursor(2, 0);
lcd.print("WELCOME TO ");
lcd.setCursor(2, 1);
lcd.print("JASCO JAYA `");
delay(2000);
lcd.clear();
}
void loop()
{
int buttonState = digitalRead(BUTTON_PIN);
digitalWrite(beep_pin, LOW);
digitalWrite(ledPin, LOW);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Put your card to");
lcd.setCursor(0, 1);
lcd.print("the reader......");
delay(300);
// Look for new cards
if ( ! mfrc522.PICC_IsNewCardPresent())
{
return;
}
// Select one of the cards
if ( ! mfrc522.PICC_ReadCardSerial())
{
return;
}
//Show UID on serial monitor
Serial.print("UID tag :");
String content = "";
byte letter;
for (byte i = 0; i < mfrc522.uid.size; i++)
{
Serial.print(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " ");
Serial.print(mfrc522.uid.uidByte[i], HEX);
content.concat(String(mfrc522.uid.uidByte[i] < 0x10 ? " 0" : " "));
content.concat(String(mfrc522.uid.uidByte[i], HEX));
}
Serial.println();
Serial.print("Message : ");
content.toUpperCase();
if (content.substring(1) == "F3 17 7B 19") //change here the UID of the card/cards that you want to give access
{
digitalWrite(beep_pin, HIGH);
delay(200);
digitalWrite(beep_pin, LOW);
delay(100);
lcd.setCursor(0, 0);
lcd.print("CADBURY CHOC ");
//lcd.print(content.substring(1));
lcd.setCursor(0, 1);
lcd.print(" Price(Rm):6.00 ");
lcd.setCursor(0, 1);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(2000);
total = total + 6.00;
count_prod++;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Total:");
lcd.setCursor(0, 1);
lcd.print(total);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
Serial.println("Authorized access");
delay(1200);
}
if (content.substring(1) == "E6 34 6D F1") //change here the UID of the card/cards that you want to give access
{
digitalWrite(beep_pin, HIGH);
delay(200);
digitalWrite(beep_pin, LOW);
delay(100);
lcd.setCursor(0, 0);
lcd.print("Yeos Lychee ");
//lcd.print(content.substring(1));
lcd.setCursor(0, 1);
lcd.print("Price(Rm): 1.20 ");
lcd.setCursor(1, 1);
Serial.println("Item Insert");
delay(1200);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(2000);
total = total + 1.20;
count_prod++;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Total:");
lcd.setCursor(0, 1);
lcd.print(total);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
Serial.println("Authorized access");
delay(1200);
}
if (content.substring(1) == "9A EA 4F BF") //change here the UID of the card/cards that you want to give access
{
digitalWrite(beep_pin, HIGH);
delay(200);
digitalWrite(beep_pin, LOW);
delay(100);
lcd.setCursor(0, 0);
lcd.print("Toys ");
//lcd.print(content.substring(1));
lcd.setCursor(0, 1);
lcd.print("Price(Rm): 10.00 ");
lcd.setCursor(1, 1);
Serial.println("Authorized access");
delay(1200);
digitalWrite(4, HIGH);
digitalWrite(5, LOW);
digitalWrite(6, HIGH);
delay(2000);
total = total + 10.00;
count_prod++;
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Total:");
lcd.setCursor(0, 1);
lcd.print(total);
digitalWrite(4, LOW);
digitalWrite(5, HIGH);
digitalWrite(6, LOW);
Serial.println("Authorized access");
delay(1200);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Total Price :-");
lcd.setCursor(0, 1);
lcd.print(total);
lcd.clear();
ends();
}
if (buttonState == HIGH) {
digitalWrite(ledPin, LOW); //Turn the LED on
digitalWrite(beep_pin, HIGH);
delay(200);
digitalWrite(beep_pin, LOW);
delay(100);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Total Price :-");
lcd.setCursor(0, 1);
lcd.print(total);
}
}
void ends() {//Function
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" THANKS FOR ");
lcd.scrollDisplayLeft();//scroll text left
delay(2500);
lcd.setCursor(0, 1);
lcd.print(" VISITING ");
lcd.scrollDisplayLeft();//scroll text left
delay(2500);
exit(0);
}


