Talaan ng mga Nilalaman:

Arduino Calculator Gamit ang 4X4 Keypad: 4 na Hakbang (na may Mga Larawan)
Arduino Calculator Gamit ang 4X4 Keypad: 4 na Hakbang (na may Mga Larawan)

Video: Arduino Calculator Gamit ang 4X4 Keypad: 4 na Hakbang (na may Mga Larawan)

Video: Arduino Calculator Gamit ang 4X4 Keypad: 4 na Hakbang (na may Mga Larawan)
Video: Web Programming - Computer Science for Business Leaders 2016 2024, Nobyembre
Anonim
Image
Image

Sa tutorial na ito magtatayo kami ng aming sariling calculator kasama ang Arduino. Maaaring ipadala ang mga halaga sa pamamagitan ng isang keypad (4 × 4 keypad) at ang resulta ay maaaring makita sa isang LCD screen. Ang calculator na ito ay maaaring magsagawa ng mga simpleng pagpapatakbo tulad ng Pagdagdag, Pagbawas, Pagpaparami at Dibisyon na may buong numero. Ngunit sa sandaling naiintindihan mo ang konsepto maaari mong ipatupad kahit na mga pang-agham na pag-andar sa Arduino's built in function.

Mga gamit

Arduino Uno

16 × 2 LCD Display

4 × 4 Keypad

Breadboard

Mga Jumper Cables

Arduino Cable

Hakbang 1: Mga Skematika

Hakbang 2: Pag-install ng Library:

Tulad ng sinabi kanina ay mag-i-interface kami ng isang LCD at keypad kasama ang Arduino gamit ang mga aklatan. Kaya idagdag muna natin ang mga ito sa aming Arduino IDE. Ang silid-aklatan para sa LCD ay isinama na sa iyong Arduino bilang default kaya hindi namin kailangang mag-alala tungkol dito. Para sa Keypad library (mag-click sa link upang i-download ito mula sa Github). Makakakuha ka ng isang ZIP file, pagkatapos ay idagdag ang lib na ito sa Arduino ng Sketch -> Isama ang Library -> Magdagdag ng. ZIP file at ituro ang lokasyon sa na-download na file. Kapag tapos na kami ay nakaayos na para sa pagprograma.

Hakbang 3: Source Code:

/*

© Techtronic Harsh

*/

# isama

# isama

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

const byte ROWS = 4; const byte COLS = 4;

char key [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};

Keypad myKeypad = Keypad (makeKeymap (key), rowPins, colPins, ROWS, COLS);

boolean presentValue = false;

susunod na boolean = false; pangwakas na boolean = maling; String num1, num2; int sagot; char op;

walang bisa ang pag-setup ()

{lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Techtronic Harsh"); lcd.setCursor (0, 1); lcd.print ("Calculator"); pagkaantala (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Gusto At"); lcd.setCursor (0, 1); lcd.print ("Mag-subscribe sa Amin"); pagkaantala (3000); lcd.clear (); }

void loop () {

char key = myKeypad.getKey ();

kung (key! = NO_KEY && (key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key = = '6' || key == '7' || key == '8' || key == '9' || key == '0'))

{kung (presentValue! = totoo) {num1 = num1 + key; int numLength = num1.length (); lcd.setCursor (15 - numLength, 0); // upang ayusin ang isang whitespace para sa operator lcd.print (num1); } iba pa {num2 = num2 + key; int numLength = num2.length (); lcd.setCursor (15 - numLength, 1); lcd.print (num2); pangwakas = totoo; }}

kung hindi man ((presentValue == false && key! = NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))

{if (presentValue == false) {presentValue = true; op = susi; lcd.setCursor (15, 0); lcd.print (op); }}

kung hindi man (huling == totoo && key! = NO_KEY && key == '=') {

kung (op == '+') {answer = num1.toInt () + num2.toInt (); } iba pa kung (op == '-') {answer = num1.toInt () - num2.toInt (); } iba pa kung (op == '*') {answer = num1.toInt () * num2.toInt (); } iba pa kung (op == '/') {answer = num1.toInt () / num2.toInt (); } lcd.clear (); lcd.setCursor (15, 0); lcd.autoscroll (); lcd.print (sagot); lcd.noAutoscroll (); } iba pa kung (key! = NO_KEY && key == 'C') {lcd.clear (); presentValue = false; pangwakas = maling; num1 = ""; num2 = ""; sagot = 0; op = "; }}

/*

© Techtronic Harsh

*/

Hakbang 4: Nagtatrabaho:

Gawin ang mga koneksyon ayon sa bawat diagram ng circuit at i-upload ang code. Kung nagpapakita ito ng error siguraduhing naidagdag mo ang library ayon sa tagubilin na ibinigay sa itaas.

Character sa Keypad at Assuming:

  • "A" - Dagdag (+)
  • "B" - Pagbawas (-)
  • "C" - Pagpaparami (*)
  • "D" - Dibisyon (/)
  • “*” - Malinaw (C)
  • “#” - Katumbas (=)

Inirerekumendang: