- Material som krävs:
- Kretsschema:
- Arduino Calculator Program:
- Simulering av Arduino-kalkylator:
- Arduino Arctic Calculator:
Programmering är alltid roligt och Arduino är en underbar plattform om du bara börjar med inbyggd programmering. I denna handledning kommer vi att bygga vår egen miniräknare med Arduino. Värdena kan skickas in via en knappsats (4 × 4 knappsats) och resultatet kan visas på en LCD-skärm (16 × 2 punktmatris). Denna räknare kan utföra enkla operationer som Addition, Subtraktion, Multiplication och Division med heltal. Men när du förstår konceptet kan du implementera även vetenskapliga funktioner med Arduinos inbyggda funktioner.
I slutet av detta projekt kommer du att veta hur du använder en 16x2 LCD och knappsats med Arduino och hur enkelt det är att programmera för dem med hjälp av de lätt tillgängliga biblioteken. Du kommer också att förstå hur du programmerar din Arduino för att utföra en viss uppgift.
Material som krävs:
- Arduino Uno (vilken version som helst fungerar)
- 16 × 2 LCD-skärm
- 4 × 4 Knappsats
- 9V batteri
- Brödbräda och anslutande ledningar
Kretsschema:
Det fullständiga kretsschemat för detta Arduino Calculator Project ges ovan. + 5V och jordanslutningen som visas i kretsschemat kan erhållas från 5V och jordstiftet på Arduino. Arduino i sig kan drivas från din bärbara dator eller via DC-uttaget med en 12V-adapter eller 9V-batteri.
Vi använder LCD-skärmen i 4-bitars läge med Arduino så att endast de sista fyra databitarna på LCD-skärmen är ansluten till Arduino. Tangentbordet kommer att ha 8 utgångar som måste anslutas från stift 0 till stift 7 som visas ovan. Du kan använda följande anslutningstabell för att verifiera din anslutning till Arduino, du kan också kontrollera 4x4-tangentbordets gränssnitt med Arduino.
Arduino stiftnamn: |
Anslutna till: |
D0 |
1 st stift på tangentbordet |
D1 |
2 : a stift av tangentbordet |
D2 |
3 : e stift av tangentbordet |
D3 |
4: e stiftet på tangentbordet |
D4 |
5: e stiftet på tangentbordet |
D5 |
6: e stiftet på tangentbordet |
D6 |
7: e stiftet på tangentbordet |
D7 |
8: e stiftet på tangentbordet |
D8 |
Registrera välj stift på LCD (stift 4) |
D9 |
Aktivera stift på LCD (stift 6) |
D10 |
Datastift 4 (stift 11) |
D11 |
Datastift 4 (stift 11) |
D12 |
Datastift 4 (stift 11) |
D13 |
Datastift 4 (stift 11) |
+ 5V |
Ansluten till Vdd-stift på LCD (stift 2) |
Jord |
Ansluten till Vss, Vee och RW-stift på LCD (stift 1,3 och 5) |
Vissa Arduino-kort kan visa ett fel när du överför program om det finns något anslutet till stift 0 och stift1, så om du upplever något tar du bara bort knappsatsen medan du laddar upp programmet.
När dina anslutningar är klara kommer din hårdvara att se ut så här nedan
Arduino Calculator Program:
Det kompletta Arduino-programmet för detta projekt ges i slutet av detta projekt. Koden är uppdelad i små meningsfulla bitar och förklaras nedan.
Som tidigare sagt kommer vi att ansluta en LCD och knappsats med Arduino med hjälp av bibliotek. Så låt oss först lägga till dem i vår Arduino IDE. Biblioteket för LCD är redan inkluderat i din Arduino som standard så vi behöver inte oroa oss för det. Klicka på länken för tangentbiblioteket för att ladda ner det från Github. Du får en ZIP-fil och lägg sedan till denna lib till Arduino med Sketch -> Inkludera bibliotek -> Lägg till.ZIP-fil och peka platsen till den nedladdade filen. När du är klar är vi redo för programmering.
Även om vi har använt ett bibliotek för att använda en knappsats måste vi nämna några detaljer (visas nedan) om knappsatsen till Arduino. Variabeln ROWS och COLS visar hur många rader och kolumner vårt tangentbord har och tangentbordet visar i vilken ordning tangenterna finns på tangentbordet. Knappsatsen som jag använder i det här projektet ser ut så här nedanför till nyckelkartan representerar densamma.
Längre ner har vi nämnt till vilka stift tangentbordet är anslutet med hjälp av variabla array rowPins och colPins .
const byte ROWS = 4; // Fyra rader med byte COLS = 4; // Tre kolumner // Definiera Charymap-knapparna = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, { '7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins = {0, 1, 2, 3}; // Anslut knappsatsen ROW0, ROW1, ROW2 och ROW3 till dessa Arduino-stift. byte colPins = {4, 5, 6, 7}; // Anslut knappsatsen COL0, COL1 och COL2 till dessa Arduino-stift.
När vi väl har nämnt vilken typ av knappsats vi använder och hur den är ansluten kan vi skapa knappsatsen med hjälp av dessa detaljer med hjälp av raden nedan
Knappsats kpd = Knappsats (makeKeymap (tangenter), rowPins, colPins, ROWS, COLS); // Skapa knappsatsen
På samma sätt måste vi också berätta för vilka stift på Arduino LCD-skärmen är ansluten till. Enligt vårt kretsschema skulle definitionerna vara som nedan
konst int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Stift till vilka LCD är ansluten LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // skapa LCD-skärmen
Inne i inställningsfunktionen , bara visar vi namnet på projektet och sedan vidare till while-slinga där de viktigaste projekt ligger.
I grund och botten måste vi kontrollera om något skrivs på knappsatsen, om vi skriver måste vi känna igen vad som skrivs och sedan konvertera det till en variabel när “=” trycks måste vi beräkna resultatet och sedan äntligen visa det på LCD-skärmen. Detta är exakt vad som görs inuti loopfunktionen som visas nedan
nyckel = kpd.getKey (); // lagra tryckt nyckelvärde i ett tecken om (tangent! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult ();
Vad som händer i varje funktion förklaras med hjälp av kommentarraderna, gå igenom hela koden nedan, lura med den för att förstå hur den faktiskt fungerar. Om du är osäker på en specifik rad, använd gärna kommentarsektionen eller forumen.
Simulering av Arduino-kalkylator:
Vi kan också prova att simulera projektet med hjälp av Proteus-programvaran. Proteus har inte en Arduino-komponent ensam, men kan enkelt laddas ner och läggas till i sitt bibliotek. När du väl har Arduino-komponenten på Proteus, lägg bara till alfanumerisk LCD och knappsats för att göra anslutningen som visas i kretsschemat.
Ladda sedan ner hex-filen härifrån och lägg till den i Arduino genom att dubbelklicka på kortet i Proteus och peka ”programfilen” på den nedladdade hex-filen. Ett snapshot av simuleringen visas nedan, hela arbetet visas i videon nedan.
Obs! Den angivna hex-filen är inte samma som originalet för programmet som anges nedan. Den har modifierats till eftersom tangentbordet på simuleringsknappsatsen och den faktiska hårdvaruknappsatsen är olika.
Arduino Arctic Calculator:
Gör anslutningarna enligt kretsschemat och ladda upp koden nedan. Om det visar fel, se till att du har lagt till biblioteket enligt instruktionerna ovan. Du kan också prova simuleringen för att kontrollera om problemet är med din hårdvara. Om allt görs som det ska vara, kommer din hårdvara att se ut så här nedan med LCD-skärmen som visar detta
Eftersom knappsatsen som används här inte har rätt markeringar på det har jag antagit att alfabetet är operatörer enligt nedan
Tecken på knappsatsen |
Antas vara |
"A" |
Tillägg (+) |
“B” |
Subtraktion (-) |
"C" |
Multiplikation (*) |
"D" |
Division (/) |
“*” |
Rensa (C) |
“#” |
Lika (=) |
Du kan använda en markör för att skriva över vad varje knapp faktiskt representerar.
Med det gjort kan du direkt börja använda miniräknaren. Skriv in numret och visas på andra raden, tryck på operand och skriv ditt andra nummer och slutligen tryck på “#” för att få ditt resultat. Du kan också prova att bygga den här pekskärmsbaserade Arduino-kalkylatorn.