Turinys:
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Sveiki, šios instrukcijos vaikinai, mes pagaminsime skaičiuotuvą naudodami „Arduino“, kuris gali atlikti pagrindinius skaičiavimus. Taigi iš esmės mes imsimės įvesties iš 4x4 klaviatūros ir išspausdinsime duomenis 16x2 LCD ekrane, o „arduino“atliks skaičiavimus.
1 žingsnis: reikalingi dalykai
Šiems nurodymams mums reikės šių dalykų: „Arduino Uno“(bet kuri versija veiks)
16 × 2 LCD ekranas
4 × 4 klaviatūra 9 V baterija Duonos lenta Laidų prijungimas
2 žingsnis: jungtys
Visa šio „Arduino“skaičiuoklės projekto schema pateikta aukščiau. +5 V ir įžeminimo jungtis, parodyta grandinės schemoje, galima gauti iš „Arduino“5 V ir įžeminimo kaiščio. Pats „Arduino“gali būti maitinamas iš nešiojamojo kompiuterio arba per nuolatinės srovės lizdą, naudojant 12 V adapterį arba 9 V bateriją. Mes naudojame „Arduino“4 bitų režimą, todėl tik paskutiniai keturi LCD duomenų bitai yra prijungti prie „Arduino“. Klaviatūra turės 8 išvesties kaiščius, kurie turi būti prijungti nuo 0 kaiščio iki 7 kaiščio, kaip parodyta aukščiau. Kai kurios „Arduino“plokštės gali rodyti klaidą, kai įkeliama programa, jei prie 0 ir 1 kaiščių yra kažkas prijungto, taigi, jei pastebėsite, tiesiog pašalinkite įkeliant programą klaviatūra.
3 žingsnis: kodas
Nukopijuokite šį kodą ir įkelkite į jį savo arduino:/ * * „Arduino“klaviatūros skaičiuoklės programa */#apima „LiquidCrystal.h“// LCD antraštės failą iš https://www.arduino.cc/en/Reference/LiquidCrystal# įtraukti „Keypad.h“// Klaviatūros antraštės failas iš https://github.com/Chris--A/Keypadconst baitas ROWS = 4; // Keturios eilutės baitas COLS = 4; // Trys stulpeliai // Apibrėžkite „Keymapchar“raktus [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; baitų eilutėPins [ROWS] = {0, 1, 2, 3}; // Prijunkite klaviatūrą ROW0, ROW1, ROW2 ir ROW3 prie šių „Arduino“kaiščių. Baitų colPins [COLS] = {4, 5, 6, 7}; // Prijunkite klaviatūrą COL0, COL1 ir COL2 prie šių „Arduino“kaiščių. Klaviatūra kpd = Klaviatūra (makeKeymap (klavišai), rowPins, colPins, ROWS, COLS); // Sukurkite „Keypadconst“int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // Smeigtukai, prie kurių prijungtas LCD Skystas kristalas LCD (rs, en, d4, d5, d6, d7); ilgas skaičius1, skaičius2, skaičius; char raktas, veiksmas; loginis rezultatas = klaidinga; void setup () {lcd.begin (16, 2); // Mes naudojame 16*2 LCD ekraną lcd.print ("pasidaryk pats" skaičiuotuvas); // Rodyti įvadinį pranešimą lcd.setCursor (0, 1); // nustatykite žymeklį į 0 stulpelį, 1 eilutės uždelsimas (2000); // Palaukite, kol ekrane bus rodoma informacija lcd.clear (); // Tada išvalykite} void loop () {key = kpd.getKey (); // išsaugoti nuspaustą klavišo reikšmę charif (raktas! = NO_KEY) DetectButtons (); if (rezultatas == tiesa) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Tada išvalykite, jei (klavišas == '*') // Jei atšaukimo mygtukas paspaudžiamas {Serial.println ("Button Cancel"); Skaičius = skaičius1 = skaičius2 = 0; rezultatas = klaidingas;} if (raktas == '1') // Jei paspaustas 1 mygtukas {Serial.println ("1 mygtukas"); jei (Skaičius == 0) Skaičius = 1; else Skaičius = (Skaičius*10) + 1; // Paspaudžiamas du kartus} if (key == '4') // Jei paspaudžiamas 4 mygtukas {Serial.println ("4 mygtukas"); jei (Skaičius == 0) Skaičius = 4; else Skaičius = (Skaičius*10) + 4; // Paspaudžiamas du kartus} if (key == '7') // Jei paspaudžiamas 7 mygtukas {Serial.println ("7 mygtukas"); jei (Skaičius == 0) Skaičius = 7; else Skaičius = (Skaičius*10) + 7; // Paspaudžiamas du kartus} if (key == '0') {Serial.println ("Button 0"); // Mygtukas 0 paspaudžiamas, jei (Skaičius == 0) Skaičius = 0; else Skaičius = (Skaičius*10) + 0; // Paspaudžiamas du kartus}, jei (klavišas == '2') // 2 mygtukas paspaudžiamas {Serial.println ("2 mygtukas"); jei (Skaičius == 0) Skaičius = 2; else Skaičius = (Skaičius*10) + 2; // Paspaudžiamas du kartus} if (key == '5') {Serial.println ("5 mygtukas"); jei (skaičius == 0) skaičius = 5; else Skaičius = (Skaičius*10) + 5; // Paspaudžiamas du kartus} if (key == '8') {Serial.println ("8 mygtukas"); jei (Skaičius == 0) Skaičius = 8; else Skaičius = (Skaičius*10) + 8; // Paspaudžiamas du kartus} if (key == '#') {Serial.println ("Button Equal"); Num2 = skaičius; rezultatas = tiesa; } if (raktas == '3') {Serial.println ("3 mygtukas"); jei (Skaičius == 0) Skaičius = 3; else Skaičius = (Skaičius*10) + 3; // Paspaudžiamas du kartus} if (key == '6') {Serial.println ("6 mygtukas"); jei (Skaičius == 0) Skaičius = 6; else Skaičius = (Skaičius*10) + 6; // Paspaudžiamas du kartus} if (key == '9') {Serial.println ("Button 9"); jei (skaičius == 0) skaičius = 9; else Skaičius = (Skaičius*10) + 9; // Paspaudžiamas du kartus} if (klavišas == 'A' || klavišas == 'B' || klavišas == 'C' || klavišas == 'D') // Mygtukai 4 stulpelyje {Num1 = skaičius; Skaičius = 0; if (raktas == 'A') {Serial.println ("Papildymas"); action = '+';} if (raktas == 'B') {Serial.println ("Atimtis"); veiksmas = '-'; } if (raktas == 'C') {Serial.println ("Daugyba"); action = '*';} if (raktas == 'D') {Serial.println ("Devesion"); action = '/';} uždelsimas (100); }}
void CalculateResult () {if (action == '+') Number = Num1+Num2; if (veiksmas == '-') Skaičius = Num1-Num2; if (veiksmas == '*') Skaičius = Num1*Num2; jei (veiksmas == '/') Skaičius = Num1/Num2; } negalioja DisplayResult () {lcd.setCursor (0, 0); // nustatykite žymeklį į 0 stulpelį, 1 eilutė lcd.print (Num1); lcd.print (veiksmas); lcd.print (Num2); if (rezultatas == tiesa) {lcd.print ("="); lcd.print (skaičius);} // Rodyti rezultatą lcd.setCursor (0, 1); // nustatykite žymeklį į 0 stulpelį, 1 eilutė lcd.print (skaičius); // Rodyti rezultatą}
4 žingsnis: skaičiuotuvo išvestis
Taigi mes užbaigėme ryšius ir įkėlėme kodą į „arduino“, atėjo laikas prijungti maitinimą ir atlikti tam tikrus skaičiavimus. Kaip matote, aš skaičiuoju klaviatūra, o rezultatus galite pamatyti LCD. Taigi smagiai padarykite savo „pasidaryk pats“skaičiuoklę naudodami „arduino“.