Мазмуну:

4X4 баскычын колдонуу менен Arduino Calculator: 4 кадам (сүрөттөр менен)
4X4 баскычын колдонуу менен Arduino Calculator: 4 кадам (сүрөттөр менен)

Video: 4X4 баскычын колдонуу менен Arduino Calculator: 4 кадам (сүрөттөр менен)

Video: 4X4 баскычын колдонуу менен Arduino Calculator: 4 кадам (сүрөттөр менен)
Video: ESP8266 Project: How to control 2 AC bulb or load using 2 Relay with NodeMCU and D1 Mini over WiFi 2024, Ноябрь
Anonim
Image
Image

Бул окуу куралында биз Arduino менен өзүбүздүн эсептегичибизди курабыз. Маанилер баскычтоп аркылуу жөнөтүлүшү мүмкүн (4 × 4 баскычтоп) жана жыйынтыгын ЖК экранда көрүүгө болот. Бул эсептегич толук сандар менен кошуу, кемитүү, көбөйтүү жана бөлүү сыяктуу жөнөкөй амалдарды аткара алат. Бирок түшүнүктү түшүнгөндөн кийин, Arduino'нун орнотулган функциялары менен илимий функцияларды да ишке ашыра аласыз.

Жабдуулар

Arduino Uno

16 × 2 LCD дисплей

4 × 4 Баскычтоп

Breadboard

Jumper Cables

Arduino Cable

1 -кадам: схемалар

2 -кадам: Китепкананы орнотуу:

Жогоруда айтылгандай, биз китепканаларды колдонуу менен LCD жана клавиатураны Arduino менен иштетебиз. Келгиле, адегенде аларды Arduino IDEге кошолу. ЖК үчүн китепкана демейки боюнча сиздин Arduinoңузга киргизилген, андыктан биз бул жөнүндө кабатыр болбошубуз керек. Баскычтоп китепканасы үчүн (Githubдан жүктөө үчүн шилтемени басыңыз). Сиз ZIP файлын аласыз, андан кийин бул libkты Sketch by Arduino -> Китепкананы кошуу ->. 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};

Баскычтоп myKeypad = Баскычтоп (makeKeymap (баскычтар), rowPins, colPins, ROWS, COLS);

логикалык presentValue = false;

логикалык кийинки = жалган; логикалык финал = false; Сап1, сан2; int answer; char op;

жараксыз орнотуу ()

{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 (key! = NO_KEY && (key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key = = '6' || key == '7' || key == '8' || key == '9' || key == '0'))

{if (presentValue! = true) {num1 = num1 + key; int numLength = num1.length (); lcd.setCursor (15 - numLength, 0); // lcd.print (num1) оператору үчүн бир боштукту тууралоо; } else {num2 = num2 + key; int numLength = num2.length (); lcd.setCursor (15 - numLength, 1); lcd.print (num2); акыркы = чындык; }}

else if (presentValue == false && key! = NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))

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

башка болсо (финал == true && key! = NO_KEY && key == '=') {

if (op == ' +') {answer = num1.toInt () + num2.toInt (); } else if (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)
  • "#" - Барабар (=)

Сунушталууда: