- Vereiste materialen:
- Schakelschema:
- Arduino Calculator-programma:
- Simulatie van Arduino Calculator:
- Werking van Arduino Calculator:
Programmeren is altijd leuk en Arduino is een geweldig platform als je net begint met Embedded Programmeren. In deze tutorial zullen we onze eigen rekenmachine bouwen met Arduino. De waarden kunnen worden verzonden via een toetsenbord (4 × 4 toetsenbord) en het resultaat kan worden bekeken op een LCD-scherm (16 × 2 Dot-matrix). Deze rekenmachine kan eenvoudige bewerkingen uitvoeren zoals optellen, aftrekken, vermenigvuldigen en delen met hele getallen. Maar als je het concept eenmaal begrijpt, kun je zelfs wetenschappelijke functies implementeren met de ingebouwde functies van Arduino.
Aan het einde van dit project weet u hoe u een 16x2 LCD en toetsenbord met Arduino moet gebruiken en ook hoe gemakkelijk het is om voor hen te programmeren met behulp van de direct beschikbare bibliotheken. U zult ook begrijpen hoe u uw Arduino moet programmeren om een bepaalde taak uit te voeren.
Vereiste materialen:
- Arduino Uno (elke versie werkt)
- 16 × 2 LCD-scherm
- 4 × 4 toetsenbord
- 9V batterij
- Breadboard en aansluitdraden
Schakelschema:
Het volledige schakelschema van dit Arduino Calculator Project wordt hierboven gegeven. De + 5V en massa-aansluiting die in het schakelschema wordt getoond, kan worden verkregen via de 5V- en massa-pin van de Arduino. De Arduino zelf kan worden gevoed vanaf uw laptop of via de DC-aansluiting met behulp van een 12V-adapter of 9V-batterij.
We gebruiken de LCD in 4-bits modus met Arduino, dus alleen de laatste vier databits van de LCD zijn verbonden met Arduino. Het toetsenbord heeft 8 uitgangspennen die moeten worden aangesloten van pin 0 naar pin 7, zoals hierboven weergegeven. U kunt de volgende verbindingstabel gebruiken om uw verbinding met Arduino te verifiëren, u kunt ook controleren of de 4x4-toetsenbordinterface met Arduino is verbonden.
Arduino Pin Naam: |
Verbonden met: |
D0 |
1 ste pin van het toetsenbord |
D1 |
2 e pin van het toetsenbord |
D2 |
3 rd pin van het toetsenbord |
D3 |
4 th pin van het toetsenbord |
D4 |
5 th pin van het toetsenbord |
D5 |
6 th pin van het toetsenbord |
D6 |
7 th pin van het toetsenbord |
D7 |
8 ste pin van het toetsenbord |
D8 |
Registreer geselecteerde pin van LCD (pin 4) |
D9 |
Pin van LCD inschakelen (pin 6) |
D10 |
Gegevenspin 4 (pin 11) |
D11 |
Gegevenspin 4 (pin 11) |
D12 |
Gegevenspin 4 (pin 11) |
D13 |
Gegevenspin 4 (pin 11) |
+ 5V |
Verbonden met Vdd-pin van LCD (pin 2) |
Grond |
Verbonden met Vss, Vee en RW pin van LCD (pin 1,3 en 5) |
Sommige Arduino-boards geven mogelijk een foutmelding tijdens het uploaden van een programma als er iets is aangesloten op pin 0 en pin1, dus als je iets ervaart, verwijder dan gewoon het toetsenbord tijdens het uploaden van het programma.
Zodra uw verbindingen zijn voltooid, ziet uw hardware er hieronder ongeveer zo uit
Arduino Calculator-programma:
Het volledige Arduino-programma voor dit project wordt aan het einde van dit project gegeven. De code is opgesplitst in kleine, betekenisvolle brokken en wordt hieronder uitgelegd.
Zoals eerder verteld, gaan we een LCD en toetsenbord met Arduino verbinden met behulp van bibliotheken. Laten we ze dus eerst aan onze Arduino IDE toevoegen. De bibliotheek voor LCD is standaard al in uw Arduino opgenomen, dus daar hoeven we ons geen zorgen over te maken. Klik voor de toetsenbordbibliotheek op de link om deze van Github te downloaden. U krijgt een ZIP-bestand en voegt deze bibliotheek vervolgens toe aan Arduino door Sketch -> Bibliotheek opnemen -> Voeg.ZIP-bestand toe en wijs de locatie naar dit gedownloade bestand. Als we klaar zijn, zijn we helemaal klaar om te programmeren.
Hoewel we een bibliotheek hebben gebruikt voor het gebruik van een toetsenbord, moeten we enkele details (hieronder weergegeven) over het toetsenbord naar de Arduino vermelden. De variabele ROWS en COLS geeft aan hoeveel rijen en kolommen ons toetsenbord heeft en de keymap toont de volgorde waarin de toetsen op het toetsenbord aanwezig zijn. Het toetsenbord dat ik in dit project gebruik, ziet er als volgt uit, maar de key map vertegenwoordigt ook hetzelfde.
Verderop hebben we vermeld op welke pinnen het toetsenbord is aangesloten met behulp van de variabele array rowPins en colPins .
const byte RIJEN = 4; // Vier rijen const byte COLS = 4; // Drie kolommen // Definieer de Keymap-tekensleutels = {{'1', '2', '3', 'A'}, {'4', '5', '6', 'B'}, { '7', '8', '9', 'C'}, {'*', '0', '#', 'D'}}; byte rowPins = {0, 1, 2, 3}; // Sluit toetsenbord ROW0, ROW1, ROW2 en ROW3 aan op deze Arduino-pinnen. byte colPins = {4, 5, 6, 7}; // Sluit toetsenbord COL0, COL1 en COL2 aan op deze Arduino-pinnen.
Zodra we hebben aangegeven welk type toetsenbord we gebruiken en hoe het is aangesloten, kunnen we het toetsenbord maken met behulp van die details met behulp van de onderstaande regel
Toetsenbord kpd = Toetsenbord (makeKeymap (toetsen), rowPins, colPins, ROWS, COLS); // Maak het toetsenbord
Evenzo moeten we ook vertellen op welke pinnen van de Arduino het LCD-scherm is aangesloten. Volgens ons schakelschema zouden de definities er als volgt uitzien
const int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Pinnen waarop LCD is aangesloten LiquidCrystal lcd (rs, en, d4, d5, d6, d7); // maak de LCD
Binnen de setup- functie geven we alleen de naam van het project weer en gaan dan verder naar de while-lus waar het hoofdproject ligt.
Kortom, we moeten controleren of er iets op het toetsenbord wordt getypt, als we getypt worden, moeten we herkennen wat er wordt getypt en het vervolgens naar een variabele converteren wanneer de "=" wordt ingedrukt, moeten we het resultaat berekenen en het vervolgens weergeven op het LCD-scherm. Dit is precies wat er binnen de lusfunctie wordt gedaan, zoals hieronder wordt weergegeven
key = kpd.getKey (); // opslaan van ingedrukte sleutelwaarde in een char if (key! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult ();
Wat er binnen elke functie gebeurt, wordt uitgelegd aan de hand van de commentaarregels, doorloop de onderstaande code en speel ermee om te begrijpen hoe het werkelijk werkt. Als je twijfelt over een specifieke regel, gebruik dan gerust de commentaarsectie of de forums.
Simulatie van Arduino Calculator:
We kunnen ook proberen het project te simuleren met Proteus-software. Proteus heeft zelf geen Arduino-component, maar kan eenvoudig worden gedownload en aan zijn bibliotheek worden toegevoegd. Zodra je de Arduino-component op Proteus hebt, voeg je gewoon een alfanumeriek LCD-scherm en toetsenbord toe om de verbinding te maken zoals weergegeven in het schakelschema.
Download dan het hex-bestand van hier en voeg het toe aan de Arduino door te dubbelklikken op board in Proteus en wijs het “programmabestand” naar dit gedownloade hex-bestand. Een momentopname van de simulatie wordt hieronder getoond, de volledige werking wordt getoond in de onderstaande video.
Opmerking: het gegeven hex-bestand is niet hetzelfde als het origineel van het onderstaande programma. Het is gewijzigd sinds de toetsenbordindeling van het simulatietoetsenbord en het daadwerkelijke hardwaretoetsenbord anders is.
Werking van Arduino Calculator:
Maak de aansluitingen volgens het schakelschema en upload de onderstaande code. Als het een fout vertoont, zorg er dan voor dat u de bibliotheek hebt toegevoegd volgens de bovenstaande instructie. U kunt ook de simulatie proberen om te controleren of het probleem bij uw hardware ligt. Als alles is gedaan zoals het hoort, ziet uw hardware er hieronder ongeveer zo uit en wordt dit op het LCD-scherm weergegeven
Omdat het hier gebruikte toetsenbord niet de juiste markeringen heeft, ben ik ervan uitgegaan dat de alfabetten operators zijn zoals hieronder vermeld
Teken op toetsenbord |
Gingen er vanuit dat |
"EEN" |
Optellen (+) |
"B" |
Aftrekken (-) |
"C" |
Vermenigvuldiging (*) |
"D" |
Divisie (/) |
"*" |
Helder (C) |
"#" |
Is gelijk aan (=) |
U kunt een markering gebruiken om te schrijven over wat elke knop werkelijk vertegenwoordigt.
Als dat klaar is, kunt u direct aan de slag met de rekenmachine. Typ het nummer en verschijnt op de tweede regel, druk op de operand en typ uw tweede nummer en druk ten slotte op de toets "#" om uw resultaat te krijgen. Je kunt ook proberen om deze op touchscreen gebaseerde Arduino-rekenmachine te bouwen.