Innholdsfortegnelse:
2025 Forfatter: John Day | [email protected]. Sist endret: 2025-01-13 06:58
Hei folkens i denne instruksjonene vil vi lage en kalkulator ved hjelp av Arduino som kan gjøre grunnleggende beregninger. Så i utgangspunktet vil vi ta input fra 4x4 -tastaturet og skrive ut dataene på 16x2 lcd -skjermen, og arduino vil gjøre beregningene.
Trinn 1: Ting du trenger
For disse instruktørene trenger vi følgende ting: Arduino Uno (Enhver versjon vil fungere)
16 × 2 LCD -skjerm
4 × 4 tastatur 9V batteri Brødbrett Koble til ledninger
Trinn 2: Tilkoblinger
Det komplette kretsdiagrammet for dette Arduino Calculator Project er gitt ovenfor. +5V og jordforbindelsen vist i kretsdiagrammet kan fås fra 5V og jordingsstiftet på Arduino. Selve Arduino kan drives fra den bærbare datamaskinen eller via DC-kontakten ved hjelp av en 12V adapter eller 9V batteri. Vi bruker LCD-skjermen i 4-biters modus med Arduino, så bare de fire siste databitsene på LCD-skjermen er koblet til Arduino. Tastaturet vil ha 8 utgangspinner som må kobles fra pin 0 til pin 7 som vist ovenfor. Noen Arduino -kort kan vise en feil under opplasting av program hvis det er noe koblet til pin 0 og pin1, så hvis du opplever noen, må du bare fjerne tastaturet mens du laster opp programmet.
Trinn 3: Kode
Kopier følgende kode og last opp arduinoen til den:/ * * Arduino tastaturkalkulatorprogram */#inkluderer "LiquidCrystal.h" // Header -fil for LCD fra https://www.arduino.cc/en/Reference/LiquidCrystal# inkludere "Keypad.h" // Topptekstfil for tastatur fra https://github.com/Chris--A/Keypadconst byte ROWS = 4; // Fire rader, konstant byte COLS = 4; // Tre kolonner // Definer Keymapchar -tastene [RADER] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; byte rowPins [ROWS] = {0, 1, 2, 3}; // Koble tastaturet ROW0, ROW1, ROW2 og ROW3 til disse Arduino -pinnene. Byte colPins [COLS] = {4, 5, 6, 7}; // Koble tastaturet COL0, COL1 og COL2 til disse Arduino -pinnene. Tastatur kpd = Tastatur (makeKeymap (nøkler), rowPins, colPins, ROWS, COLS); // Lag tastaturkonsten int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Pinner som LCD er koblet til LiquidCrystal lcd (rs, en, d4, d5, d6, d7); lang Num1, Num2, Number; røyke nøkkel, handling; boolsk resultat = usant; ugyldig oppsett () {lcd.begin (16, 2); // Vi bruker en 16*2 LCD -skjerm lcd.print ("DIY kalkulator"); // Vis en introduksjonsmelding lcd.setCursor (0, 1); // sett markøren til kolonne 0, linje 1 forsinkelse (2000); // Vent til skjermen viser info lcd.clear (); // Rengjør den deretter} void loop () {key = kpd.getKey (); // lagring av trykket nøkkelverdi i et charif (key! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Rengjør den deretter hvis (key == '*') // Hvis Avbryt -knappen trykkes på {Serial.println ("Knappavbryt"); Tall = Num1 = Num2 = 0; result = false;} if (key == '1') // Hvis du trykker på knapp 1 {Serial.println ("Button 1"); hvis (tall == 0) tall = 1; annet Nummer = (Antall*10) + 1; // Trykk to ganger} hvis (tast == '4') // Hvis knapp 4 trykkes på {Serial.println ("knapp 4"); hvis (tall == 0) tall = 4; annet tall = (tall*10) + 4; // Trykk to ganger} hvis (tast == '7') // Hvis knapp 7 trykkes på {Serial.println ("Knapp 7"); hvis (tall == 0) tall = 7; annet Nummer = (Antall*10) + 7; // Trykket to ganger} hvis (key == '0') {Serial.println ("Knapp 0"); // Knapp 0 trykkes hvis (tall == 0) tall = 0; annet tall = (tall*10) + 0; // Trykt to ganger} hvis (key == '2') // Knapp 2 trykkes {Serial.println ("Knapp 2"); hvis (tall == 0) tall = 2; annet Nummer = (Antall*10) + 2; // Trykket to ganger} if (key == '5') {Serial.println ("Knapp 5"); hvis (tall == 0) tall = 5; annet Nummer = (Antall*10) + 5; // Trykket to ganger} hvis (key == '8') {Serial.println ("Knapp 8"); hvis (tall == 0) tall = 8; annet tall = (tall*10) + 8; // Trykket to ganger} if (key == '#') {Serial.println ("Button Equal"); Num2 = Antall; resultat = sant; } if (key == '3') {Serial.println ("Knapp 3"); hvis (tall == 0) tall = 3; annet Nummer = (Antall*10) + 3; // Trykket to ganger} hvis (key == '6') {Serial.println ("Knapp 6"); hvis (tall == 0) tall = 6; annet Nummer = (Antall*10) + 6; // Trykket to ganger} if (key == '9') {Serial.println ("Knapp 9"); hvis (tall == 0) tall = 9; annet tall = (tall*10) + 9; // Trykket to ganger} hvis (key == 'A' || key == 'B' || key == 'C' || key == 'D') // Oppdager knapper i kolonne 4 {Num1 = Number; Antall = 0; if (key == 'A') {Serial.println ("tillegg"); action = '+';} if (key == 'B') {Serial.println ("Subtraksjon"); action = '-'; } if (key == 'C') {Serial.println ("multiplikasjon"); action = '*';} if (key == 'D') {Serial.println ("Devesion"); action = '/';} forsinkelse (100); }}
void CalculateResult () {if (action == '+') Number = Num1+Num2; if (action == '-') Number = Num1-Num2; if (action == '*') Number = Num1*Num2; if (action == '/') Number = Num1/Num2; } ugyldig DisplayResult () {lcd.setCursor (0, 0); // sett markøren til kolonne 0, linje 1 lcd.print (Num1); lcd.print (handling); lcd.print (Num2); hvis (resultat == true) {lcd.print ("="); lcd.print (Number);} // Vis resultatet lcd.setCursor (0, 1); // sett markøren til kolonne 0, linje 1 lcd.print (tall); // Vis resultatet}
Trinn 4: Kalkulatorutgang
Så vi fullførte tilkoblingene og lastet opp koden til arduino og det var på tide å koble til strøm og gjøre noen beregninger, og som du kan se, gjør jeg beregninger med tastaturet, og du kan se resultatene på LCD -skjermen. Så ha det gøy med å lage din egen diy kalkulator ved hjelp av arduino.