Hvordan lage Arduino-basert kalkulator?

Lage prosjekter ved hjelp av Arduino Uno som et mikrokontrollerkort er veldig morsomt hvis du jobber med innebygde prosjekter. Hvis du vil lage en enkel kalkulator som er i stand til å utføre alle de grunnleggende aritmetiske operasjonene som addisjon, subtraksjon, multiplikasjon og divisjon, kan du gjøre det akkurat nå hvis du har kunnskap med Arduino-kortet. Så i dette prosjektet skal vi bruke en Arduino Uno til å lage en enkel kalkulator. Vi vil integrere et 4 × 4-tastatur for å sende inngangen og en 16 × 2 LCD for å se utdataene fra operasjonene våre.

Så som vi nå vet det grunnleggende sammendraget av prosjektet vårt at det vi ønsker å oppnå til slutt, la oss gå videre og begynne å samle ytterligere informasjon for å begynne å jobbe med dette prosjektet.

Hvordan lage en enkel kalkulator på Arduino?

Trinn 1: Samle komponentene

Før du starter et prosjekt, er det første trinnet å lage en komplett liste over alle komponentene som skal brukes i prosjektet. Dette er en perfekt tilnærming fordi det sparer mye tid og hindrer oss i å bli sittende fast midt i prosjektet. Så, en komplett liste over alle komponentene som er lett tilgjengelige i markedet, er gitt nedenfor:

Trinn 2: Arbeid

Ettersom vi nå har alle komponentene vi skal bruke i dette prosjektet, la oss begynne å jobbe med dette prosjektet. Vi skal bruke en Arduino Uno som mikrokontrollerkort. En kode vil bli skrevet og brent på dette tavlen som vil fortelle tavlen hvilke operasjoner de skal utføre og hvordan. Et 4 × 4 tastatur vil bli brukt til å legge inn de numeriske dataene som skal beregnes i kalkulatoren. Mikrokontrolleren vil utføre alle de aritmetiske operasjonene og deretter sende utgangen til 16 × 2 LCD.

Før du kobler til maskinvaren, er det bedre å simulere og teste koden og kretsforbindelsene på dataprogramvare. Vi vil bruke Proteusfor dette formålet. Etter å ha testet kretsen og bekreftet at den fungerer helt bra på programvaren, vil vi bevege oss mot maskinvaren.

Trinn 3: Simulere kretsen

Før vi implementerer dette prosjektet på maskinvare, vil vi simulere det på Proteus først for å sjekke om koden fungerer bra eller ikke. Hvis du ikke har jobbet med Proteus før, er det ingenting å bekymre deg for. For å simulere kretsen på programvare, gå gjennom følgende trinn.

  1. Hvis du ikke allerede har denne programvaren installert på datamaskinen din, kan du klikke her for å laste den ned.
  2. Etter at programvaren er installert, åpner du programvaren og lager et nytt prosjekt ved å klikke på ISIS knapp.
  3. Proteus har ikke et Arduino-bibliotek i utgangspunktet. Vi må ta det med. Arduino-biblioteket for proteus er vedlagt sammen med koden i lenken nedenfor. Kopier filene og lim dem inn C: \ ProgramData \ Labcenter Electronics \ Proteus 8 Professional \ BIBLIOTEK.
  4. Et nytt skjema har nettopp åpnet. Klikk på Pfor å åpne komponentmenyen.
  5. En rute vises med søkefelt øverst til venstre. Søk i komponenten du trenger å bruke i prosjektet.
  6. Etter at du har valgt alle komponentene, vil du se en komplett liste på venstre side av skjermen.
  7. Lag et kretsskjema som vist nedenfor.
  8. Åpne nå Arduino-filen som er gitt nedenfor. Klikk på Sketch-menyen Eksporter kompilert binær. Dette vil generere en .hex-fil som vil bli brukt i simuleringen av Arduino i Proteus.
  9. Dette er de to filene som skal genereres. Vi vil bruke den første i simuleringene våre.
  10. Nå som HEX-filen er generert, åpner du proteus og dobbeltklikker på mikrokontrollerkortet. En rute vises for å redigere komponenten. Last opp hex-filen der.

    Ettersom koden er lastet opp her med suksess, kan du teste kalkulatoren ved å utføre en aritmetisk operasjon og bekrefte resultatene.

Trinn 4: Montering av kretsen

Ettersom kretsen er simulert og koden fungerer helt greit på den. La oss gå et skritt foran og sette sammen alle komponentene på Veroboard å lage et sluttprodukt. Gå gjennom følgende trinn for å lage alle tilkoblingene i kretsen.

  1. Det er totalt 8 pinner på 4 × 4-tastaturet som heter A, B, C, D, 1, 2, 3 og 4. Sørg for at du kobler A, B. C og D-pinnen til pin0, pin1, pin2 og pin3 på Arduino Uno-kortet og pin 1, 2, 3 og 4 pins på tastaturet til henholdsvis pin4, pin5, pin6 og pin7 på Arduino Uno-kortet.
  2. Koble nå D4, D5, D6 og D7 pin på 16 × 2 LCD til henholdsvis pin10, pin11, pin12 og pin13 på Arduino-kortet.
  3. Koble nå til RE og Epin på LCD til henholdsvis pin8 og pin9 på Arduino-kortet.
  4. Kort VSS, VEE og RW pin på LCD-skjermen og koble dem til bakken på Arduino Uno.
  5. Slå på LCD-skjermen ved å koble til VDD pin på LCD-skjermen til 5V av Arduino UNO.

Trinn 5: Komme i gang med Arduino

Arduino IDE er en programvare som du kan skrive, feilsøke og kompilere en kode som skal kjøres på en Arduino mikrokontroller. Denne koden vil bli lastet opp til mikrokontrolleren gjennom denne IDE. HVIS du ikke har noen tidligere erfaring med denne programvaren, er det ingenting å bekymre deg for, fordi hele fremgangsmåten for å bruke denne programvaren er gitt nedenfor.

  1. Hvis du ikke allerede har programvaren installert, kan du klikke her for å laste ned programvaren.
  2. Koble Arduino-kortet til PC-en og åpne Kontrollpanel. Klikk på Maskinvare og lyd.Nå åpen Enheter og skriver og finn porten som kortet ditt er koblet til. Denne porten er forskjellig på forskjellige datamaskiner.
  3. Åpne nå Arduino IDE. Fra Verktøy, sett Arduino-kortet til Arduino / Genuino UNO.
  4. Fra den samme verktøymenyen angir du portnummeret. Dette portnummeret skal være nøyaktig det samme som portnummeret som ble observert før i kontrollpanelet.
  5. For å bruke 4 × 4 tastatur og 16 × 2 LCD med Arduino IDE, må vi importere spesielle biblioteker som lar oss brenne kode på Arduino Uno og bruke den. disse to bibliotekene er vedlagt i lenken nedenfor. For å inkludere biblioteket, gå til Skisse> Inkluder bibliotek> Legg til ZIP-bibliotek. En rute vises. Finn ZIP-mappen på datamaskinen din, og klikk OK for å inkludere mappene. Dette biblioteket er vedlagt sammen med koden i lenken nedenfor.
  6. Last ned koden som er vedlagt nedenfor, og kopier den til IDE. For å laste opp koden, klikk på opplastingsknappen.

Klikk her for å laste ned koden.

Trinn 6: Forstå koden

Koden er veldig godt kommentert. Men likevel, for din enkelhet, blir det forklart nedenfor.

1. I begynnelsen er topptekstene skrevet slik at de inkluderer bibliotekene, slik at tastaturet og LCD-skjermen kan kobles til Arduino Uno-kortet.

#inkludere  // Inkluder topptekstfil for LCD # inkluderer  // Inkluder topptekstfil for tastaturet

2. Deretter blir to variabler erklært for å inneholde antall rader og kolonner på tastaturet. Tastaturet forteller oss om rekkefølgen av taster som er tilstede på tastaturet.

const byte RADER = 4; // Fire rader på tastaturet const byte COLS = 4; // Tre kolonner på tastaturet // Definer tastetastaturet [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', ' 6 ',' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {' * ',' 0 ',' # ',' A '}};

3. Etter det blir det spesifisert hvilken rad og kolonne på tastaturet som er koblet til hvilken pin av Arduino. Når alt er gjort, kan et tastatur opprettes ved å kartlegge alle pinnene.

byte rowPins [ROWS] = {0, 1, 2, 3}; // Koble tastaturet ROW0, ROW1, ROW2 og ROW3 til disse Arduino-pinnene henholdsvis 0,1,2,3. byte colPins [COLS] = {4, 5, 6, 7}; // Koble tastaturet COL0, COL1 og COL2 til henholdsvis disse Arduino-pinnene 4,5,67. Tastatur kpd = Tastatur (makeKeymap (nøkler), rowPins, colPins, ROWS, COLS); // Opprett tastaturet

4. Etter det forteller vi at hvilke pinner på LCD-skjermen er koblet til hvilke pinner på Arduino.

const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Pins som LCD er koblet til LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // Lag LCD-skjermen

5. Deretter initialiseres noen variabler for å holde beregningsverdiene og utføre operasjoner i løpet av løpetiden.

lang Num1, Num2, Antall; røye nøkkel, handling; boolsk resultat = falsk;

6. ugyldig oppsett () er en funksjon som bare kjører en gang når kretsen er slått på. I denne funksjonen erklærer vi hvilken pin på Arduino-kortet som skal brukes til å ta inngangen og hvilken som skal brukes til å sende utgangen. Baudrate er også satt i denne funksjonen, som i utgangspunktet er kommunikasjonshastigheten i bits per sekund.

ugyldig oppsett () {Serial.begin (9600); lcd.begin (16, 2); // Vi bruker en 16 * 2 LCD-skjerm lcd.print ("Kalkulator"); // Vis en intro-melding lcd.setCursor (0, 1); // sett markøren til kolonne 0, linje 1 forsinkelse (1000); // Vent i 1 sekund lcd.clear (); // fjern LCD-skjermen}

7. CalculateResult ()er en funksjon som vil bli brukt til å oppdage tegnet som trykkes på tastaturet. på grunnlag av et skilt trykket, bestemmer den hvilken aritmetisk operasjon som skal utføres.

ugyldig CalculateResult () {hvis (handling == '+') // hvis + tegnet trykkes på Number = Num1 + Num2; // legg til begge tallene hvis (handling == '-') // hvis - tegnet trykkes på Number = Num1-Num2; // trekk begge tallene fra hvis (handling == '*') // hvis * tegnet trykkes på Number = Num1 * Num2; // multipliser begge tallene hvis (handling == '/') // hvis / tegnet trykkes på Number = Num1 / Num2; // del begge tallene}

8. DisplayResult ()er en funksjon som brukes til å vise resultatet på LCD-skjermen. Først av alt setter den markøren til utgangsposisjonen og skriver ut det første tallet. Deretter viser den logiske operatoren og deretter det andre nummeret. Etter at du har skrevet ut “=” -tegnet, vises svaret på LCD-skjermen.

ugyldig DisplayResult () {lcd.setCursor (0, 0); // sett markøren til kolonne 0, linje 1 lcd.print (Num1); // skriv ut det første tallet på skjermen lcd.print (handling); // skriv ut tegnet som er trykket på skjermen lcd.print (Num2); // skriv ut det andre nummeret på skjermen hvis (resultat == sann) // Vis resultatet {lcd.print ("="); // skriv ut = tegnet på skjermen lcd.print (Number); // skriv ut svaret på skjermen}}

9. DetectButtons ()er en funksjon som brukes til å oppdage hvilken knapp du trykker på. det vil også oppdage om knappen trykkes to ganger. Denne funksjonen returnerer et tall som blir trykket på tastaturet.

ugyldig DetectButtons () {lcd.clear (); // Rengjør den deretter hvis (tast == '*') // Hvis avbryt-knappen trykkes på {Serial.println ("Knapp Avbryt"); // skriv ut en kommentar Antall = Num1 = Num2 = 0; resultat = falsk; } if (key == '1') // Hvis knapp 1 trykkes på {Serial.println ("Button 1"); hvis (Number == 0) Number = 1; annet Tall = (Antall * 10) + 1; // Trykket to ganger} hvis (tast == '4') // Hvis knapp 4 trykkes på {Serial.println ("Button 4"); hvis (Number == 0) Number = 4; annet Tall = (Antall * 10) + 4; // Trykket to ganger} hvis (tast == '7') // Hvis knapp 7 trykkes på {Serial.println ("Button 7"); hvis (Number == 0) Number = 7; annet Tall = (Antall * 10) + 7; // Trykket to ganger} hvis (tast == '0') // Hvis knapp 0 trykkes på {Serial.println ("Button 0"); hvis (Number == 0) Number = 0; annet Tall = (Antall * 10) + 0; // Trykket to ganger} hvis (tast == '2') // Knapp 2 trykkes på {Serial.println ("Knapp 2"); hvis (Number == 0) Number = 2; annet Tall = (Antall * 10) + 2; // Trykket to ganger} hvis (tast == '5') // Knapp 5 er trykket på {Serial.println ("Knapp 5"); hvis (Number == 0) Number = 5; annet Tall = (Antall * 10) + 5; // Trykkes to ganger} hvis (tast == '8') // Knapp 8 er trykket på {Serial.println ("Knapp 8"); hvis (Number == 0) Number = 8; annet Tall = (Antall * 10) + 8; // Trykket to ganger} hvis (tast == '#') // Knapp # er trykket på {Serial.println ("Button Like"); Num2 = Antall; resultat = sant; } hvis (tast == '3') // Knapp 3 trykkes på {Serial.println ("Knapp 3"); hvis (Number == 0) Number = 3; annet Tall = (Antall * 10) + 3; // Trykket to ganger} hvis (tast == '6') // Knapp 6 er trykket på {Serial.println ("Button 6"); hvis (Number == 0) Number = 6; annet Tall = (Antall * 10) + 6; // Trykket to ganger} hvis (tast == '9') // Knapp 09 er trykket på {Serial.println ("Knapp 9"); hvis (Number == 0) Number = 9; annet Tall = (Antall * 10) + 9; // Trykket to ganger} hvis (key == 'A' || key == 'B' || key == 'C' || key == 'D') // Detecting Buttons in Column 4 {Num1 = Number; Antall = 0; hvis (nøkkel == 'A') {Serial.println ("Tillegg"); handling = '+'; } if (key == 'B') {Serial.println ("Subtraction"); handling = '-'; } hvis (nøkkel == 'C') {Serial.println ("Multiplikasjon"); handling = '*'; } if (key == 'D') {Serial.println ("Devesion"); handling = '/'; } forsinkelse (100); }}

10. ugyldig sløyfe ()er en funksjon som vil kjøre igjen og igjen i en løkke. Denne funksjonen brukes til å ringe til alle de andre funksjonene som skal brukes til å utføre alle operasjonene. Disse funksjonene er forklart ovenfor.

ugyldig sløyfe () {nøkkel = kpd.getKey (); // lagring av presset nøkkelverdi i et tegn hvis (nøkkel! = NO_KEY) DetectButtons (); // anropsfunksjon hvis (resultat == sann) CalculateResult (); // anropsfunksjon DisplayResult (); // samtalefunksjon}

Trinn 7: Testing

Nå som vi har koblet alle komponentene sammen og lastet opp koden i mikrokontrolleren, la oss teste kalkulatoren om den fungerer bra eller ikke. Trykk på en talltast for å teste kalkulatoren. Etter det trykk ENog trykk deretter på en hvilken som helst talltast. Når du har gjort dette, vil LCD-displayet vise tillegg av begge tallene.

Dette var hele prosedyren for å lage og teste en kalkulator ved hjelp av Arduino. Nå kan du glede deg over å lage din egen Arduino-baserte kalkulator hjemme.

Facebook Twitter Google Plus Pinterest