2025 Автор: John Day | [email protected]. Последнее изменение: 2025-01-13 06:58
В этом уроке мы создадим наш собственный калькулятор с Arduino. Значения могут быть отправлены через клавиатуру (клавиатура 4 × 4), а результат можно просмотреть на ЖК-экране. Этот калькулятор может выполнять простые операции, такие как сложение, вычитание, умножение и деление с целыми числами. Но как только вы поймете концепцию, вы сможете реализовать даже научные функции с помощью встроенных функций Arduino.
Запасы
Ардуино Уно
ЖК-дисплей 16 × 2
Клавиатура 4 × 4
Макетная плата
Соединительные кабели
Кабель Arduino
Шаг 1: схемы
Шаг 2: Установка библиотеки:
Как уже говорилось ранее, мы собираемся связать ЖК-дисплей и клавиатуру с Arduino с помощью библиотек. Итак, давайте сначала добавим их в нашу Arduino IDE. Библиотека для ЖК-дисплея уже включена в ваш Arduino по умолчанию, поэтому нам не о чем беспокоиться. Для библиотеки клавиатуры (щелкните ссылку, чтобы загрузить ее с Github). Вы получите ZIP-файл, затем добавьте эту библиотеку в Arduino с помощью Sketch -> Включить библиотеку -> Добавить файл. ZIP и укажите местоположение этого загруженного файла. После этого мы готовы к программированию.
Шаг 3: Исходный код:
/*
© Techtronic Harsh
*/
#включают
#включают
ЖК-дисплей LiquidCrystal (0, 1, 2, 3, 4, 5);
const byte ROWS = 4; константный байт COLS = 4;
символьные ключи [ROWS] [COLS] = {
{'1', '2', '3', '+'}, {'4', '5', '6', '-'}, {'7', '8', '9', ' * '}, {' C ',' 0 ',' = ',' / '}}; byte rowPins [ROWS] = {13, 12, 11, 10}; byte colPins [COLS] = {9, 8, 7, 6};
Клавиатура myKeypad = Клавиатура (makeKeymap (ключи), rowPins, colPins, ROWS, COLS);
логическое presentValue = false;
логическое значение next = false; логическое final = false; Строка num1, num2; int answer; char op;
установка void ()
{lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print («Техтроник Суровый»); lcd.setCursor (0, 1); lcd.print («Калькулятор»); задержка (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print («Как и»); lcd.setCursor (0, 1); lcd.print («Подпишитесь на нас»); задержка (3000); lcd.clear (); }
void loop () {
char key = myKeypad.getKey ();
if (key! = NO_KEY && (key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key = = '6' || клавиша == '7' || клавиша == '8' || клавиша == '9' || клавиша == '0'))
{если (presentValue! = true) {num1 = num1 + ключ; int numLength = num1.length (); lcd.setCursor (15 - numLength, 0); // настроить один пробел для оператора lcd.print (num1); } еще {число2 = число2 + ключ; int numLength = num2.length (); lcd.setCursor (15 - numLength, 1); lcd.print (num2); final = true; }}
иначе if (presentValue == false && key! = NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))
{если (presentValue == false) {presentValue = true; op = ключ; lcd.setCursor (15, 0); lcd.print (op); }}
иначе if (final == true && key! = NO_KEY && key == '=') {
если (op == '+') {ответ = num1.toInt () + num2.toInt (); } иначе, если (op == '-') {answer = num1.toInt () - num2.toInt (); } иначе, если (op == '*') {answer = num1.toInt () * num2.toInt (); } иначе, если (op == '/') {answer = num1.toInt () / num2.toInt (); } lcd.clear (); lcd.setCursor (15, 0); lcd.autoscroll (); lcd.print (ответ); lcd.noAutoscroll (); } иначе, если (ключ! = NO_KEY && key == 'C') {lcd.clear (); presentValue = false; final = false; num1 = ""; num2 = ""; ответ = 0; op = ''; }}
/*
© Techtronic Harsh
*/
Шаг 4: Работа:
Выполните подключения согласно принципиальной схеме и загрузите код. Если отображается ошибка, убедитесь, что вы добавили библиотеку в соответствии с приведенной выше инструкцией.
Символ на клавиатуре и предположение:
- «А» - Дополнение (+)
- «B» - вычитание (-)
- «C» - умножение (*)
- «D» - Дивизия (/)
- «*» - Прозрачный (С)
- «#» - равно (=)