Hur man gör Arduino-baserade miniräknare?

Skapa projekt med Arduino Uno som ett mikrokontrollkort är det riktigt roligt om du arbetar med inbäddade projekt. Om du vill skapa en enkel kalkylator som kan utföra alla grundläggande aritmetiska operationer som addition, subtraktion, multiplikation och division, kan du göra det just nu om du har kunskap med Arduino-kortet. Så i det här projektet ska vi använda en Arduino Uno för att göra en enkel miniräknare. Vi kommer att integrera en 4 × 4 knappsats för att skicka ingången och en 16 × 2 LCD för att se resultatet av våra operationer.

Så som vi nu vet det grundläggande sammandraget av vårt projekt att vad vi vill uppnå i slutändan, låt oss gå vidare och börja samla ytterligare information för att börja arbeta med detta projekt.

Hur man gör en enkel miniräknare på Arduino?

Steg 1: Samla in komponenterna

Innan du startar något projekt är det första steget att skapa en fullständig lista över alla komponenter som ska användas i projektet. Detta är ett perfekt tillvägagångssätt eftersom det sparar mycket tid och hindrar oss från att fastna mitt i projektet. Så, en fullständig lista över alla komponenter som är lätt tillgängliga på marknaden ges nedan:

Steg 2: Arbeta

Eftersom vi nu har alla komponenter som vi ska använda i detta projekt, låt oss börja arbeta med detta projekt. Vi ska använda en Arduino Uno som mikrokontrollerkort. En kod kommer att skrivas och brännas på denna tavla som berättar tavlan vilka operationer som ska utföras och hur. En 4 × 4-knappsats används för att mata in de numeriska data som ska beräknas i räknaren. Mikrokontrollern utför alla aritmetiska operationer och skickar sedan utdata till 16 × 2 LCD.

Innan du ansluter hårdvaran är det bättre att simulera och testa koden och kretsanslutningarna i programvaran. Vi kommer använda Proteusför det här syftet. Efter att ha testat kretsen och bekräftat att den fungerar helt bra på programvaran kommer vi att gå mot hårdvaran.

Steg 3: Simulera kretsen

Innan vi implementerar detta projekt på hårdvara, simulerar vi det först på Proteus för att kontrollera om koden fungerar bra eller inte. Om du inte har arbetat med Proteus tidigare finns det inget att oroa sig för. För att simulera kretsen på programvara, gå igenom följande steg.

  1. Om du inte redan har den här programvaran installerad på din dator, klicka här för att ladda ner den.
  2. När programvaran har installerats öppnar du programvaran och gör ett nytt projekt genom att klicka på ISIS knapp.
  3. Proteus har ursprungligen inget Arduino-bibliotek. Vi måste inkludera det. Arduino-biblioteket för proteus bifogas tillsammans med koden i länken nedan. Kopiera filerna och klistra in dem C: \ ProgramData \ Labcenter Electronics \ Proteus 8 Professional \ BIBLIOTEK.
  4. Ett nytt schema har just öppnats. Klicka på Pför att öppna komponentmenyn.
  5. En ruta visas med ett sökfält i det övre vänstra hörnet. Sök i komponenten som du behöver använda i projektet.
  6. När du har valt alla komponenter ser du en fullständig lista till vänster på skärmen.
  7. Gör ett kretsschema enligt nedan.
  8. Öppna nu Arduino-filen som ges nedan. Klicka på Skissmenyn Exportera kompilerade binära. Detta genererar en .hex-fil som kommer att användas i simuleringen av Arduino i Proteus.
  9. Det här är de två filer som kommer att genereras. Vi kommer att använda den första i våra simuleringar.
  10. Nu när HEX-filen genereras öppnar du proteus och dubbelklickar på mikrokontrollkortet. En ruta visas för att redigera komponenten. Ladda upp hex-filen där.

    Eftersom koden laddas upp här framgångsrikt kan du testa räknaren genom att utföra en aritmetisk operation och bekräfta resultaten.

Steg 4: Montering av kretsen

Eftersom kretsen simuleras och koden fungerar helt bra på den. Låt oss gå ett steg framåt och montera alla komponenter tillsammans på Veroboard att göra en slutprodukt. Gå igenom följande steg för att göra alla anslutningar i kretsen.

  1. Det finns totalt 8 stift på knappsatsen 4 × 4 med namnet A, B, C, D, 1, 2, 3 och 4. Se till att du ansluter A, B. C och D-stiftet till pin0, pin1, pin2 och pin3 på Arduino Uno-kortet och pin 1, 2, 3 och 4 pins på knappsatsen till pin4, pin5, pin6 och pin7 på Arduino Uno-kortet.
  2. Anslut nu D4, D5, D6 och D7-stift på 16 × 2 LCD till pin10, pin11, pin12 respektive pin13 på Arduino-kortet.
  3. Anslut nu RE och Estift på LCD-skärmen till pin8 respektive pin9 på Arduino-kortet.
  4. Korta VSS, VEE och RW stift på LCD-skärmen och anslut dem till marken på Arduino Uno.
  5. Slå på LCD-skärmen genom att ansluta VDD stift på LCD-skärmen till 5V på Arduino UNO.

Steg 5: Komma igång med Arduino

Arduino IDE är en programvara som du kan skriva, felsöka och sammanställa en kod som körs på en Arduino-mikrokontroller. Den här koden laddas upp till mikrokontrollern via denna IDE. Om du inte har någon tidigare erfarenhet av den här programvaran finns det inget att oroa dig för, eftersom hela proceduren för att använda denna programvara ges nedan.

  1. Om du inte redan har programvaran installerad, klicka här för att ladda ner programvaran.
  2. Anslut ditt Arduino-kort till datorn och öppna Kontrollpanelen. Klicka på Hårdvara och ljud.Nu öppen Enheter och skrivare och hitta porten som kortet är anslutet till. Denna port är annorlunda på olika datorer.
  3. Öppna nu Arduino IDE. Från Verktyg ställer du Arduino-kortet till Arduino / Genuino UNO.
  4. Från samma verktygsmeny ställer du in portnumret. Detta portnummer ska vara exakt detsamma som det portnummer som observerades tidigare i kontrollpanelen.
  5. För att använda 4 × 4 knappsats och 16 × 2 LCD med Arduino IDE måste vi importera speciella bibliotek som gör att vi kan bränna kod på Arduino Uno och använda den. dessa två bibliotek bifogas i länken nedan. För att inkludera biblioteket, gå till Skiss> Inkludera bibliotek> Lägg till ZIP-bibliotek. En ruta visas. Hitta ZIP-mappen på din dator och klicka på OK för att inkludera mapparna. Detta bibliotek bifogas tillsammans med koden i länken nedan.
  6. Ladda ner koden som bifogas nedan och kopiera den till din IDE. Klicka på uppladdningsknappen för att ladda upp koden.

Klicka här för att ladda ner koden.

Steg 6: Förstå koden

Koden är mycket väl kommenterad. Men ändå, för din lätthet, förklaras det nedan.

1. I början skrivs rubrikfilerna för att inkludera biblioteken så att manöverpanelen och LCD-skärmen kan anslutas till Arduino Uno-kortet.

#omfatta  // Inkludera rubrikfil för LCD # inkludera  // Inkludera rubrikfil för tangentbordet

2. Därefter deklareras två variabler som innehåller antalet rader och kolumner på knappsatsen. Tangentbordet berättar om sekvensen av tangenter som finns i knappsatsen.

const byte ROWS = 4; // Fyra rader på knappsatsen const byte COLS = 4; // Tre kolumner på tangentbordet // Definiera knapptangenterna för Keymap [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', ' 6 ',' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {' * ',' 0 ',' # ',' A '}};

3. Därefter specificeras vilken rad och kolumn på knappsatsen som är ansluten till vilken stift av Arduino. När allt är klart kan en knappsats skapas genom att kartlägga alla dess stift.

byte rowPins [ROWS] = {0, 1, 2, 3}; // Anslut knappsatsen ROW0, ROW1, ROW2 och ROW3 till dessa Arduino-stift 0,1,2,3. byte colPins [COLS] = {4, 5, 6, 7}; // Anslut knappsatsen COL0, COL1 och COL2 till dessa Arduino-stift 4,5,67 respektive. Knappsats kpd = Knappsats (makeKeymap (tangenter), rowPins, colPins, ROWS, COLS); // Skapa knappsatsen

4. Därefter berättar vi att vilka stift på LCD-skärmen är anslutna till vilka stift på Arduino.

konst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Pins till vilka LCD är ansluten LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Skapa LCD-skärmen

5. Sedan initieras några variabler för att hålla värdena för beräkningarna och utföra operationer under körtiden.

lång Num1, Num2, Number; char nyckel, action; booleskt resultat = falskt;

6. ogiltig installation () är en funktion som bara körs en gång när kretsen är påslagen. I den här funktionen förklarar vi vilken stift på Arduino-kortet som ska användas för att ta ingången och vilken som kommer att användas för att skicka utgången. Baudhastighet ställs också in i denna funktion som i grunden är kommunikationshastigheten i bitar per sekund.

ogiltig installation () {Serial.begin (9600); lcd. började (16, 2); // Vi använder en 16 * 2 LCD-skärm lcd.print ("Calculator"); // Visa ett introduktionsmeddelande lcd.setCursor (0, 1); // ställ markören till kolumn 0, rad 1 fördröjning (1000); // Vänta 1 sekund lcd.clear (); // rensa LCD-skärmen}

7. CalculateResult ()är en funktion som används för att upptäcka det tecken som trycks ned på knappsatsen. på grundval av tecknet tryckt kommer det att avgöra vilken aritmetisk operation som ska utföras.

ogiltigt CalculateResult () {if (action == '+') // om + -tecknet trycks på Number = Num1 + Num2; // lägg till båda siffrorna om (action == '-') // if - tecken trycks på Number = Num1-Num2; // subtrahera båda siffrorna om (action == '*') // om * tecknet trycks in Number = Num1 * Num2; // multiplicera båda siffrorna om (action == '/') // om / tecken trycks in Number = Num1 / Num2; // dela båda siffrorna}

8. DisplayResult ()är en funktion som används för att visa resultatet på LCD-skärmen. Först och främst sätter den markören till utgångsläget och skriver ut det första numret. Sedan visar den logiska operatören och sedan det andra numret. Efter att "=" -tecknet har skrivits ut visas svaret på LCD-skärmen.

ogiltig DisplayResult () {lcd.setCursor (0, 0); // ställ in markören till kolumn 0, rad 1 lcd.print (Num1); // skriv ut det första numret på skärmen lcd.print (action); // skriv ut tecknet tryckt på skärmen lcd.print (Num2); // skriv ut det andra numret på skärmen om (resultat == true) // Visa resultatet {lcd.print ("="); // skriv ut = -tecknet på skärmen lcd.print (Number); // skriv ut svaret på skärmen}}

9. DetectButtons ()är en funktion som används för att upptäcka vilken knapp som trycks ned. det kommer också att upptäcka om knappen trycks in två gånger. Denna funktion returnerar ett nummer som kommer att tryckas på knappsatsen.

ogiltig DetectButtons () {lcd.clear (); // Rengör sedan om (tangent == '*') // Om du avbryter knappen Avbryt {Serial.println ("Knappavbryt"); // skriv ut en kommentar Number = Num1 = Num2 = 0; resultat = falskt; } if (key == '1') // Om knappen 1 trycks ned {Serial.println ("Button 1"); if (Number == 0) Number = 1; annat tal = (nummer * 10) + 1; // Tryckt två gånger} om (tangent == '4') // Om knapp 4 trycks ned {Serial.println ("Knapp 4"); if (Number == 0) Number = 4; annat nummer = (nummer * 10) + 4; // Tryckt två gånger} om (tangent == '7') // Om knapp 7 trycks {Serial.println ("Knapp 7"); if (Number == 0) Number = 7; annat tal = (nummer * 10) + 7; // Tryckt två gånger} om (tangent == '0') // Om knapp 0 trycks {Serial.println ("Knapp 0"); if (Number == 0) Number = 0; annat tal = (nummer * 10) + 0; // Tryckt två gånger} om (tangent == '2') // Knapp 2 trycks ned {Serial.println ("Knapp 2"); if (Number == 0) Number = 2; annars Antal = (Nummer * 10) + 2; // Tryckt två gånger} om (tangent == '5') // Knapp 5 trycks ned {Serial.println ("Knapp 5"); if (Number == 0) Number = 5; annars Antal = (Nummer * 10) + 5; // Tryckt två gånger} om (tangent == '8') // Knapp 8 trycks ned {Serial.println ("Knapp 8"); if (Number == 0) Number = 8; annat tal = (nummer * 10) + 8; // Tryckt två gånger} om (tangent == '#') // Knapp # trycks på {Serial.println ("Knapp lika"); Num2 = antal; resultat = sant; } om (tangent == '3') // Knapp 3 trycks ned {Serial.println ("Knapp 3"); if (Number == 0) Number = 3; annars Antal = (Nummer * 10) + 3; // Tryckt två gånger} om (tangent == '6') // Knapp 6 trycks ned {Serial.println ("Knapp 6"); if (Number == 0) Number = 6; annars Siffra = (Siffra * 10) + 6; // Tryckt två gånger} om (tangent == '9') // Knapp 09 trycks {Serial.println ("Knapp 9"); if (Number == 0) Number = 9; annat tal = (nummer * 10) + 9; // Tryckt två gånger} om (tangent == 'A' || tangent == 'B' || tangent == 'C' || tangent == 'D') // Upptäcka knappar i kolumn 4 {Num1 = Number; Antal = 0; if (key == 'A') {Serial.println ("Addition"); 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); }}

10. ogiltig slinga ()är en funktion som körs om och om igen i en slinga. Denna funktion används för att anropa alla andra funktioner som kommer att användas för att utföra alla operationer. Dessa funktioner förklaras ovan.

ogiltig slinga () {key = kpd.getKey (); // lagra tryckt nyckelvärde i ett tecken om (tangent! = NO_KEY) DetectButtons (); // samtalsfunktion om (resultat == sant) CalculateResult (); // samtalsfunktion DisplayResult (); // samtalsfunktion}

Steg 7: Testning

Nu när vi har anslutit alla komponenter tillsammans och laddat upp koden i mikrokontrollern, låt oss testa räknaren om den fungerar bra eller inte. För att testa räknaren, tryck på valfri siffertangent. Efter det tryck Aoch tryck sedan på valfri siffertangent igen. När du har gjort detta kommer LCD-displayen att lägga till båda siffrorna.

Detta var hela proceduren för att skapa och testa en miniräknare med Arduino. Nu kan du njuta av att skapa din egen Arduino-baserade kalkylator hemma.

Facebook Twitter Google Plus Pinterest