2025 Autor: John Day | [email protected]. Viimati modifitseeritud: 2025-01-13 06:57
Tere poisid selles juhendis, teeme Arduino abil kalkulaatori, mis saab põhilisi arvutusi teha. Põhimõtteliselt võtame sisendi 4x4 klaviatuurilt ja prindime andmed 16x2 lcd ekraanile ja arduino teeb arvutused.
Samm: asjad, mida vajate
Selle juhendi jaoks vajame järgmisi asju: Arduino Uno (mis tahes versioon töötab)
16 × 2 LCD -ekraan
4 × 4 klaviatuur 9V aku Leivaplaat Juhtmete ühendamine
Samm 2: Ühendused
Selle Arduino kalkulaatoriprojekti täielik vooluahela skeem on toodud ülal. Lülitusskeemil näidatud +5 V ja maandusühenduse saab Arduino 5 V ja maanduspistikust. Arduino saab ise toita oma sülearvutist või alalisvoolu pistikupesast, kasutades 12 V adapterit või 9 V akut. Me kasutame LCD-d Arduinoga 4-bitises režiimis, nii et Arduinoga on ühendatud ainult viimased neli andmebitti. Klaviatuuril on 8 väljundnõela, mis tuleb ühendada tihvtiga 0 kuni tihvtiga 7, nagu ülal näidatud. Mõned Arduino tahvlid võivad programmi üleslaadimisel näidata tõrget, kui poldi 0 ja tihvtiga 1 on ühendatud midagi. programmi üleslaadimisel klahvistikku.
3. samm: kood
Kopeerige järgmine kood ja laadige sinna oma arduino:/ * * Arduino klaviatuuri kalkulaatoriprogramm */#sisaldab "LiquidCrystal.h" // LCD päisefaili aadressilt https://www.arduino.cc/en/Reference/LiquidCrystal# lisada "Keypad.h" // Klaviatuuri päisefail https://github.com/Chris--A/Keypadconst bait ROWS = 4; // Neli ridakonstituudi baiti COLS = 4; // Kolm veergu // Määrake võtmekaardi võtmed [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; bait rowPins [ROWS] = {0, 1, 2, 3}; // Ühendage klaviatuur ROW0, ROW1, ROW2 ja ROW3 nende Arduino nööpnõeltega. Baiti colPins [COLS] = {4, 5, 6, 7}; // Ühenda klaviatuur COL0, COL1 ja COL2 nende Arduino nööpnõeltega. Klaviatuur kpd = Klaviatuur (makeKeymap (võtmed), rowPins, colPins, ROWS, COLS); // Klaviatuurikonstti loomine int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Nööpnõelad, millega LCD on ühendatudLiquidCrystal lcd (rs, en, d4, d5, d6, d7); pikk Num1, Num2, Number; char võti, tegevus; loogiline tulemus = vale; void setup () {lcd.begin (16, 2); // Kasutame 16*2 LCD -ekraani lcd.print ("DIY Calculator"); // Sissejuhatava teate kuvamine lcd.setCursor (0, 1); // määra kursor veergu 0, rea 1 viivitus (2000); // Oodake, kuni ekraanil kuvatakse teave lcd.clear (); // Seejärel puhasta see} void loop () {key = kpd.getKey (); // vajutatud klahviväärtuse salvestamine sümbolisse (võti! = NO_KEY) DetectButtons (); if (result == true) CalculateResult (); DisplayResult (); } tühine DetectButtons () {lcd.clear (); // Seejärel puhasta see, kui (võti == '*') // Kui tühistamisnuppu vajutatakse {Serial.println ("Button Cancel"); Arv = arv1 = arv2 = 0; result = false;} if (key == '1') // Kui nuppu 1 vajutatakse {Serial.println ("Button 1"); kui (arv == 0) arv = 1; else Arv = (arv*10) + 1; // Vajutatakse kaks korda} if (võti == '4') // Kui nuppu 4 vajutatakse {Serial.println ("Nupp 4"); kui (arv == 0) arv = 4; else Arv = (arv*10) + 4; // Vajutatakse kaks korda} if (key == '7') // Kui nuppu 7 vajutatakse {Serial.println ("Button 7"); kui (arv == 0) arv = 7; else Arv = (arv*10) + 7; // Vajutati kaks korda} if (key == '0') {Serial.println ("Button 0"); // Nupule 0 vajutatakse, kui (Number == 0) Number = 0; else Arv = (arv*10) + 0; // Vajutatakse kaks korda}, kui (võti == '2') // Nupp 2 on vajutatud {Serial.println ("Button 2"); kui (arv == 0) arv = 2; else Arv = (arv*10) + 2; // Vajutati kaks korda} if (key == '5') {Serial.println ("Button 5"); kui (arv == 0) arv = 5; else Arv = (arv*10) + 5; // Vajutati kaks korda} if (key == '8') {Serial.println ("Button 8"); kui (arv == 0) arv = 8; else Arv = (arv*10) + 8; // Vajutati kaks korda} if (key == '#') {Serial.println ("Button Equal"); Num2 = arv; tulemus = tõene; } if (võti == '3') {Serial.println ("Button 3"); kui (arv == 0) arv = 3; else Arv = (arv*10) + 3; // Vajutati kaks korda} if (võti == '6') {Serial.println ("Button 6"); kui (arv == 0) arv = 6; else Arv = (arv*10) + 6; // Vajutati kaks korda} if (võti == '9') {Serial.println ("Button 9"); kui (arv == 0) arv = 9; else Arv = (arv*10) + 9; // Vajutati kaks korda} if (võti == 'A' || võti == 'B' || võti == 'C' || võti == 'D') // Nuppude tuvastamine veerus 4 {Num1 = Number; Arv = 0; if (võti == 'A') {Serial.println ("Lisamine"); action = '+';} if (võti == 'B') {Serial.println ("Lahutamine"); tegevus = '-'; } if (võti == 'C') {Serial.println ("Korrutamine"); action = '*';} if (võti == 'D') {Serial.println ("Devesion"); action = '/';} viivitus (100); }}
tühine CalculateResult () {if (action == '+') Number = Num1+Num2; if (action == '-') Number = Num1-Num2; if (action == '*') Number = Num1*Num2; if (action == '/') Number = Num1/Num2; } tühine DisplayResult () {lcd.setCursor (0, 0); // määra kursor veergu 0, rida 1 lcd.print (Num1); lcd.print (tegevus); lcd.print (Num2); if (tulemus == tõene) {lcd.print ("="); lcd.print (arv);} // Kuva tulemus lcd.setCursor (0, 1); // määrake kursor veergu 0, rida 1 lcd.print (Number); // Kuva tulemus}
4. samm: kalkulaatori väljund
Niisiis lõpetasime ühendused ja laadisime koodi üles arduinole ning selle aeg ühendada toide ja teha mõned arvutused ning nagu näete, teen arvutusi klaviatuuriga ja tulemusi näete LCD -ekraanil. Nii et nautige arduino abil oma kalkulaatori valmistamist.