Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-13 06:58
În acest tutorial vom construi propriul nostru calculator cu Arduino. Valorile pot fi trimise printr-o tastatură (tastatură 4 × 4) și rezultatul poate fi vizualizat pe un ecran LCD. Acest calculator ar putea efectua operații simple, cum ar fi Adunarea, scăderea, multiplicarea și divizarea cu numere întregi. Dar odată ce înțelegeți conceptul, puteți implementa chiar și funcții științifice cu funcțiile încorporate ale Arduino.
Provizii
Arduino Uno
Afișaj LCD 16 × 2
Tastatură 4 × 4
Pană de pâine
Cabluri jumper
Cablu Arduino
Pasul 1: Scheme
Pasul 2: Instalarea bibliotecii:
După cum am spus mai devreme, vom interfața un LCD și o tastatură cu Arduino folosind biblioteci. Deci, să le adăugăm mai întâi la IDE-ul nostru Arduino. Biblioteca pentru LCD este deja inclusă în mod implicit în Arduino, deci nu trebuie să ne facem griji. Pentru biblioteca tastaturii (faceți clic pe link pentru a o descărca de pe Github). Veți primi un fișier ZIP, apoi adăugați această lib la Arduino by Sketch -> Include Library -> Add. ZIP file și indicați locația către acest fișier descărcat. Odată terminat, suntem cu toții pregătiți pentru programare.
Pasul 3: Cod sursă:
/*
© Techtronic Harsh
*/
#include
#include
LiquidCrystal lcd (0, 1, 2, 3, 4, 5);
octet const ROWS = 4; octet const COLS = 4;
chei de caractere [ROWS] [COLS] = {
{'1', '2', '3', '+'}, {'4', '5', '6', '-'}, {'7', '8', '9', ' * '}, {' C ',' 0 ',' = ',' / '}}; byte rowPins [ROWS] = {13, 12, 11, 10}; octet colPins [COLS] = {9, 8, 7, 6};
Tastatura myKeypad = Tastatura (makeKeymap (taste), rowPins, colPins, ROWS, COLS);
boolean presentValue = false;
boolean next = false; final boolean = fals; String num1, num2; int raspuns; char op;
configurare nulă ()
{lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print („Techtronic Harsh”); lcd.setCursor (0, 1); lcd.print („Calculator”); întârziere (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print („Like And”); lcd.setCursor (0, 1); lcd.print („Abonați-ne”); întârziere (3000); lcd.clear (); }
bucla nulă () {
cheie char = myKeypad.getKey ();
if (key! = NO_KEY && (key == '1' || key == '2' || key == '3' || key == '4' || key == '5' || key = = '6' || cheie == '7' || cheie == '8' || cheie == '9' || cheie == '0'))
{if (presentValue! = true) {num1 = num1 + cheie; int numLength = num1.length (); lcd.setCursor (15 - numLength, 0); // pentru a regla un spațiu alb pentru operatorul lcd.print (num1); } else {num2 = num2 + cheie; int numLength = num2.length (); lcd.setCursor (15 - numLength, 1); lcd.print (num2); final = adevărat; }}
else if (presentValue == false && key! = NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))
{if (presentValue == false) {presentValue = true; op = cheie; lcd.setCursor (15, 0); lcd.print (op); }}
else if (final == 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 (răspuns); lcd.noAutoscroll (); } else if (key! = NO_KEY && key == 'C') {lcd.clear (); Valoare prezent = fals; final = fals; num1 = ""; num2 = ""; raspuns = 0; op = ""; }}
/*
© Techtronic Harsh
*/
Pasul 4: Lucrul:
Faceți conexiunile conform schemei de circuit și încărcați codul. Dacă arată eroare, asigurați-vă că ați adăugat biblioteca conform instrucțiunilor date mai sus.
Caracter pe tastatură și presupunere:
- „A” - Adăugare (+)
- „B” - Scădere (-)
- „C” - Multiplicare (*)
- „D” - Divizia (/)
- „*” - Șterge (C)
- „#” - Egal (=)