Inhoudsopgave:

Arduino-rekenmachine met 4X4-toetsenbord - Ajarnpa
Arduino-rekenmachine met 4X4-toetsenbord - Ajarnpa

Video: Arduino-rekenmachine met 4X4-toetsenbord - Ajarnpa

Video: Arduino-rekenmachine met 4X4-toetsenbord - Ajarnpa
Video: Arduino Calculator using 4×4 Keypad and LCD | Full Setup + Code | Tinkercad 2024, November
Anonim
Image
Image

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. Deze rekenmachine kan eenvoudige bewerkingen zoals optellen, aftrekken, vermenigvuldigen en delen met hele getallen uitvoeren. Maar als je het concept eenmaal begrijpt, kun je zelfs wetenschappelijke functies implementeren met de ingebouwde functies van Arduino.

Benodigdheden

Arduino Uno

16 × 2 LCD-scherm

4×4 toetsenbord

Breadboard

Startkabels

Arduino-kabel

Stap 1: Schema's

Stap 2: Installatie van bibliotheek:

Zoals eerder verteld, gaan we een LCD en toetsenbord koppelen aan Arduino met behulp van bibliotheken. Dus laten we ze eerst toevoegen aan onze Arduino IDE. De bibliotheek voor LCD is standaard al in uw Arduino opgenomen, dus daar hoeven we ons geen zorgen over te maken. Voor toetsenbordbibliotheek (klik op de link om deze te downloaden van Github). U krijgt een ZIP-bestand en voegt deze lib vervolgens toe aan Arduino via Sketch -> Include Library -> Add. ZIP-bestand en verwijs de locatie naar dit gedownloade bestand. Als we klaar zijn, zijn we helemaal klaar om te programmeren.

Stap 3: Broncode:

/*

© Techtronic Hars

*/

#erbij betrekken

#erbij betrekken

LiquidCrystal-lcd (0, 1, 2, 3, 4, 5);

const byte RIJEN = 4; constbyte COLS = 4;

char-toetsen [ROWS] [COLS] = {

{'1', '2', '3', '+'}, {'4', '5', '6', '-'}, {'7', '8', '9', ' *'}, {'C', '0', '=', '/'} }; byte rowPins [ROWS] = {13, 12, 11, 10}; byte colPins[COLS] = {9, 8, 7, 6};

Toetsenbord myKeypad = Toetsenbord (makeKeymap (toetsen), rowPins, colPins, RIJEN, COLS);

boolean presentValue = false;

boolean volgende = onwaar; booleaanse finale = onwaar; Tekenreeks num1, num2; int antwoord; char op;

ongeldige setup()

{ lcd.begin (16, 2); lcd.setCursor(0, 0); lcd.print("Techtronic Harsh"); lcd.setCursor(0, 1); lcd.print ("Rekenmachine"); vertraging (3000); lcd.wissen(); lcd.setCursor(0, 0); lcd.print("Vind ik leuk en"); lcd.setCursor(0, 1); lcd.print ("Abonneer ons"); vertraging (3000); lcd.wissen(); }

lege lus(){

char key = mijnKeypad.getKey();

if (key != NO_KEY && (key=='1'||key=='2'||key=='3'||key=='4'||key=='5'||key= ='6'||key=='7'||key=='8'||key=='9'||key=='0'))

{if (presentValue != true) { num1 = num1 + sleutel; int aantalLengte = aantal1.lengte(); lcd.setCursor (15 - numLength, 0); // om één witruimte aan te passen voor operator lcd.print (num1); } else { num2 = num2 + sleutel; int aantalLengte = aantal2.lengte(); lcd.setCursor (15 - numLength, 1); lcd.print(num2); definitief = waar; } }

else if (presentValue == false && key != NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))

{if (presentValue == false) { presentValue = true; op = sleutel; lcd.setCursor(15, 0); lcd.print(op); } }

else if (final == true && key != NO_KEY && key == '='){

if (op == '+'){ antwoord = num1.toInt() + num2.toInt(); } else if (op == '-'){ antwoord = num1.toInt() - num2.toInt(); } else if (op == '*'){ antwoord = num1.toInt() * num2.toInt(); } else if (op == '/'){ antwoord = num1.toInt() / num2.toInt(); } lcd.clear(); lcd.setCursor(15, 0); lcd.autoscroll(); lcd.print(antwoord); lcd.noAutoscroll(); } else if (key != NO_KEY && key == 'C'){ lcd.clear(); presentValue = onwaar; definitief = onwaar; nummer1 = ""; nummer2 = ""; antwoord = 0; op = ' '; } }

/*

© Techtronic Hars

*/

Stap 4: Werken:

Maak de aansluitingen volgens het schakelschema en upload de code. Als er een fout wordt weergegeven, zorg er dan voor dat u de bibliotheek hebt toegevoegd volgens de bovenstaande instructie.

Karakter op toetsenbord en veronderstelling:

  • “A” - Toevoeging (+)
  • “B” - Aftrekken (-)
  • “C” - Vermenigvuldiging (*)
  • “D” - Divisie (/)
  • “*” - Wissen (C)
  • “#” - Is gelijk aan (=)

Aanbevolen: