INHOUDSOPGAWE:

Arduino -sakrekenaar met 4X4 -klavier: 4 stappe (met foto's)
Arduino -sakrekenaar met 4X4 -klavier: 4 stappe (met foto's)

Video: Arduino -sakrekenaar met 4X4 -klavier: 4 stappe (met foto's)

Video: Arduino -sakrekenaar met 4X4 -klavier: 4 stappe (met foto's)
Video: Stappenmotor met H-Bridge L298n en Arduino Nano. 2024, November
Anonim
Image
Image

In hierdie handleiding bou ons ons eie sakrekenaar met Arduino. Die waardes kan via 'n klavier (4 × 4 klavier) gestuur word, en die resultaat kan op 'n LCD -skerm besigtig word. Hierdie sakrekenaar kan eenvoudige bewerkings soos optelling, aftrekking, vermenigvuldiging en deling met heelgetalle uitvoer. Maar sodra u die konsep verstaan, kan u selfs wetenskaplike funksies implementeer met die ingeboude funksies van Arduino.

Voorrade

Arduino Uno

16 × 2 LCD -skerm

4 × 4 Toetsenbord

Broodbord

Springkabels

Arduino kabel

Stap 1: Skema's

Stap 2: Installasie van biblioteek:

Soos vroeër gesê, gaan ons 'n LCD en bedieningspaneel met Arduino koppel met behulp van biblioteke. Laat ons hulle dus eers by ons Arduino IDE voeg. Die biblioteek vir LCD is standaard reeds by u Arduino ingesluit, sodat ons ons nie daaroor hoef te bekommer nie. Vir die sleutelbordbiblioteek (klik op die skakel om dit van Github af te laai). U kry 'n zip -lêer en voeg hierdie lib by Arduino by Sketch -> Include Library -> Voeg. ZIP -lêer by en wys die plek na die afgelaaide lêer. As ons klaar is, is ons gereed vir programmering.

Stap 3: Bronkode:

/*

© Techtronic Harsh

*/

#insluit

#insluit

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

const byte RYDE = 4; const byte COLS = 4;

char sleutels [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 = Keypad (makeKeymap (sleutels), rowPins, colPins, ROWS, COLS);

boolean presentValue = false;

boolean next = false; boolean final = false; String num1, num2; int antwoord; char op;

leemte opstelling ()

{lcd.begin (16, 2); lcd.setCursor (0, 0); lcd.print ("Techtronic Harsh"); lcd.setCursor (0, 1); lcd.print ("Sakrekenaar"); vertraging (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Like En"); lcd.setCursor (0, 1); lcd.print ("teken ons in"); vertraging (3000); lcd.clear (); }

leemte -lus () {

char sleutel = myKeypad.getKey ();

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

{if (presentValue! = true) {num1 = num1 + sleutel; int numLength = num1.length (); lcd.setCursor (15 - numLength, 0); // om 'n wit spasie aan te pas vir operateur lcd.print (num1); } anders {num2 = num2 + sleutel; int numLength = num2.length (); lcd.setCursor (15 - numLength, 1); lcd.print (num2); finale = waar; }}

anders as (presentValue == false && sleutel! = NO_KEY && (sleutel == '/' || sleutel == '*' || sleutel == '-' || sleutel == '+'))

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

anders as (final == true && key! = NO_KEY && key == '=') {

as (op == ' +') {antwoord = num1.toInt () + num2.toInt (); } anders as (op == ' -') {antwoord = num1.toInt () - num2.toInt (); } anders as (op == ' *') {antwoord = num1.toInt () * num2.toInt (); } anders as (op == ' /') {antwoord = num1.toInt () / num2.toInt (); } lcd.clear (); lcd.setCursor (15, 0); lcd.autoscroll (); lcd.print (antwoord); lcd.noAutoscroll (); } anders as (sleutel! = NO_KEY && sleutel == 'C') {lcd.clear (); presentValue = vals; finale = vals; num1 = ""; num2 = ""; antwoord = 0; op = ''; }}

/*

© Techtronic Harsh

*/

Stap 4: Werk:

Maak die verbindings volgens die stroomdiagram en laai die kode op. As dit fout toon, maak seker dat u die biblioteek bygevoeg het volgens die instruksies hierbo.

Karakter op die klavier en veronderstelling:

  • “A” - Byvoeging (+)
  • “B” - Aftrekking (-)
  • “C” - Vermenigvuldiging (*)
  • “D” - Afdeling (/)
  • “*” - Duidelik (C)
  • “#” - Gelyk (=)

Aanbeveel: