Projwithnewlcd
Projwithnewlcd
h>
#include <Keypad.h>
#include <DFRobot_RGBLCD1602.h>
int num1 = 0;
int num2 = 0;
bool isNum1 = true;
int col = 0;
void setup() {
for (int i = 0; i < 4; i++) {
pinMode(sumPinsLower[i], INPUT);
pinMode(sumPinsUpper[i], INPUT);
}
pinMode(carryOutPinSecond, INPUT);
lcd.begin(16, 2);
lcd2.init();
lcd2.setRGB(255, 0, 0); // Set RGB backlight color for second LCD
lcd.print("Enter values:");
lcd2.print("Enter values:"); // Show initial message on both LCDs
delay(2000);
lcd.clear();
lcd2.clear();
}
void loop() {
char key = keypad.getKey();
if (key) {
if (key == '#') {
int sum = readResultFrom7483s();
bool carryOut = digitalRead(carryOutPinSecond);
lcd.clear();
lcd2.clear();
lcd.setCursor(0, 0);
lcd2.setCursor(0, 0);
lcd.print("Sum: ");
lcd2.print("Sum: ");
lcd.print(sum);
lcd2.print(sum);
lcd.setCursor(0, 1);
lcd2.setCursor(0, 1);
lcd.print("Carry Out: ");
lcd2.print("Carry Out: ");
lcd.print(carryOut);
lcd2.print(carryOut);
delay(5000);
num1 = 0;
num2 = 0;
isNum1 = true;
col = 0;
lcd.clear();
lcd2.clear();
lcd.print("Enter values:");
lcd2.print("Enter values:");
delay(2000);
lcd.clear();
lcd2.clear();
} else if (key == '*') {
isNum1 = false;
col = 0;
lcd.setCursor(col, 1);
lcd2.setCursor(col, 1);
} else {
if (isNum1) {
num1 = num1 * 10 + (key - '0');
lcd.setCursor(col, 0);
lcd2.setCursor(col, 0);
} else {
num2 = num2 * 10 + (key - '0');
lcd.setCursor(col, 1);
lcd2.setCursor(col, 1);
}
lcd.print(key);
lcd2.print(key);
col++;
}
}
delay(100);
}
int readResultFrom7483s() {
setInputsTo7483s(num1, num2);
int sumLower = 0;
for (int i = 0; i < 4; i++) {
sumLower |= (digitalRead(sumPinsLower[i]) << i);
}
int sumUpper = 0;
for (int i = 0; i < 4; i++) {
sumUpper |= (digitalRead(sumPinsUpper[i]) << i);
}