Попытка создать простой сумку Arduino, но у меня возникают проблемы с программированием. Я не знаю, где я ошибся. Любая помощь приветствуется.Как запрограммировать Arduino, чтобы взять и сохранить два входа клавиатуры в отдельных переменных?
Пользователь должен ввести два номера на клавиатуре, и их сумма будет отображаться на ЖК-дисплее. Каждый из двух чисел, введенных пользователем, сохраняется соответственно в их переменных. Проблема в том, что после ввода первого номера программа автоматически подключается к 0 (поскольку в этот момент не нажата ни одна клавиша) для второй переменной. Я попробовал инструкции «if», «while» и «do while» для устранения NO_KEY, но ни один из них, похоже, не работает.
Вопрос в том, есть ли способ сохранить число, введенное пользователем в переменной, и не позволять программе переписывать его 0, потому что в этот момент не нажата ни одна клавиша. Или также, чтобы Arduino не получал больше ввода с клавиатуры после нажатия клавиши (возможно, отключите клавиатуру) ...
Если вы готовы потратить некоторое время на просмотр кода, связанный here содержит как код, так и всю настройку лаборатории.
#include <Keypad.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd (7,8,9,10,11,12);
int backLight(13);
int Addition(int x, int y){
int z;
z = x+y;
lcd.setCursor(8,0);
lcd.write(z);
}
void setup() {
}
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] = {0,1,2,3};
byte colPins[cols] = {4,5,6};
Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, rows, cols);
void loop(){
int a;
int b;
a = keypad.getKey();
if (a != NO_KEY){
do {
b = keypad.getKey();
}while (b == NO_KEY);
pinMode (backLight, OUTPUT);
digitalWrite(backLight, HIGH);
lcd.begin(16,2);
lcd.clear();
lcd.setCursor(0,0);
lcd.write(a);
lcd.setCursor(2,0);
lcd.write("+");
lcd.setCursor(4,0);
lcd.write(b);
lcd.setCursor(6,0);
lcd.write("=");
Addition(a,b);
delay(10000);
}
}
схема, вероятно, не имеет значения, но код не является, поэтому, пожалуйста, измените ваш вопрос, чтобы включить фактический код. Вопросы со ссылками на код бесполезны, поскольку кто знает, когда ссылки исчезнут. Пожалуйста, уделите время и [прочитайте о том, как задавать хорошие вопросы] (http://stackoverflow.com/help/how-to-ask), и узнайте, как создать [Минимальный, Полный и Подтверждаемый пример] (http: //stackoverflow.com/help/mcve). –