Innehållsförteckning:
2025 Författare: John Day | [email protected]. Senast ändrad: 2025-01-13 06:58
Hej killar i denna instruktioner kommer vi att göra en miniräknare med Arduino som kan göra grundläggande beräkningar. Så i grund och botten tar vi inmatning från 4x4 -knappsatsen och skriver ut data på 16x2 lcd -skärm och arduino kommer att göra beräkningarna.
Steg 1: Saker du behöver
För dessa instruktioner behöver vi följande saker: Arduino Uno (valfri version fungerar)
16 × 2 LCD -skärm
4 × 4 knappsats 9V batteri Brödbräda Anslutningskablar
Steg 2: Anslutningar
Det fullständiga kretsschemat för detta Arduino Calculator -projekt ges ovan. +5V och jordanslutningen som visas i kretsschemat kan erhållas från 5V och jordstiftet på Arduino. Arduino själv kan drivas från din bärbara dator eller via DC-uttaget med hjälp av en 12V-adapter eller 9V-batteri. Vi använder LCD-skärmen i 4-bitars läge med Arduino så att bara de sista fyra databitarna på LCD-skärmen är anslutna till Arduino. Tangentbordet kommer att ha 8 utgångsstiften som måste anslutas från stift 0 till stift 7 som visas ovan. Vissa Arduino -kort kan visa ett fel när du laddar upp programmet om det finns något anslutet till stift 0 och stift 1, så om du upplever något tar du bara bort knappsatsen medan du laddar upp programmet.
Steg 3: Kod
Kopiera följande kod och ladda upp den till din arduino:/ * * Arduino knappsatsberäknare Program */#inkluderar "LiquidCrystal.h" // Rubrikfil för LCD från https://www.arduino.cc/en/Reference/LiquidCrystal# inkludera "Tangentbord.h" // Rubrikfil för knappsats från https://github.com/Chris--A/Keypadconst byte ROWS = 4; // Fyra rader, konstant byte COLS = 4; // Tre kolumner // Definiera Keymapchar -tangenterna [RADER] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; byte rowPins [ROWS] = {0, 1, 2, 3}; // Anslut knappsatsen ROW0, ROW1, ROW2 och ROW3 till dessa Arduino -stift. Byte colPins [COLS] = {4, 5, 6, 7}; // Anslut knappsats COL0, COL1 och COL2 till dessa Arduino -pinnar. Tangentbord kpd = Knappsats (makeKeymap (nycklar), rowPins, colPins, ROWS, COLS); // Skapa tangentbordskonsten int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Stift som LCD är ansluten till LiquidCrystal lcd (rs, en, d4, d5, d6, d7); långa Num1, Num2, Antal; röding nyckel, handling; booleskt resultat = falskt; void setup () {lcd.begin (16, 2); // Vi använder en 16*2 LCD -skärm lcd.print ("DIY -kalkylator"); // Visa ett introduktionsmeddelande lcd.setCursor (0, 1); // ställ markören till kolumn 0, rad 1 fördröjning (2000); // Vänta tills displayen visar information lcd.clear (); // Rensa det sedan} void loop () {key = kpd.getKey (); // lagra tryckt nyckelvärde i en charif (key! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Rengör sedan den om (key == '*') // Om Avbryt -knappen trycks in {Serial.println ("Knappavbryt"); Tal = Num1 = Num2 = 0; result = false;} if (key == '1') // Om knapp 1 trycks in {Serial.println ("Button 1"); om (Number == 0) Number = 1; annars Antal = (Tal*10) + 1; // Tryckt två gånger} om (key == '4') // Om knapp 4 trycks ned {Serial.println ("knapp 4"); om (Number == 0) Number = 4; annars Antal = (Tal*10) + 4; // Tryckt två gånger} om (key == '7') // Om knapp 7 trycks ned {Serial.println ("knapp 7"); om (Number == 0) Number = 7; annars Antal = (Tal*10) + 7; // Tryckt två gånger} if (key == '0') {Serial.println ("Knapp 0"); // Knapp 0 trycks om (Number == 0) Number = 0; annars Antal = (Tal*10) + 0; // Tryckt två gånger} om (key == '2') // Knapp 2 trycks {Serial.println ("Knapp 2"); om (Number == 0) Number = 2; annars Antal = (Tal*10) + 2; // Tryckt två gånger} if (key == '5') {Serial.println ("Knapp 5"); om (Number == 0) Number = 5; annars Antal = (Tal*10) + 5; // Tryckt två gånger} if (key == '8') {Serial.println ("Knapp 8"); om (Number == 0) Number = 8; annars Antal = (Tal*10) + 8; // Tryckt två gånger} if (key == '#') {Serial.println ("Button Equal"); Num2 = Tal; resultat = sant; } if (key == '3') {Serial.println ("Knapp 3"); om (Number == 0) Number = 3; annars Antal = (Tal*10) + 3; // Tryckt två gånger} if (key == '6') {Serial.println ("Knapp 6"); om (Number == 0) Number = 6; annars Antal = (Tal*10) + 6; // Tryckt två gånger} if (key == '9') {Serial.println ("Knapp 9"); om (Number == 0) Number = 9; annars Antal = (Tal*10) + 9; // Tryckt två gånger} if (key == 'A' || key == 'B' || key == 'C' || key == 'D') // Detecting Buttons on Column 4 {Num1 = Number; Antal = 0; if (key == 'A') {Serial.println ("Tillägg"); action = '+';} if (key == 'B') {Serial.println ("Subtraktion"); action = '-'; } if (key == 'C') {Serial.println ("multiplikation"); action = '*';} if (key == 'D') {Serial.println ("Devesion"); action = '/';} fördröjning (100); }}
void CalculateResult () {if (action == '+') Number = Num1+Num2; if (action == '-') Number = Num1-Num2; if (action == '*') Number = Num1*Num2; if (action == '/') Number = Num1/Num2; } void DisplayResult () {lcd.setCursor (0, 0); // ställ markören till kolumn 0, rad 1 lcd.print (Num1); lcd.print (åtgärd); lcd.print (Num2); if (resultat == true) {lcd.print ("="); lcd.print (Number);} // Visa resultatet lcd.setCursor (0, 1); // ställ markören till kolumn 0, rad 1 lcd.print (Number); // Visa resultatet}
Steg 4: Kalkylatorutmatning
Så vi slutförde anslutningarna och laddade upp koden till arduino och det var dags att ansluta ström och göra några beräkningar & som du kan se gör jag beräkningar med knappsatsen och du kan se resultaten på LCD -skärmen. Så ha kul att göra din egen DIY -kalkylator med Arduino.