Talaan ng mga Nilalaman:
2025 May -akda: John Day | [email protected]. Huling binago: 2025-01-13 06:58
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 (=)