Indholdsfortegnelse:

Arduino DIY lommeregner ved hjælp af 1602 LCD og 4x4 tastatur: 4 trin
Arduino DIY lommeregner ved hjælp af 1602 LCD og 4x4 tastatur: 4 trin

Video: Arduino DIY lommeregner ved hjælp af 1602 LCD og 4x4 tastatur: 4 trin

Video: Arduino DIY lommeregner ved hjælp af 1602 LCD og 4x4 tastatur: 4 trin
Video: How measure DC Voltage and Current and build Energy meter with LCD Display | Lesson 104 2024, November
Anonim
Arduino DIY lommeregner ved hjælp af 1602 LCD og 4x4 tastatur
Arduino DIY lommeregner ved hjælp af 1602 LCD og 4x4 tastatur

Hej fyre i denne instruks, vi vil lave en lommeregner ved hjælp af Arduino, som kan lave grundlæggende beregninger. Så grundlæggende vil vi tage input fra 4x4 tastatur og udskrive dataene på 16x2 lcd display, og arduino vil foretage beregningerne.

Trin 1: Ting du har brug for

Ting du har brug for
Ting du har brug for
Ting du har brug for
Ting du har brug for
Ting du har brug for
Ting du har brug for
Ting du har brug for
Ting du har brug for

Til denne instruktive skal vi bruge følgende ting: Arduino Uno (Enhver version fungerer)

16 × 2 LCD -skærm

4 × 4 Tastatur 9V Batteri Brødbræt Tilslutning af ledninger

Trin 2: Forbindelser

Forbindelser
Forbindelser
Forbindelser
Forbindelser

Det komplette kredsløbsdiagram for dette Arduino Calculator Project er givet ovenfor. +5V og jordforbindelsen vist i kredsløbsdiagrammet kan fås fra 5V og jordstiftet på Arduino. Selve Arduino kan drives fra din bærbare computer eller via DC-stikket ved hjælp af en 12V adapter eller 9V batteri. Vi betjener LCD'en i 4-bit-tilstand med Arduino, så kun de sidste fire databit på LCD'et er forbundet til Arduino. Tastaturet har 8 udgangsstifter, der skal tilsluttes fra pin 0 til pin 7 som vist ovenfor. Nogle Arduino -tavler kan vise en fejl under upload af program, hvis der er noget forbundet til pin 0 og pin1, så hvis du oplever noget, skal du bare fjerne tastaturet, mens programmet uploades.

Trin 3: Kode

Kode
Kode

Kopier følgende kode, og upload den til din arduino:/ * * Arduino -tastaturberegnerprogram */#inkluderer "LiquidCrystal.h" // Header -fil til LCD fra https://www.arduino.cc/en/Reference/LiquidCrystal# omfatte "Tastatur.h" // Header-fil til tastatur fra https://github.com/Chris--A/Keypadconst byte ROWS = 4; // Fire rækker, konstant byte COLS = 4; // Tre kolonner // Definer Keymapchar -tasterne [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; byte rowPins [ROWS] = {0, 1, 2, 3}; // Tilslut tastaturet ROW0, ROW1, ROW2 og ROW3 til disse Arduino -pins. Byte colPins [COLS] = {4, 5, 6, 7}; // Tilslut tastaturet COL0, COL1 og COL2 til disse Arduino -ben. Tastatur kpd = Tastatur (makeKeymap (nøgler), rowPins, colPins, ROWS, COLS); // Opret tastaturkonst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Stifter, som LCD er forbundet til LiquidCrystal lcd (rs, en, d4, d5, d6, d7); langt Num1, Num2, Tal; kul nøgle, handling; boolsk resultat = falsk; ugyldig opsætning () {lcd.begin (16, 2); // Vi bruger et 16*2 LCD -display lcd.print ("DIY -lommeregner"); // Vis en introduktionsmeddelelse lcd.setCursor (0, 1); // indstil markøren til kolonne 0, linje 1 forsinkelse (2000); // Vent på displayet for at vise info lcd.clear (); // Rens det derefter} void loop () {key = kpd.getKey (); // lagring af trykket nøgleværdi i et charif (key! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Rens derefter den hvis (key == '*') // Hvis der trykkes på annulleringsknappen {Serial.println ("Button Cancel"); Tal = Num1 = Num2 = 0; resultat = falsk;} hvis (key == '1') // Hvis der trykkes på knap 1 {Serial.println ("Knap 1"); hvis (tal == 0) tal = 1; ellers Tal = (Tal*10) + 1; // Tryk to gange} hvis (tast == '4') // Hvis der trykkes på knap 4 {Serial.println ("knap 4"); hvis (tal == 0) tal = 4; ellers Tal = (Tal*10) + 4; // Tryk to gange} hvis (tast == '7') // Hvis der trykkes på knap 7 {Serial.println ("knap 7"); hvis (tal == 0) tal = 7; ellers Tal = (Tal*10) + 7; // Tryk to gange} hvis (key == '0') {Serial.println ("Knap 0"); // Knap 0 trykkes, hvis (Tal == 0) Tal = 0; ellers Tal = (Tal*10) + 0; // Tryk to gange} hvis (key == '2') // Knap 2 trykkes på {Serial.println ("Knap 2"); hvis (tal == 0) tal = 2; ellers Tal = (Tal*10) + 2; // Trykket to gange} hvis (key == '5') {Serial.println ("Knap 5"); hvis (tal == 0) tal = 5; ellers Tal = (Tal*10) + 5; // Trykket to gange} hvis (key == '8') {Serial.println ("Knap 8"); hvis (tal == 0) tal = 8; ellers Tal = (Tal*10) + 8; // Tryk to gange} hvis (key == '#') {Serial.println ("Button Equal"); Num2 = Tal; resultat = sandt; } if (key == '3') {Serial.println ("Knap 3"); hvis (tal == 0) tal = 3; ellers Tal = (Tal*10) + 3; // Trykket to gange} hvis (key == '6') {Serial.println ("Knap 6"); hvis (tal == 0) tal = 6; ellers Tal = (Tal*10) + 6; // Trykt to gange} hvis (key == '9') {Serial.println ("Knap 9"); hvis (tal == 0) tal = 9; ellers Tal = (Tal*10) + 9; // Tryk to gange} hvis (tast == 'A' || tast == 'B' || tast == 'C' || tast == 'D') // Registrering af knapper i kolonne 4 {Num1 = tal; Antal = 0; if (key == 'A') {Serial.println ("Tilføjelse"); action = '+';} if (key == 'B') {Serial.println ("Subtraktion"); handling = '-'; } if (key == 'C') {Serial.println ("multiplikation"); action = '*';} if (key == 'D') {Serial.println ("Devesion"); handling = '/';} forsinkelse (100); }}

void CalculateResult () {if (action == '+') Number = Num1+Num2; hvis (handling == '-') Tal = Num1-Num2; hvis (handling == '*') Tal = Num1*Num2; hvis (handling == '/') Tal = Num1/Num2; } ugyldig DisplayResult () {lcd.setCursor (0, 0); // indstil markøren til kolonne 0, linje 1 lcd.print (Num1); lcd.print (handling); lcd.print (Num2); hvis (resultat == sandt) {lcd.print ("="); lcd.print (Number);} // Vis resultatet lcd.setCursor (0, 1); // indstil markøren til kolonne 0, linje 1 lcd.print (tal); // Vis resultatet}

Trin 4: Lommeregneroutput

Lommeregneroutput
Lommeregneroutput
Lommeregneroutput
Lommeregneroutput
Lommeregneroutput
Lommeregneroutput

Så vi afsluttede forbindelserne og uploadede koden til arduino og det var tid til at tilslutte strøm og lave nogle beregninger, og som du kan se, laver jeg beregninger med tastatur, og du kan se resultaterne på lcd'en. Så sjov med at lave din egen diy -lommeregner ved hjælp af arduino.

Anbefalede: