Mundarija:
- 1 -qadam: kerakli materiallar
- 2 -qadam: 4 Bit Adderni tushunish
- 3 -qadam: 4 bitli qo'shimchani yaratish
- 4 -qadam: O'chirish zanjirini quvvat va tuproq bilan ta'minlash
- 5 -qadam: LEDlarni ulash
- 6 -qadam: Umumiy anodli RGB LEDni ulash
- 7 -qadam: LCD displeyni ulash
- 8 -qadam: Kodni yozish
Video: Ikkilik -o'nlik hisoblagich: 8 qadam
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:26
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
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
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
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
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
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:
O'z qo'lingiz bilan hisoblagich yasang: 5 qadam (rasmlar bilan)
O'zingizning elektr hisoblagichingizni/ro'yxatga oluvchingizni yarating: Ushbu loyihada men sizga Arduino, INA219 IC monitor, OLED LCD va Micro SD kartali tenglikni birlashtirganimni ko'rsataman. mashhur USB quvvat o'lchagich. Qani boshladik
Arduino RMS hisoblagich moduli: 3 qadam
Arduino RMS o'lchagich moduli: bu TrueRMS kuchlanishini o'lchash uchun mo'ljallangan kichik Arduino moduli. Hisoblagich rV kuchlanishini mV da raqamlar va analog darajali shkalada ko'rsatadi. Modul " qurish " signalni kuzatish uchun modul
Buton yordamida hisoblagich - Tinker Cad: 3 qadam
Buton yordamida hisoblagich | Tinker Cad: Agar sizda tugmachani ishlasangiz, siz tez -tez tugmani necha marta bosilganiga qarab harakat qilmoqchisiz. Buni amalga oshirish uchun siz tugma qachon holatni o'chirishni yoqishini bilishingiz va bu holat necha marta sodir bo'lishini hisoblashingiz kerak. Th
Arduino Energy Cost elektr hisoblagich qurilmasi: 13 qadam (rasmlar bilan)
Arduino Energy Cost elektr hisoblagich qurilmasi: Siz elektr energiyasi uchun juda ko'p pul to'laysizmi? Chovgum yoki isitgich qancha elektr energiyasi iste'mol qilishini bilmoqchimisiz? O'zingizning portativ energiya sarfini hisoblagichini yarating! Bu qurilmadan qanday foydalanganimni ko'ring
4 bitli ikkilik hisoblagich yuqoriga/pastga: 11 qadam
4 bitli ikkilik hisoblagichni yuqoriga/pastga: Hisoblagich - yuqoriga/pastga 4 bitli ikkilik hisoblagich. Ya'ni, bu hisoblagich 0 dan 15 gacha yoki 15 dan 0 gacha hisoblanishi mumkin, chunki u yuqoriga yoki pastga hisoblangan. Loyiha 4029, 555 va 4-10 mm LEDli, asosan, ikki marta tushirish yordamida ishlab chiqarilgan ikkilik hisoblagich