Съдържание:

Arduino калкулатор, използващ 4X4 клавиатура: 4 стъпки (със снимки)
Arduino калкулатор, използващ 4X4 клавиатура: 4 стъпки (със снимки)

Видео: Arduino калкулатор, използващ 4X4 клавиатура: 4 стъпки (със снимки)

Видео: Arduino калкулатор, използващ 4X4 клавиатура: 4 стъпки (със снимки)
Видео: Веб-программирование – информатика для руководителей бизнеса 2016 2024, Юли
Anonim
Image
Image

В този урок ще изградим наш собствен калкулатор с Arduino. Стойностите могат да се изпращат чрез клавиатура (4 × 4 клавиатура) и резултатът може да се види на LCD екран. Този калкулатор може да изпълнява прости операции като събиране, изваждане, умножение и деление с цели числа. Но след като разберете концепцията, можете да реализирате дори научни функции с вградените функции на Arduino.

Консумативи

Arduino Uno

16 × 2 LCD дисплей

4 × 4 клавиатура

Платка

Кабелни кабели

Кабел Arduino

Стъпка 1: Схеми

Стъпка 2: Инсталиране на библиотека:

Както беше казано по -рано, ние ще свържем LCD и клавиатура с Arduino, използвайки библиотеки. Така че нека първо ги добавим към нашата Arduino IDE. Библиотеката за LCD вече е включена във вашия Arduino по подразбиране, така че не е нужно да се притесняваме за това. За библиотека с клавиатура (щракнете върху връзката, за да я изтеглите от Github). Ще получите ZIP файл, след което добавете този lib към Arduino чрез Sketch -> Include Library -> Add. ZIP файл и посочете местоположението към този изтеглен файл. След като приключим, всички сме готови за програмиране.

Стъпка 3: Изходен код:

/*

© Techtronic Harsh

*/

#включва

#включва

LiquidCrystal lcd (0, 1, 2, 3, 4, 5);

const байт ROWS = 4; const байт COLS = 4;

char ключове [ROWS] [COLS] = {

{'1', '2', '3', '+'}, {'4', '5', '6', '-'}, {'7', '8', '9', ' *'}, {' C ',' 0 ',' = ','/'}}; байт rowPins [ROWS] = {13, 12, 11, 10}; байт colPins [COLS] = {9, 8, 7, 6};

Keypad myKeypad = Клавиатура (makeKeymap (клавиши), rowPins, colPins, ROWS, COLS);

булева стойност presentValue = false;

логическо следващо = невярно; логическо окончателно = невярно; Низ num1, num2; int отговор; char op;

void setup ()

{lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Techtronic Harsh"); lcd.setCursor (0, 1); lcd.print ("Калкулатор"); забавяне (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Like And"); lcd.setCursor (0, 1); lcd.print ("Абонирайте се за нас"); забавяне (3000); lcd.clear (); }

void loop () {

char ключ = myKeypad.getKey ();

if (ключ! = NO_KEY && (ключ == '1' || ключ == '2' || ключ == '3' || ключ == '4' || ключ == '5' || ключ = = '6' || ключ == '7' || ключ == '8' || ключ == '9' || ключ == '0'))

{if (presentValue! = true) {num1 = num1 + ключ; int numLength = num1.length (); lcd.setCursor (15 - numLength, 0); // за коригиране на едно бяло пространство за оператора lcd.print (num1); } else {num2 = num2 + ключ; int numLength = num2.length (); lcd.setCursor (15 - numLength, 1); lcd.print (num2); окончателно = вярно; }}

иначе ако (presentValue == false && key! = NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))

{if (presentValue == false) {presentValue = true; op = ключ; lcd.setCursor (15, 0); lcd.print (op); }}

иначе ако (окончателен == вярно && ключ! = NO_KEY && ключ == '=') {

if (op == ' +') {answer = num1.toInt () + num2.toInt (); } иначе ако (op == ' -') {answer = num1.toInt () - num2.toInt (); } else if (op == ' *') {answer = num1.toInt () * num2.toInt (); } else if (op == ' /') {answer = num1.toInt () / num2.toInt (); } lcd.clear (); lcd.setCursor (15, 0); lcd.autoscroll (); lcd.print (отговор); lcd.noAutoscroll (); } else if (key! = NO_KEY && key == 'C') {lcd.clear (); presentValue = false; окончателно = невярно; num1 = ""; num2 = ""; отговор = 0; op = ''; }}

/*

© Techtronic Harsh

*/

Стъпка 4: Работа:

Направете връзките според електрическата схема и качете кода. Ако показва грешка, уверете се, че сте добавили библиотеката съгласно инструкциите, дадени по -горе.

Символ на клавиатурата и предположение:

  • „А“- Добавяне (+)
  • “B” - Изваждане (-)
  • “C” - Умножение (*)
  • „D“- дивизия (/)
  • “*” - Изчистване (C)
  • „#“- равно (=)

Препоръчано: