Ok so I have a delay of 4h to answer because I'm a new user.
I've followed your advice and so far I've been able to use the decoder with 7 segment display and keypad matrix. Everytime I hit a number on the keypad it shows up on the display.
Now the real issue I'm having is how do I lock down the answer of the user? For example, the user wants to ship 5 boxes so he clicks on number 5 and then he clicks on # to lock in, after that it should count how many times a box has passed through the sensor until it reaches 5 so when it does after 4s the counter gets back to 0.
This is all I've been able to do yet
P.S. I'm going to use a button in tinkercad to substitute the sensor
Code:
#include <Keypad.h>
const int buttonPin = 13;
int codA = 9;
int codB = 12;
int codC = 11;
int codD = 10;
const byte ROWS = 4;
const byte COLS = 3;
char keys[ROWS][COLS] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'}
};
byte rowPins[ROWS] = {8, 7, 6, 5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {4, 3, 2};
Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );
void setup()
{
pinMode(codB, OUTPUT); //A1
pinMode(codC, OUTPUT); //A2
pinMode(codD, OUTPUT); //A3
pinMode(codA, OUTPUT); //A0
Serial.begin(9600);
}
void loop()
{
char key = keypad.getKey();
if (key == '0'){
Serial.println(key);
digitalWrite(codA, LOW);
digitalWrite(codB, LOW);
digitalWrite(codC, LOW);
digitalWrite(codD, LOW);
}
if (key == '1'){
Serial.println(key);
digitalWrite(codA, HIGH);
digitalWrite(codB, LOW);
digitalWrite(codC, LOW);
digitalWrite(codD, LOW);
}
if (key == '2'){
Serial.println(key);
digitalWrite(codA, LOW);
digitalWrite(codB, HIGH);
digitalWrite(codC, LOW);
digitalWrite(codD, LOW);
}
if (key == '3'){
Serial.println(key);
digitalWrite(codA, HIGH);
digitalWrite(codB, HIGH);
digitalWrite(codC, LOW);
digitalWrite(codD, LOW);
}
if (key == '4'){
Serial.println(key);
digitalWrite(codA, LOW);
digitalWrite(codB, LOW);
digitalWrite(codC, HIGH);
digitalWrite(codD, LOW);
}
if (key == '5'){
Serial.println(key);
digitalWrite(codA, HIGH);
digitalWrite(codB, LOW);
digitalWrite(codC, HIGH);
digitalWrite(codD, LOW);
}
if (key == '6'){
Serial.println(key);
digitalWrite(codA, LOW);
digitalWrite(codB, HIGH);
digitalWrite(codC, HIGH);
digitalWrite(codD, LOW);
}
if (key == '7'){
Serial.println(key);
digitalWrite(codA, HIGH);
digitalWrite(codB, HIGH);
digitalWrite(codC, HIGH);
digitalWrite(codD, LOW);
}
if (key == '8'){
Serial.println(key);
digitalWrite(codA, LOW);
digitalWrite(codB, LOW);
digitalWrite(codC, LOW);
digitalWrite(codD, HIGH);
}
if (key == '9'){
Serial.println(key);
digitalWrite(codA, HIGH);
digitalWrite(codB, LOW);
digitalWrite(codC, LOW);
digitalWrite(codD, HIGH);
}
}