Satura rādītājs:

Arduino kalkulators, izmantojot 4X4 tastatūru: 4 soļi (ar attēliem)
Arduino kalkulators, izmantojot 4X4 tastatūru: 4 soļi (ar attēliem)

Video: Arduino kalkulators, izmantojot 4X4 tastatūru: 4 soļi (ar attēliem)

Video: Arduino kalkulators, izmantojot 4X4 tastatūru: 4 soļi (ar attēliem)
Video: Casio Classwiz FX-991EX FX-87DEX FX-570EX Определитель матрицы и инверсия матрицы 2024, Jūlijs
Anonim
Image
Image

Šajā apmācībā mēs izveidosim savu kalkulatoru ar Arduino. Vērtības var nosūtīt, izmantojot tastatūru (4 × 4 tastatūra), un rezultātu var apskatīt LCD ekrānā. Šis kalkulators varētu veikt vienkāršas darbības, piemēram, saskaitīšanu, atņemšanu, reizināšanu un dalīšanu ar veseliem skaitļiem. Bet, kad esat sapratis šo koncepciju, jūs varat īstenot pat zinātniskas funkcijas, izmantojot Arduino iebūvētās funkcijas.

Piegādes

Arduino Uno

16 × 2 LCD displejs

4 × 4 tastatūra

Maizes dēlis

Jumper kabeļi

Arduino kabelis

1. darbība. Shēmas

2. darbība: bibliotēkas instalēšana:

Kā jau iepriekš teicām, izmantojot bibliotēkas, mēs sasaistīsim LCD un tastatūru ar Arduino. Tāpēc vispirms pievienosim tos mūsu Arduino IDE. LCD bibliotēka pēc noklusējuma jau ir iekļauta jūsu Arduino, tāpēc mums par to nav jāuztraucas. Tastatūras bibliotēkai (noklikšķiniet uz saites, lai to lejupielādētu no Github). Jūs saņemsiet ZIP failu, pēc tam pievienojiet šo lib Arduino, izmantojot skici -> Iekļaut bibliotēku -> Pievienot. ZIP failu un norādiet atrašanās vietu uz šo lejupielādēto failu. Kad tas ir izdarīts, mēs visi esam gatavi programmēšanai.

3. darbība. Avota kods:

/*

© Techtronic skarbs

*/

#iekļaut

#iekļaut

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

const baits ROWS = 4; const baits COLS = 4;

Char taustiņi [ROWS] [COLS] = {

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

Tastatūra myKeypad = Tastatūra (makeKeymap (taustiņi), rowPins, colPins, ROWS, COLS);

Būla pašreizējā vērtība = nepatiesa;

Būla nākamais = nepatiess; Būla fināls = nepatiess; Virkne num1, num2; int atbilde; char op;

anulēts iestatījums ()

{lcd.sākt (16, 2); lcd.setCursor (0, 0); lcd.print ("Techtronic skarbs"); lcd.setCursor (0, 1); lcd.print ("Kalkulators"); kavēšanās (3000); lcd.clear (); lcd.setCursor (0, 0); lcd.print ("Patīk un"); lcd.setCursor (0, 1); lcd.print ("Abonēt mūs"); kavēšanās (3000); lcd.clear (); }

void loop () {

char taustiņš = myKeypad.getKey ();

if (atslēga! = NO_KEY && (taustiņš == '1' || taustiņš == '2' || taustiņš == '3' || taustiņš == '4' || taustiņš == '5' || taustiņš = = '6' || taustiņš == '7' || taustiņš == '8' || taustiņš == '9' || taustiņš == '0'))

{if (presentValue! = true) {num1 = num1 + atslēga; int numLength = num1.length (); lcd.setCursor (15 - numLength, 0); // lai pielāgotu vienu atstarpi operatoram lcd.print (num1); } cits {num2 = num2 + taustiņš; int numLength = num2.length (); lcd.setCursor (15 - numLength, 1); lcd.print (num2); fināls = taisnība; }}

citādi, ja (presentValue == false && key! = NO_KEY && (key == '/' || key == '*' || key == '-' || key == '+'))

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

citādi, ja (galīgais == patiesais &&!! = NO_KEY && key == '=') {

ja (op == ' +') {atbilde = num1.toInt () + num2.toInt (); } cits if (op == ' -') {answer = num1.toInt () - num2.toInt (); } cits if (op == ' *') {answer = num1.toInt () * num2.toInt (); } cits if (op == ' /') {answer = num1.toInt () / num2.toInt (); } lcd.clear (); lcd.setCursor (15, 0); lcd.autoscroll (); lcd.print (atbilde); lcd.noAutoscroll (); } cits if (atslēga! = NO_KEY && key == 'C') {lcd.clear (); presentValue = nepatiess; galīgais = nepatiess; num1 = ""; num2 = ""; atbilde = 0; op = ""; }}

/*

© Techtronic skarbs

*/

4. solis: darbs:

Izveidojiet savienojumus saskaņā ar shēmu un augšupielādējiet kodu. Ja tas parāda kļūdu, pārliecinieties, vai esat pievienojis bibliotēku saskaņā ar iepriekš sniegtajiem norādījumiem.

Raksturs tastatūrā un pieņēmums:

  • “A” - papildinājums (+)
  • “B” - atņemšana (-)
  • “C” - reizināšana (*)
  • “D” - nodaļa (/)
  • “*” - skaidrs (C)
  • “#” - vienāds (=)

Ieteicams: