Mundarija:

Ikkilik -o'nlik hisoblagich: 8 qadam
Ikkilik -o'nlik hisoblagich: 8 qadam

Video: Ikkilik -o'nlik hisoblagich: 8 qadam

Video: Ikkilik -o'nlik hisoblagich: 8 qadam
Video: 8 инструментов в Excel, которыми каждый должен уметь пользоваться 2024, Iyul
Anonim
Ikkilikdan o'nlikgacha bo'lgan kalkulyator
Ikkilikdan o'nlikgacha bo'lgan kalkulyator

O'n birinchi sinf kompyuter injeneriyasi uchun men yakuniy loyihani tanlashim kerak edi. Avvaliga men nima qilishni bilmasdim, chunki u ba'zi apparat komponentlarini o'z ichiga olishi kerak edi. Bir necha kundan so'ng, sinfdoshim menga bir necha oy oldin yaratgan to'rt bitli qo'shimchaga asoslangan loyiha qilishimni aytdi. O'sha kundan so'ng, men to'rt bitli qo'shimchadan foydalanib, ikkilikdan o'nli konvertorni yaratishga muvaffaq bo'ldim.

Ushbu loyihani yaratish ko'p tadqiqotlarni talab qiladi, bu asosan to'liq va yarim yig'uvchi qanday ishlashini tushunishni o'z ichiga oladi.

1 -qadam: kerakli materiallar

Loyihani amalga oshirish uchun sizga quyidagi materiallar kerak bo'ladi.

  • Arduino UNO
  • to'rtta non paneli
  • to'qqiz voltli batareya
  • etti XOR eshiklari (2 ta XOR chiplari)
  • etti VA eshiklari (2 VA chip)
  • uchta OR eshiklari (1 ta chip)
  • beshta LED
  • sakkizta 330 ohmli rezistorlar
  • LCD displey
  • to'rtta erkak-ayol simlari
  • erkak-erkak simlari ko'p
  • simni ajratuvchi
  • Umumiy anodli RGB LED

Narx (simlardan tashqari): $ 79.82

Barcha materiallar ABRA elektronikasida topilgan.

2 -qadam: 4 Bit Adderni tushunish

4 bitli qo'shimchani tushunish
4 bitli qo'shimchani tushunish

Boshlashdan oldin, siz to'rt bitli qo'shimchaning qanday ishlashini tushunishingiz kerak. Biz bu sxemaga birinchi marta qaraganimizda, yarim qo'shimchali zanjir va uchta to'liq yig'uvchi sxemasi borligini sezasiz. To'rt bitli yig'uvchi to'liq va yarim qo'shimchalarning kombinatsiyasi bo'lgani uchun men ikkita turdagi qo'shimchaning qanday ishlashini tushuntirib beradigan videoni joylashtirdim.

www.youtube.com/watch?v=mZ9VWA4cTbE&t=619s

3 -qadam: 4 bitli qo'shimchani yaratish

4 bitli qo'shimchani yaratish
4 bitli qo'shimchani yaratish
4 bitli qo'shimchani yaratish
4 bitli qo'shimchani yaratish

To'rt bitli qo'shimchani qanday qurish kerakligini tushuntirish juda qiyin, chunki u juda ko'p simlarni o'z ichiga oladi. Ushbu rasmlarga asoslanib, men sizga ushbu sxemani yaratish uchun bir nechta fokuslar berishim mumkin. Birinchidan, sizning mantiqiy chiplaringizni tartibga solish usuli juda muhim bo'lishi mumkin. To'g'ri sxemaga ega bo'lish uchun chiplaringizni quyidagi tartibda buyurtma qiling: XOR, AND, OR, AND, XOR. Bu buyurtmani bajarib, sizning davrangiz nafaqat toza bo'ladi, balki uni tartibga solish ham juda oson bo'ladi.

Yana bir ajoyib hiyla - har bir qo'shimchani birma -bir va o'ng tomondan chap tomonga qurish. Ko'p odamlar qilgan keng tarqalgan xato - bir vaqtning o'zida barcha qo'shimchalarni bajarish. Shunday qilib, siz simlarni buzishingiz mumkin. 4 bitli qo'shimchadagi bitta xato hamma narsani ishlamasligiga olib kelishi mumkin,

4 -qadam: O'chirish zanjirini quvvat va tuproq bilan ta'minlash

9 voltli batareyadan foydalanib, to'rt bitli qo'shimchani o'z ichiga oladigan non panelini quvvat bilan ta'minlang. Qolgan 3 ta non paneli uchun Arduino UNO orqali quvvat va er bilan ta'minlang.

5 -qadam: LEDlarni ulash

LEDlarni ulash
LEDlarni ulash

Ushbu loyiha uchun beshta LED kirish va chiqish qurilmasi sifatida ishlatiladi. Chiqish moslamasi sifatida, LED to'rt bitli yig'uvchiga kiritilgan kirishga qarab, ikkilik raqamni yoritadi. Kirish moslamasi sifatida, qaysi LEDlar yoqilgan va o'chirilganligiga qarab, biz LCD displeyda konvertatsiya qilingan ikkilik raqamni o'nlik raqam sifatida aks ettira olamiz. LEDni simga ulash uchun siz to'rt bitli yig'uvchi hosil qilgan summaning birini LEDning anodli oyog'iga (LEDning uzun oyog'i) ulaysiz, lekin ularning orasiga 330 ohmli rezistorni joylashtiring. Keyin LEDning katodli oyog'ini (LEDning qisqa oyog'i) erga ulang. Rezistor va yig'ma sim o'rtasida, erkak va erkak simlarini Arduino UNO -dagi har qanday raqamli pinga ulang. Qolgan uchta summa va o'tkazish uchun bu amalni takrorlang. Men ishlatgan raqamli pinlar 2, 3, 4, 5 va 6 edi.

6 -qadam: Umumiy anodli RGB LEDni ulash

Umumiy anodli RGB LED simi
Umumiy anodli RGB LED simi

Ushbu loyihada RGB LED -ning maqsadi LCD displeyda yangi o'nli raqamlar paydo bo'lganda ranglarni o'zgartirishdir. Birinchi marta umumiy anodli RGB LED -ga qaraganingizda, uning 4 oyog'i borligini sezasiz; qizil nurli oyoq, kuch (anod) oyog'i, yashil nurli oyog'i va ko'k oyog'i. Quvvat (anod) oyog'i 5 voltli elektr uzatish tarmog'iga ulanadi. Qolgan uchta rangli oyoqni 330 ohmli rezistorlar bilan ulang. Rezistorning boshqa uchida, Arduino -dagi PWM dgital piniga ulash uchun erkak -erkak simini ishlating. PWM raqamli pin - bu yonma -yon chiziqli har qanday raqamli pin. Men ishlatgan PWM pinlari 9, 10 va 11 edi.

7 -qadam: LCD displeyni ulash

LCD displeyni ulash
LCD displeyni ulash

Ushbu loyiha uchun LCD displey aylantirilgan ikkilik sonni o'nli kasrga aks ettiradi. LCD displeyga qaraganimizda, siz 4 ta erkak pinni ko'rasiz. Bu pinlar VCC, GND, SDA va SCL. VCC uchun, VCC pinini non panelidagi elektr tarmog'iga ulash uchun erkak va ayol simlarini ishlating. Bu VCC piniga 5 voltni beradi GND pimi uchun uni erga va ayolga sim bilan erga ulang. SDA va SCL pinlari yordamida uni erkak va ayol simli analog pin bilan ulang. Men SCL pinini A5 analog piniga va SDA pinini A4 analog piniga uladim.

8 -qadam: Kodni yozish

Endi men ushbu loyihaning qurilish qismini tushuntirdim, endi kodni boshlaylik. Birinchidan, biz avval quyidagi kutubxonalarni yuklab olishimiz va import qilishimiz kerak; LiquidCrystal_I2C kutubxonasi va simli kutubxona.

#qo'shing #qo'shing

Buni qilganingizdan so'ng, barcha kerakli o'zgaruvchilarni e'lon qilishingiz kerak. Har qanday kod turida siz avval o'zgaruvchilaringizni e'lon qilishingiz kerak.

const int raqam1 = 2;

const int digit2 = 3;

const int digit3 = 4;

const int digit4 = 5;

const int raqam 5 = 6;

int raqamlari1 = 0;

int raqamlari2 = 0;

int raqamlari3 = 0;

int raqamlari4 = 0;

int raqamlari5 = 0;

char array1 = "Ikkilikdan o'nligacha";

char array2 = "Konverter";

int tim = 500; // kechikish vaqtining qiymati

const int redPin = 9;

const int greenPin = 10;

const int bluePin = 11;

#Umumiy_anodni belgilang

LiquidCrystal_I2C lcd (0x27, 16, 2);

Void setup () da siz barcha o'zgaruvchilar uchun pin turini e'lon qilasiz. Siz analogWrite () dan foydalanayotganimiz uchun ketma -ket boshlanishni ham ishlatasiz

bo'sh o'rnatish ()

{

Serial.begin (9600);

pinMod (raqam1, Kirish);

pinMod (raqam2, Kirish);

pinMode (raqam3, Kirish);

pinMod (raqam 4, Kirish);

pinMod (raqam 5, Kirish);

lcd.init ();

lcd.backlight ();

pinMode (redPin, OUTPUT);

pinMode (greenPin, OUTPUT);

pinMode (bluePin, OUTPUT);

Void setup () da men ushbu loyihaning nomini bildiruvchi xabar yaratish uchun for loop yaratdim. Void loopida bo'lmaganining sababi shundaki, agar u bo'sh bo'lsa, xabar takrorlanishda davom etadi

lcd.setCursor (15, 0); // kursorni 15 -ustunga, 0 -qatorga o'rnating

uchun (int positionCounter1 = 0; positionCounter1 <17; positionCounter1 ++)

{

lcd.scrollDisplayLeft (); // Displey mazmunini chapga bir bo'sh joyga aylantiradi.

lcd.print (qator1 [positionCounter1]); // Xabarni LCD displeyga chop eting.

kechikish (vaqt); // 250 mikrosaniyani kuting

}

lcd.clear (); // LCD displeyni tozalaydi va kursorni chap yuqori burchakka joylashtiradi.

lcd.setCursor (15, 1); // kursorni 15 -ustunning 1 -qatoriga o'rnating

uchun (int positionCounter = 0; positionCounter <9; positionCounter ++)

{

lcd.scrollDisplayLeft (); // Displey mazmunini chapga bir bo'sh joyga aylantiradi.

lcd.print (array2 [positionCounter]); // Xabarni LCD displeyda chop etish.

kechikish (tim); // 250 mikrosaniyani kuting

}

lcd.clear (); // LCD displeyni tozalaydi va kursorni chap yuqori burchakka joylashtiradi.

}

Endi biz bo'shliqni o'rnatishni tugatdik (), keling void loop () ga o'tamiz. Void loopida men ba'zi chiroqlar yoqilganda yoki o'chganda displeyda o'nli kasr sonini ko'rsatishiga ishonch hosil qilish uchun bir nechta if-else so'zlarini yaratdim. Men bo'sh bo'shliq ichida nima borligini va men yaratgan boshqa bo'shliqlarni ko'rsatadigan hujjatni biriktirdim. Hujjatni ko'rish uchun bu erni bosing

Endi siz kodni ishga tushirishingiz va yangi ikkilik -o'nlik konvertoridan bahramand bo'lishingiz kerak.

Tavsiya: