|
Mavzu: Bir razryadli yetti segmetli indikator. Arduino mk orqali raqamlarni indikatorga chiqarish. Ishdan maqsad
|
bet | 1/2 | Sana | 08.02.2024 | Hajmi | 1,12 Mb. | | #153207 |
Bog'liq 1-DARS (2)
Mavzu: Bir razryadli yetti segmetli indikator. Arduino MK orqali raqamlarni indikatorga chiqarish.
Ishdan maqsad: Bir razryadli yetti segmetli indicator haqida tushincha ega bo’lish va Arduino orqali raqamlarni indikatorga raqamlar va harflar 0chiqarish ko’nikmasini xosil qilish.
Ishni bajarish uchun kerakli jihozlar: Arduino UNO R3 x 1 ta, 7-segmentli LED displey x 1, 200 om qarshiliklar ,Kompyuter.
Ishni bajarish uchun kerakli dasturiy ta’minot: Arduino IDE , tinkercat.com sayti.
Nazariy qism: Yetti segmentli LED display- yorug‘lik chiqaradigan diod, fotonlar shaklida yorug'lik energiyasini chiqaradigan qattiq holatdagi optik pn-o'tish diodidir. Bu monitorlar odatda elektronika sohalarda, masalan, sonli raqamlarni yoki vaqtning ko'rsatkichini namoyish etish uchun ishlatiladi. Har bir 7-segment display 7 ta segmentdan iborat bo'lib, ularni ma‘lum tartibda yoqish yoki o’chirish oraqali har bir raqamni yoki belgini ifodalash mumkin. Yetti segment monitorlar arab raqamlarini ko'rsatishi mumkin bo'lgan indikatorning eng oddiysidir. Ushbu indikatorlar yordamida harflarni ham ko‘rsatish mumkin. Faqat harflarni ko'rsatish uchun murakkabroq ko'p segmentli va matritsali indikatorlardan foydalaniladi.
1-rasm. 7 segment monitor ko`rinishlari.
Yetti segment monitordagi segmentlar harflar bilan belgilanadi, sakkizinchi segment kasr sonlarini ko'rsatish uchun mo'ljallangan kasr nuqtasi ( DP ). Segmentli displey oddiy led monitorlardan ko'p afzalliklarga ega. Asosiy afzallik kichik o'lchamliligi, uzoq umr ko'rishligi, turli ranglarda yona olishligi, arzonligi va oson toppish mumkinligi, shuningdek, boshqa har xil elektron komponentlar va raqamli sxemalar bilan aloqa qilish osonligidir.
Segmentli displey deb nomlanishiga sabab, unda ma’lumotlarni chiqarish uchun 7ta led dan foydalaniladi(1-rasm).Yettida ledning har biri segment deb ataladi. Chunki har bir let chiqarilayotgan harf yoki raqamni bir qismi(segmeti)dir. Ba'zan bitta paket ichida qo'shimcha 8- led ishlatiladi, bu biz o‘nlik kasr sonlarni namoyish etish uchun kerak. Yani u nuqtani namoyish etuvchi leddir. Agar biz o‘nlik sonlarni ifodalamoqchi bo‘lsak tabiyki bizga yana qo`shimcha yetti segment kerak bo‘ladi. Yetti segmentli displeylar bir-biriga ulanganda, o'nlik nuqta ko'rsatkichini (DP) ko'rsatiladi. Displeydagi ettita LEDning har biriga pozitsion segment belgilangan. Har bir alohida LEDni ifodalash uchun a dan g gacha harflardan nom sigatida foydalanilgan.
Yetti segment monitordagi har bir LED ikkita ulanish pinniga ega bo'lib, ulardan biri “Anod”, ikkinchisi "Katod" deb nomlangan, shuning uchun ikki hil LED yetti segmentli displeylari mavjud: Yetti segment monitorlarning ikki hil turli mavjut: Umumiy katod va umumiy anodli.
Yetti segment monitorni “umumiy katod” yoki “umumiy anodli” ekanligi letlarning barchasini anodlari birlashtirilgan yoki katodlari birlashtirilganligini qarab ajratiladi. Bu keyin bizga o'n ushr har bir raqam ko'rsatish uchun imkon beradi 0 orqali 9 Shu 7-segment displeyda. Displeylarning umumiy pimi odatda 7 segmentli displeyning qaysi turini aniqlash uchun ishlatiladi.
Umumiy katod (CC) - Umumiy katodli displeyda LED segmentlarining barcha katod ulanishlari mantiqiy "0" yoki tuproqqa birlashtiriladi. Yani umumiy katodli yetti segment monitorlarda barcha led katodlari birlashtirilgan bo‘ladi, anodlari esa alohida pinlar sifatida shaklantirilgan bo`ladi. Shunday qilib, LED segmentlarining tegishli anod terminallarini oldinga yo'naltirish uchun oqim cheklovchi rezistor orqali "HIGH" yoki mantiqiy "1" signalini qo'llash orqali kerakli segmentlarni yoqishimiz mukin bo‘ladi(2-rasm).
2-rasm.Umumiy katod konfiguratsiyasi.
Umumiy anod (CA) - Umumiy anodli displeyda LED segmentlarining barcha anod ulanishlari mantiqiy "1" ga birlashtiriladi. Yani umumiy anodli yetti segment monitorlarda barcha led anodlari birlashtirilgan bo‘ladi, katodllari esa alohida pinlar sifatida shaklantirilgan bo`ladi. Alohida segmentlar ma'lum bir segmentning anodiga mos keladigan oqim cheklovchi rezistor orqali tuproqli, mantiqiy "0" yoki "LOW" signalini qo'llash orqali yoritiladi(3-rasm).
3-rasm. Umumiy anod konfiguratsiyasi.
Umuman olganda, keng tarqalgan anodli displeylar ko'proq mashhur, chunki ko'plab mantiqiy davrlar manbadan ko'ra ko'proq oqimni tushirishi mumkin. Shuni ham yodda tutingki, umumiy katodli displey umumiy anodli displey uchun sxemada to'g'ridan-to'g'ri almashtirilmaydi va aksincha, chunki u LEDlarni teskari yo'nalishda ulash bilan bir xil va shuning uchun yorug'lik emissiyasi sodir bo'lmaydi.
Ko'rsatiladigan o'nlik raqamga qarab, LEDlarning alohida to'plami yonadi. Misol uchun, 0 raqamini ko'rsatish uchun biz a, b, c, d, e va f ga mos keladigan oltita LED segmentini yoqishimiz kerak. Shunday qilib, 0 dan 9 gacha bo'lgan turli raqamlar ko'rsatilgandek 7 segmentli displey yordamida ko'rsatilishi mumkin.
4-rasm.Barcha raqamlar uchun raqamli segmentlar.
Keyin 7-segmentli displey uchun biz quyida ko'rsatilganidek, 0 dan 9 gacha bo'lgan kerakli o'nli raqamni ishlab chiqarish uchun yoritilishi kerak bo'lgan alohida segmentlarni ko'rsatadigan haqiqat jadvalini yaratishimiz mumkin.
1-jadval. 7-segmentli ko'rsatish haqiqat jadvali.
7-segmentli displeyni bitta displey deb hisoblash mumkin bo'lsa-da, u hali ham bitta paketdagi ettita alohida LEDdir va shuning uchun bu LEDlar ortiqcha oqimdan himoyalanishga muhtoj. LEDlar yorug'likni faqat to'g'ridan-to'g'ri oqimga mutanosib bo'lgan holda oldinga yo'naltirilganda ishlab chiqaradi.
Bu shuni anglatadiki, LED yorug'lik intensivligi ortib borayotgan oqim bilan taxminan chiziqli tarzda ortadi. Shunday qilib, bu to'g'ridan-to'g'ri oqim nazorat qilinishi va LED segmentlariga zarar etkazmaslik uchun tashqi rezistor tomonidan xavfsiz qiymat bilan cheklanishi kerak.
Qizil LED segmentida to'g'ridan-to'g'ri kuchlanishning pasayishi taxminan 2-2,2 voltda juda past (ko'k va oq LEDlar 3,6 voltgacha yuqori bo'lishi mumkin), shuning uchun to'g'ri yoritish uchun LED segmentlari kuchlanish manbaiga ulanishi kerak. to'g'ridan-to'g'ri oqimni kerakli qiymatga cheklash uchun ishlatiladigan ketma-ket qarshilik bilan bu oldinga kuchlanish qiymatining ortishi.
Odatda standart qizil rangli 7-segmentli displey uchun har bir LED segmenti to'g'ri yoritilishi uchun taxminan 15 mA tortishi mumkin, shuning uchun 5 voltli raqamli mantiqiy pallada oqim cheklovchi rezistorning qiymati taxminan 200 Ō (5v - 2v) / 15mA bo'ladi. , yoki 220Ō dan yuqoriroq afzal qilingan qiymatga yaqin.
Shunday qilib, displey segmentlari 220 Ō oqim cheklovchi rezistorga qanday ulanganligini tushunish uchun quyidagi sxemani ko'rib chiqing.
5-rasm. 7 segmentli displeyni oqimni cheklovchi rezistrlarga ulanish sxemasi.
Ushbu misolda umumiy anodli displeyning segmentlari kalitlar yordamida yoritilgan. Agar a kaliti yopiq bo'lsa, oqim LEDning "a" segmenti orqali a piniga ulangan oqim cheklovchi rezistorga va 0 voltga oqib, kontaktlarning zanglashiga olib keladi. Shunda faqat a segmenti yoritiladi. Shunday qilib, ushbu umumiy anod displeyidagi LED segmentlarini faollashtirish uchun LOW holati (yerga o'tish) talab qilinadi. Aytaylik, biz displeyda o'nlik "4" raqami yonishini xohlaymiz. Keyin b, c, f va g kalitlari mos keladigan LED segmentlarini yoritish uchun yopiladi. Xuddi shunday "7" o'nlik soni uchun a, b, c kalitlari yopiladi. Ammo 7 segmentli displeylarni alohida kalitlar yordamida yoritish amaliyotda juda ham kam qo`llaniladi.
7-segmentli displeylar odatda CMOS 4511 kabi 7-segmentli dekoder/drayv sifatida tanilgan maxsus turdagi integral mikrosxema (IC) tomonidan boshqariladi. Ikkilik kodli oʻnlik yoki BCD sifatida tanilgan bu 7-segmentli displey drayveri 7-segmentli displey dekoderi va drayveri umumiy anod yoki umumiy katodli displeylarni yoritishga qodir. Biroq, juda mashhur TTL 7447 kabi boshqa ko'plab bitta va ikkita displey drayverlari mavjud.
6-rasm.4511 haydovchi yordamida ulanish sxemasi.
Ushbu oddiy sxemada umumiy katodli LED displeyning har bir anod terminali to'g'ridan-to'g'ri 4511 dekoderiga / drayveriga oqim cheklovchi qarshilik orqali ulanadi. Har bir LED segmentining katodlari erga ichki ulangan. Ikkilik kirishlar, A, B, C va D 4511 ga to'rtta mexanik ON/OFF kalitlari orqali amalga oshiriladi. Barcha kalitlar ochiq holatda bo'lganda, to'rtta 1 kŌ rezistorlar ustidagi kuchlanish nolga (0V) teng, chunki ular to'g'ridan-to'g'ri erga bog'langan. Bu har qanday kalit ochiq bo'lganda displeyning noto'g'ri ishga tushishini oldini oladi.
Keyin biz CMOS 4511 yoki TTL 7447 kabi BCD dan 7 segmentli displey drayveridan foydalangan holda LED displeyni faqat to'rtta kalit (oldingi 8 o'rniga) yoki 4 bitli ikkilik signal yordamida boshqarishimiz mumkinligini ko'ramiz. 16 xil kombinatsiya.
Ko'pgina raqamli uskunalar raqamli signallarni foydalanuvchi tomonidan ko'rsatilishi va tushunilishi mumkin bo'lgan shaklga aylantirish uchun 7 segmentli displeylardan foydalanadi. Bu ma'lumotlar ko'pincha raqamlar, belgilar va belgilar ko'rinishidagi raqamli ma'lumotlardir. Umumiy anodli va umumiy katodli etti segmentli displeylar alohida segmentlarni turli kombinatsiyalarda yoritish orqali kerakli sonni ishlab chiqaradi.
LED asosidagi 7-segmentli displeylar elektronika ishqibozlari orasida juda mashhur, chunki ulardan foydalanish oson va tushunish oson. Ko'pgina amaliy ilovalarda 7 segmentli displeylar 4 bitli BCD kirishidan CMOS 4511 yoki TTL 7447 kabi mos dekoder/drayv IC tomonidan boshqariladi. Bugungi kunda LED asosidagi 7-segmentli displeylar asosan kamroq oqim sarflaydigan suyuq kristall displeylar (LCD) bilan almashtirildi.
Quyida sizlar bilan 7 segment monitorni arduino bilan bosqarishni ko‘rib chiqamiz. Biz tajtiba ishimizda yetti segment monitorni katodli ulash usulidan foydalanib 1 dan 4 gacha bo‘lgan sonlarni bir sekund vatqt oralig‘i bilan 7 segment monitorda namoyish etishni ko‘rib chiqamiz.
Ishning bajarilish tartibi.
Dastlab tinkercad dasturiga kiramiz va tajriba ishimiz uchun kerak bo‘gan arduino uno, yetti segment monitor va rezistrlarni ishchi oynaga olib o‘tib olamiz.
Ishchi oynaga olib o‘tilgan elementlarni(8-rasm)da keltirilgan sxema asosida biri biriga bo‘g‘lab olamiz. Biz bu tajriba ishimizda umumiy katodli segment monitordan foydalanyapmiz. Shuning uchun dastlab segment monitorni rejimini umumiy katodga o‘tgazib qo‘yamiz(7-rasm).
7-rasm.Tinkercad dasturida segment monitorni turini o‘zgartirish.
To‘g‘ridan to‘g‘ri ulanishni amalga oshirsak segment monitorimiz kuyib qolish ehtimoli yuqori. Shuning biz bog‘lashda 200 om lik rezistorlardan foydalanamiz.
8-rasm.Arduino Uno va 7 segment monitor ulanish sxemasi.
9-rasm. Arduino uno va 7 segment display bog‘lanishi.
Mana Arduino Uno va segment monitorni bo‘g‘lab oldik. Endi bu tajriba ishimiz uchun dasturni yaratmiz. Dastur da biz (4-rasm)da keltirilgan raqamlarni segmentlarda ifodalanishidan foydalanib arduinoni shu segmentlar ulangan pinlaridan signal chiqishini taminlashligimiz kerak Dastur quydagida bo‘ladi.
// C++ code
//
void setup()
{
pinMode(13, OUTPUT);
pinMode(12, OUTPUT);
pinMode(11, OUTPUT);
pinMode(10, OUTPUT);
pinMode(9, OUTPUT);
pinMode(8, OUTPUT);
pinMode(7, OUTPUT);
}
void loop()
{
digitalWrite(13, LOW);
digitalWrite(12, LOW);
digitalWrite(11, LOW);
digitalWrite(10, HIGH);
digitalWrite(9, LOW);
digitalWrite(8, LOW);
digitalWrite(7, HIGH);
delay(1000); // Wait for 1000 millisecond(s)
digitalWrite(13, HIGH);
digitalWrite(12, LOW);
digitalWrite(11, HIGH);
digitalWrite(10, HIGH);
digitalWrite(9, HIGH);
digitalWrite(8, HIGH);
digitalWrite(7, LOW);
delay(1000); // Wait for 1000 millisecond(s)
}
Natijani tekshiramiz. Biz dasturni ishga tushirganimizda segment monitorda 1 sekund vaqt oralig‘i bilan 1 va 2 raqamlari ko‘rinishi kerak.
9- rasm. Tajriba ishi natijasi.
|
| |