Mundarija:

1602 LCD va 4x4 klaviatura yordamida Arduino DIY kalkulyatori: 4 qadam
1602 LCD va 4x4 klaviatura yordamida Arduino DIY kalkulyatori: 4 qadam

Video: 1602 LCD va 4x4 klaviatura yordamida Arduino DIY kalkulyatori: 4 qadam

Video: 1602 LCD va 4x4 klaviatura yordamida Arduino DIY kalkulyatori: 4 qadam
Video: Arduino darsi | Lcd 1602 display ni Arduino orqali boshqarish | O'zbek tilida 2024, Noyabr
Anonim
1602 LCD va 4x4 klaviatura yordamida Arduino DIY kalkulyatori
1602 LCD va 4x4 klaviatura yordamida Arduino DIY kalkulyatori

Assalomu alaykum bolalar, biz Arduino yordamida asosiy hisob -kitoblarni bajaradigan kalkulyator tayyorlaymiz. Shunday qilib, biz asosan 4x4 klaviaturadan ma'lumotlarni olamiz va ma'lumotlarni 16x2 lcd displeyda chop etamiz va arduino hisob -kitoblarni amalga oshiradi.

1 -qadam: Sizga kerak bo'lgan narsalar

Sizga kerak bo'lgan narsalar
Sizga kerak bo'lgan narsalar
Sizga kerak bo'lgan narsalar
Sizga kerak bo'lgan narsalar
Sizga kerak bo'lgan narsalar
Sizga kerak bo'lgan narsalar
Sizga kerak bo'lgan narsalar
Sizga kerak bo'lgan narsalar

Bu ko'rsatmalar uchun bizga quyidagilar kerak bo'ladi: Arduino Uno (har qanday versiya ishlaydi)

16 × 2 LCD displey

4 × 4 klaviatura 9V akkumulyator paneliBarmoqlarni ulash

2 -qadam: ulanishlar

Ulanishlar
Ulanishlar
Ulanishlar
Ulanishlar

Arduino Kalkulyator loyihasining to'liq sxemasi yuqorida keltirilgan. O'chirish sxemasida ko'rsatilgan +5V va erga ulanishni Arduino -ning 5V va topraklama pinidan olish mumkin. Arduino-ni noutbukdan yoki shahar uyasi orqali 12V adapter yoki 9V batareya yordamida quvvatlantirish mumkin, biz Arduino-da LCD-ni 4-bitli rejimda ishlaymiz, shuning uchun LCD-ning oxirgi to'rtta ma'lumoti Arduino-ga ulangan. Klaviaturada yuqoridagi rasmda ko'rsatilgandek, pin 7 dan pin 7 gacha ulanishi kerak bo'lgan 8 ta chiqish pimi bo'ladi, agar Arduino -ning ba'zi platalari 0 va pin1 -ga ulangan biror narsa bo'lsa, dasturni yuklashda xato ko'rsatishi mumkin. dasturni yuklashda klaviatura.

3 -qadam: kod

Kod
Kod

Quyidagi kodni nusxa ko'chiring va unga arduino -ni yuklang:/ * * Arduino klaviatura kalkulyatori dasturi */#"LiquidCrystal.h" ni o'z ichiga oladi // https://www.arduino.cc/en/Reference/LiquidCrystal# dan LCD uchun sarlavha fayli. "Keypad.h" ni o'z ichiga oladi // Klaviatura uchun sarlavha fayli https://github.com/Chris--A/Keypadconst baytidan ROWS = 4; // To'rt qatorli bayt COLS = 4; // Uchta ustun // Klaviatura tugmachalarini belgilang [ROWS] [COLS] = {{'7', '8', '9', 'D'}, {'4', '5', '6', ' C '}, {' 1 ',' 2 ',' 3 ',' B '}, {'*',' 0 ','#',' A '}}; bayt qatorlari [ROWS] = {0, 1, 2, 3}; // ROW0, ROW1, ROW2 va ROW3 klaviaturasini ushbu Arduino pinlariga ulang.byte colPins [COLS] = {4, 5, 6, 7}; // COL0, COL1 va COL2 klaviaturasini ushbu Arduino pinlariga ulang. Keypad kpd = Klaviatura (makeKeymap (tugmalar), rowPins, colPins, ROWS, COLS); // Klaviatura panelini yarating int rs = 8, en = 9, d4 = 10, d5 = 11, d6 = 12, d7 = 13; // LCD ulangan pinlarLiquidCrystal lcd (rs, en, d4, d5, d6, d7); uzun Num1, Num2, Raqam; char tugmasi, harakat; boolean result = false; void setup () {lcd.begin (16, 2); // Biz 16*2 LCD displeydan foydalanmoqdamiz lcd.print ("DIY kalkulyatori"); // lcd.setCursor kirish xabarini ko'rsatish (0, 1); // kursorni 0 -ustun, 1 -satr kechiktirishi (2000); // displey ma'lumoti ko'rsatilishini kuting lcd.clear (); // Keyin tozalang} void loop () {key = kpd.getKey (); // bosilgan kalit qiymatini xarifda saqlash (kalit! = NO_KEY) DetectButtons (); if (natija == rost) CalculateResult (); DisplayResult (); } void DetectButtons () {lcd.clear (); // Keyin tozalang, agar (key == '*') // Bekor qilish tugmasi bosilsa {Serial.println ("Tugmani bekor qilish"); Raqam = Num1 = Num2 = 0; result = false;} if (key == '1') // Agar 1 -tugma bosilsa {Serial.println ("1 -tugma"); agar (Raqam == 0) Raqam = 1; else Raqam = (Raqam*10) + 1; // ikki marta bosildi} if (key == '4') // Agar 4 -tugma bosilsa {Serial.println ("Button 4"); agar (Raqam == 0) Raqam = 4; else Raqam = (Raqam*10) + 4; // ikki marta bosildi} if (key == '7') // Agar 7 -tugma bosilsa {Serial.println ("7 -tugma"); agar (Raqam == 0) Raqam = 7; else Raqam = (Raqam*10) + 7; // ikki marta bosildi} if (key == '0') {Serial.println ("Button 0"); // 0 tugmasi bosiladi, agar (Raqam == 0) Raqam = 0; else Raqam = (Raqam*10) + 0; // ikki marta bosildi} if (key == '2') // 2 -tugma bosilsa {Serial.println ("2 -tugma"); agar (Raqam == 0) Raqam = 2; else Raqam = (Raqam*10) + 2; // ikki marta bosildi} if (key == '5') {Serial.println ("5 -tugma"); agar (Raqam == 0) Raqam = 5; else Raqam = (Raqam*10) + 5; // ikki marta bosildi} if (key == '8') {Serial.println ("8 -tugma"); agar (Raqam == 0) Raqam = 8; else Raqam = (Raqam*10) + 8; // ikki marta bosildi} if (key == '#') {Serial.println ("Teng tugma"); Num2 = Raqam; natija = rost; } if (key == '3') {Serial.println ("3 -tugma"); agar (Raqam == 0) Raqam = 3; else Raqam = (Raqam*10) + 3; // ikki marta bosildi} if (key == '6') {Serial.println ("Button 6"); agar (Raqam == 0) Raqam = 6; else Raqam = (Raqam*10) + 6; // ikki marta bosildi} if (key == '9') {Serial.println ("9 -tugma"); agar (Raqam == 0) Raqam = 9; else Raqam = (Raqam*10) + 9; // ikki marta bosildi} agar (tugmachasi == 'A' || kalit == 'B' || kalit == 'C' || kalit == 'D') // 4 -ustunda tugmalarni aniqlash {Num1 = Raqam; Raqam = 0; if (key == 'A') {Serial.println ("Qo'shish"); harakat = '+';} if (key == 'B') {Serial.println ("Chiqarish"); harakat = '-'; } if (key == 'C') {Serial.println ("Ko'paytirish"); harakat = '*';} if (key == 'D') {Serial.println ("Devesion"); harakat = '/';} kechiktirish (100); }}

void CalculateResult () {if (action == '+') Number = Num1+Num2; if (action == '-') Number = Num1-Num2; if (action == '*') Number = Num1*Num2; if (action == '/') Number = Num1/Num2; } void DisplayResult () {lcd.setCursor (0, 0); // kursorni 0 -ustun, 1 -qator lcd.print (Num1) ga o'rnating; lcd.print (harakat); lcd.print (Num2); agar (natija == rost) {lcd.print ("="); lcd.print (Raqam);} // Natijani ko'rsatish lcd.setCursor (0, 1); // kursorni 0 -ustun, 1 -qator lcd.print (Raqam) ga o'rnating; // Natijani ko'rsatish}

4 -qadam: Kalkulyator chiqishi

Kalkulyator chiqishi
Kalkulyator chiqishi
Kalkulyator chiqishi
Kalkulyator chiqishi
Kalkulyator chiqishi
Kalkulyator chiqishi

Shunday qilib, biz ulanishlarni yakunladik va kodni arduino -ga yukladik va uning quvvatini o'chirib qo'yishimiz va ba'zi hisob -kitoblarni bajarishimiz kerak va men ko'rib turganingizdek, men klaviatura yordamida hisob -kitob qilyapman va siz natijalarni lcd -da ko'rishingiz mumkin. Shunday qilib, arduino yordamida o'zingizning shaxsiy kalkulyatoringizni yasang.

Tavsiya: