INHOUDSOPGAWE:

Arduino DIY -sakrekenaar met 1602 LCD- en 4x4 -klavier: 4 stappe
Arduino DIY -sakrekenaar met 1602 LCD- en 4x4 -klavier: 4 stappe

Video: Arduino DIY -sakrekenaar met 1602 LCD- en 4x4 -klavier: 4 stappe

Video: Arduino DIY -sakrekenaar met 1602 LCD- en 4x4 -klavier: 4 stappe
Video: ST9720 Graphical LCD Interfacing with Arduino 2024, November
Anonim
Arduino DIY sakrekenaar met 1602 LCD en 4x4 -klavier
Arduino DIY sakrekenaar met 1602 LCD en 4x4 -klavier

Hallo ouens in hierdie instruksies, ons maak 'n sakrekenaar met behulp van Arduino wat basiese berekeninge kan doen. So basies neem ons die invoer van die 4x4 -bedieningspaneel en druk die data op 'n 16x2 lcd -skerm, en arduino sal die berekeninge doen.

Stap 1: Dinge wat u nodig het

Dinge wat jy nodig het
Dinge wat jy nodig het
Dinge wat jy nodig het
Dinge wat jy nodig het
Dinge wat jy nodig het
Dinge wat jy nodig het
Dinge wat jy nodig het
Dinge wat jy nodig het

Vir hierdie instruksies benodig ons die volgende dinge: Arduino Uno (enige weergawe werk)

16 × 2 LCD -skerm

4 × 4 Toetsenbord 9V battery Broodbord Verbindingsdrade

Stap 2: Verbindings

Verbindings
Verbindings
Verbindings
Verbindings

Die volledige stroombaandiagram van hierdie Arduino Sakrekenaarprojek word hierbo gegee. Die +5V en grondverbinding wat in die stroombaan -diagram getoon word, kan verkry word vanaf die 5V en grondpen van die Arduino. Die Arduino self kan van u skootrekenaar of deur die DC-aansluiting gevoed word met 'n 12V-adapter of 'n 9V-battery. Ons werk die LCD in 4-bis-modus met Arduino, sodat slegs die laaste vier databits van die LCD aan Arduino gekoppel is. Die sleutelbord sal 8 uitvoerpenne hê wat van pen 0 tot pen 7 gekoppel moet word, soos hierbo getoon. die toetsbord terwyl u die program oplaai.

Stap 3: Kodeer

Kode
Kode

Kopieer die volgende kode en laai dit na u arduino:/ * * Arduino -toetsbord -sakrekenaarprogram */#sluit 'LiquidCrystal.h' // Koptekstlêer vir LCD van https://www.arduino.cc/en/Reference/LiquidCrystal# in sluit "Keypad.h" // Koptekstlêer vir toetsbord in van https://github.com/Chris--A/Keypadconst byte ROWS = 4; // Vier rye konst byte COLS = 4; // Drie kolomme // Definieer die Keymapchar -sleutels [RYE] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; byte rowPins [ROWS] = {0, 1, 2, 3}; // Koppel die bedieningspaneel ROW0, ROW1, ROW2 en ROW3 aan hierdie Arduino -penne. Byte colPins [COLS] = {4, 5, 6, 7}; // Koppel die sleutelbord COL0, COL1 en COL2 aan hierdie Arduino -penne. Toetsenbord kpd = Toetsenbord (makeKeymap (sleutels), rowPins, colPins, ROWS, COLS); // Skep die sleutelbordkonst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Spelde waarmee die LCD gekoppel is LiquidCrystal lcd (rs, en, d4, d5, d6, d7); lang Num1, Num2, Getal; char sleutel, aksie; booleaanse resultaat = vals; ongeldige opstelling () {lcd.begin (16, 2); // Ons gebruik 'n 16*2 LCD -skerm lcd.print ("DIY Sakrekenaar"); // Wys 'n intro -boodskap lcd.setCursor (0, 1); // stel die wyser in kolom 0, reël 1 vertraging (2000); // Wag totdat die vertoning inligting vertoon lcd.clear (); // Maak dit dan skoon} void loop () {key = kpd.getKey (); // stoor die gedrukte sleutelwaarde in 'n charif (sleutel! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); } ongeldig DetectButtons () {lcd.clear (); // Maak dit dan skoon as (key == '*') // As die kansellasie -knoppie ingedruk word {Serial.println ("Button Cancel"); Getal = Num1 = Num2 = 0; result = false;} if (key == '1') // As knoppie 1 ingedruk word {Serial.println ("Button 1"); as (Getal == 0) Getal = 1; anders Getal = (Getal*10) + 1; // Twee keer ingedruk} as (sleutel == '4') // As knoppie 4 ingedruk word {Serial.println ("Button 4"); as (Getal == 0) Getal = 4; anders Getal = (Getal*10) + 4; // Twee keer ingedruk} as (sleutel == '7') // As knoppie 7 ingedruk word {Serial.println ("Knoppie 7"); as (Getal == 0) Getal = 7; anders Getal = (Getal*10) + 7; // Twee keer ingedruk} if (key == '0') {Serial.println ("Button 0"); // Knoppie 0 word ingedruk as (Number == 0) Number = 0; anders Getal = (Getal*10) + 0; // Twee keer ingedruk} as (sleutel == '2') // Knoppie 2 word ingedruk {Serial.println ("Knoppie 2"); as (Getal == 0) Getal = 2; anders Getal = (Getal*10) + 2; // Twee keer ingedruk} if (sleutel == '5') {Serial.println ("Knoppie 5"); as (Getal == 0) Getal = 5; anders Getal = (Getal*10) + 5; // Twee keer ingedruk} if (sleutel == '8') {Serial.println ("Knoppie 8"); as (Getal == 0) Getal = 8; anders Getal = (Getal*10) + 8; // Twee keer ingedruk} if (key == '#') {Serial.println ("Button Equal"); Num2 = Getal; resultaat = waar; } if (sleutel == '3') {Serial.println ("Knoppie 3"); as (Getal == 0) Getal = 3; anders Getal = (Getal*10) + 3; // Twee keer ingedruk} if (key == '6') {Serial.println ("Button 6"); as (Getal == 0) Getal = 6; anders Getal = (Getal*10) + 6; // Twee keer ingedruk} if (key == '9') {Serial.println ("Button 9"); as (Getal == 0) Getal = 9; anders Getal = (Getal*10) + 9; // Twee keer ingedruk} as (sleutel == 'A' || sleutel == 'B' || sleutel == 'C' || sleutel == 'D') // Opsporing van knoppies op kolom 4 {Num1 = getal; Getal = 0; if (sleutel == 'A') {Serial.println ("Byvoeging"); action = '+';} if (sleutel == 'B') {Serial.println ("Aftrekking"); aksie = '-'; } if (sleutel == 'C') {Serial.println ("Vermenigvuldiging"); action = '*';} if (key == 'D') {Serial.println ("Devesion"); aksie = '/';} vertraging (100); }}

void CalculateResult () {if (action == '+') Number = Num1+Num2; as (aksie == '-') Getal = Num1-Num2; as (aksie == '*') Getal = Num1*Num2; as (aksie == '/') Getal = Num1/Num2; } ongeldig DisplayResult () {lcd.setCursor (0, 0); // stel die wyser in kolom 0, reël 1 lcd.print (Num1); lcd.print (aksie); lcd.print (Num2); as (resultaat == waar) {lcd.print ("="); lcd.print (Number);} // Wys die resultaat lcd.setCursor (0, 1); // stel die wyser in kolom 0, reël 1 lcd.print (nommer); // Wys die resultaat}

Stap 4: Sakrekenaaruitset

Sakrekenaaruitset
Sakrekenaaruitset
Sakrekenaaruitset
Sakrekenaaruitset
Sakrekenaaruitset
Sakrekenaaruitset

So het ons die verbindings voltooi en die kode opgelaai na arduino en dit is tyd om die stroom aan te sluit en 'n paar berekeninge te doen, en soos u kan sien, doen ek berekeninge met die toetsbord, en u kan die resultate op die LCD sien. Geniet dus u eie selfgemaakte sakrekenaar met behulp van arduino.

Aanbeveel: