2025 Autor: John Day | [email protected]. Naposledy zmenené: 2025-01-13 06:58
Ahoj, chlapci v tomto návode, vyrobíme kalkulačku pomocou Arduina, ktorá dokáže základné výpočty. V zásade teda vezmeme vstup z klávesnice 4x4 a vytlačíme údaje na displej 16x2 LCD a arduino vykoná výpočty.
Krok 1: Veci, ktoré potrebujete
Na tento návod budeme potrebovať nasledujúce veci: Arduino Uno (akákoľvek verzia bude fungovať)
16 × 2 LCD displej
Klávesnica 4 × 4 9V batériaBreadboardPripojovacie vodiče
Krok 2: Pripojenia
Kompletný schéma zapojenia tohto projektu kalkulačky Arduino je uvedený vyššie. Pripojenie +5 V a uzemnenie uvedené v schéme zapojenia je možné získať z 5 V a uzemňovacieho kolíka Arduina. Samotné Arduino je možné napájať z prenosného počítača alebo z konektora DC pomocou 12 V adaptéra alebo 9 V batérie. Displej LCD prevádzkujeme v 4-bitovom režime s Arduino, takže k Arduinu sú pripojené iba posledné štyri dátové bity LCD. Klávesnica bude mať 8 výstupných pinov, ktoré je potrebné pripojiť od pinu 0 do pinu 7, ako je uvedené vyššie. Niektoré dosky Arduino môžu pri odosielaní programu zobrazovať chybu, ak sú na pine 0 a pine1 niečo pripojené, takže ak sa vyskytnú, stačí ich odstrániť. klávesnice počas nahrávania programu.
Krok 3: Kód
Skopírujte nasledujúci kód a nahrajte do neho svoje arduino:/ * * Program pre kalkulačku klávesnice Arduino */#obsahuje „LiquidCrystal.h“// Hlavičkový súbor pre LCD z https://www.arduino.cc/en/Reference/LiquidCrystal# zahrnúť „Keypad.h“// hlavičkový súbor pre klávesnicu z https://github.com/Chris--A/Keypadconst byte ROWS = 4; // Štyri riadky bajtu COLS = 4; // Tri stĺpce // Definujte kľúče Keymapchar [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; byte rowPins [ROWS] = {0, 1, 2, 3}; // Pripojenie klávesnice ROW0, ROW1, ROW2 a ROW3 k týmto pinom Arduino.byte colPins [COLS] = {4, 5, 6, 7}; // K týmto pinom Arduino pripojte klávesnicu COL0, COL1 a COL2. Keypad kpd = Keypad (makeKeymap (klávesy), rowPins, colPins, ROWS, COLS); // Vytvorte Keypadconst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Piny, ku ktorým je pripojený LCDLiquidCrystal lcd (rs, en, d4, d5, d6, d7); dlhé Num1, Num2, Number; znakový kľúč, akcia; boolean result = false; void setup () {lcd.begin (16, 2); // Používame 16*2 LCD displej lcd.print („kalkulačka pre domácich majstrov“); // Zobrazenie úvodnej správy lcd.setCursor (0, 1); // nastav kurzor na stlpec 0, oneskorenie riadku 1 (2000); // Počkajte, kým sa na displeji nezobrazia informácie lcd.clear (); // Potom to vyčistite} void loop () {key = kpd.getKey (); // uloženie hodnoty stlačeného kľúča do znaku (kľúč! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); } neplatné DetectButtons () {lcd.clear (); // Potom vyčistite if (key == '*') // Ak je stlačené tlačidlo Cancel {Serial.println ("Button Cancel"); Číslo = Číslo1 = Číslo2 = 0; result = false;} if (key == '1') // Ak je stlačené tlačidlo 1 {Serial.println ("Button 1"); ak (Číslo == 0) Číslo = 1; inak Číslo = (Číslo*10) + 1; // Dvakrát stlačené} if (kláves == '4') // Ak je stlačené tlačidlo 4 {Serial.println ("Button 4"); ak (Číslo == 0) Číslo = 4; inak Číslo = (Číslo*10) + 4; // Dvakrát stlačené} if (kláves == '7') // Ak je stlačené tlačidlo 7 {Serial.println ("Tlačidlo 7"); ak (Číslo == 0) Číslo = 7; inak Číslo = (Číslo*10) + 7; // Dvakrát stlačené} if (key == '0') {Serial.println ("Button 0"); // Tlačidlo 0 sa stlačí, ak (Číslo == 0) Číslo = 0; inak Číslo = (Číslo*10) + 0; // Dvakrát stlačené} if (kláves == '2') // Tlačidlo 2 je stlačené {Serial.println ("Tlačidlo 2"); ak (Číslo == 0) Číslo = 2; inak Číslo = (Číslo*10) + 2; // Dvakrát stlačené} if (kláves == '5') {Serial.println ("Button 5"); ak (Číslo == 0) Číslo = 5; inak Číslo = (Číslo*10) + 5; // Dvakrát stlačené} if (kláves == '8') {Serial.println ("Tlačidlo 8"); ak (Číslo == 0) Číslo = 8; inak Číslo = (Číslo*10) + 8; // Dvakrát stlačené} if (key == '#') {Serial.println ("Button Equal"); Num2 = číslo; výsledok = true; } if (key == '3') {Serial.println ("Button 3"); ak (Číslo == 0) Číslo = 3; inak Číslo = (Číslo*10) + 3; // Dvakrát stlačené} if (kláves == '6') {Serial.println ("Button 6"); ak (Číslo == 0) Číslo = 6; inak Číslo = (Číslo*10) + 6; // Dvakrát stlačené} if (kláves == '9') {Serial.println ("Tlačidlo 9"); ak (Číslo == 0) Číslo = 9; inak Číslo = (Číslo*10) + 9; // Dvakrát stlačené} if (kláves == 'A' || kláves == 'B' || kláves == 'C' || kláves == 'D') // Detekcia tlačidiel v stĺpci 4 {Num1 = číslo; Číslo = 0; if (key == 'A') {Serial.println ("Pridanie"); action = '+';} if (key == 'B') {Serial.println ("Subtraction"); action = '-'; } if (key == 'C') {Serial.println ("Násobenie"); action = '*';} if (key == 'D') {Serial.println ("Devesion"); action = '/';} zdržanie (100); }}
neplatné CalculateResult () {if (action == '+') Number = Num1+Num2; if (action == '-') Number = Num1-Num2; if (action == '*') Number = Num1*Num2; if (action == '/') Number = Num1/Num2; } neplatné DisplayResult () {lcd.setCursor (0, 0); // nastav kurzor na stlpec 0, riadok 1 lcd.print (Num1); lcd.print (akcia); lcd.print (Num2); if (result == true) {lcd.print ("="); lcd.print (Number);} // Zobrazí výsledok lcd.setCursor (0, 1); // nastav kurzor na stlpec 0, riadok 1 lcd.print (Number); // Zobraziť výsledok}
Krok 4: Výstup z kalkulačky
Dokončili sme zapojenie a nahrali kód do arduina a je čas zapojiť napájanie a vykonať niekoľko výpočtov, a ako vidíte, robím výpočty pomocou klávesnice a výsledky môžete vidieť na displeji LCD. Bavte sa teda vyrábaním vlastnej kalkulačky pre kutilov pomocou arduina.