maruza va razryadli, 7ta segmentli indikatorlar


Download 1.05 Mb.
bet3/6
Sana20.06.2023
Hajmi1.05 Mb.
#1629022
1   2   3   4   5   6
Bog'liq
4-4 сегм индик

Ular qanday ishlaydi
Oddiy LED displeyda to‘qqizta chiziq bor: biri barcha segmentlarning katodlariga, ikkinchisi esa har bir segmentning anodiga o‘tadi. Bu zanjir "umumiy katod zanjiri" deb nomlanadi, umumiy anodli zanjirlar ham bor (u holda buning aksi to‘g‘ri). Ko‘pincha bazaning turli uchlarida bitta emas, balki ikkita umumiy xulosa chiqariladi - bu o‘lchamlarni oshirmasdan simni osonlashtiradi. "Umumjahon" deb ataladiganlar ham bor, lekin men shaxsan men bunaqasini uchratmaganman. Bundan tashqari, o‘rnatilgan smenali registrga ega ko‘rsatkichlar mavjud, buning natijasida mikrokontroller portlarining ishlatilgan pinlari soni ancha kamayadi, lekin ular ancha qimmat va amalda kamdan-kam qo‘llaniladi. Va cheksizlikni tushunish imkonsiz bo‘lgani uchun, biz hozircha bunday ko‘rsatkichlarni ko‘rib chiqmaymiz (shuningdek, segmentlar soni ancha ko‘p bo‘lgan ko‘rsatkichlar ham bor, matritsa).
Ushbu tajribada biz Arduino raqamlarni vizualizatsiya qilish imkonini beradigan yetti segmentli LED bilan ishlashni ko‘rib chiqamiz.
Modelni yig‘ish uchun bizga quyidagilar kerak:

  • Arduino UNO R3 platasi;

  • prototip yaratish uchun panel;

  • bir xonali yetti segmentli ko‘rsatkich qurilmasi;

  • 510 Om qarshilik - 7 dona;

  • papa-papa simlari.

Yetti segmentli LED indikatori ma'lum tartibda joylashtirilgan va tizimli ravishda birlashtirilgan LEDlar guruhidir. LED kontaktlari a dan g gacha bo‘lgan belgilar bilan belgilanadi (va qo‘shimcha ravishda dp - kasr nuqtasini ko‘rsatish uchun) va bitta umumiy terminal, indikatorli ulanish turini aniqlaydi (umumiy anodli OA yoki umumiy katodli OK). Bir vaqtning o‘zida bir nechta LEDni yoqib, indikatorda raqamli belgilarni shakllantirish mumkin. Bir xonali yetti segmentli indikatorning diagrammasi rasmda ko‘rsatilgan.

Modelning Arduinoga ulanish sxemasi:

Quyidagi misolda indikatorda raqamlarni almashtirish faqat taktika tugmasi bosilganda sodir bo‘ladi. 3 -raqamga yetib, taymer nolga qaytariladi va tugmani ikkinchi bosilishini kutadi. Bu Arduino uchun juda oddiy dasturlar va yetti segmentli ko‘rsatkich; murakkab va qiziqarli dasturlar uchun siz Arduino uchun 74hc595 smenali registrni ishlatishingiz kerak.




Ushbu model uchun quyidagi dastur mos keladi:

#define A 8


#define B 7
#define C 6
#define D 5
#define E 4
#define F 3
#define G 2
#define BUTTON 12

byte v = 0;


void setup() {


pinMode(A, OUTPUT);
pinMode(B, OUTPUT);
pinMode(C, OUTPUT);
pinMode(D, OUTPUT);
pinMode(E, OUTPUT);
pinMode(F, OUTPUT);
pinMode(G, OUTPUT);
pinMode(BUTTON, INPUT);
}

void loop() {


digitalWrite(A, HIGH); //nol raqami
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, HIGH);
digitalWrite(G, LOW);
if (digitalRead(BUTTON) == HIGH) { delay(500); v = 1; }

while (v == 1) {


digitalWrite(A, LOW); //bir raqami
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, LOW);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, LOW);
if (digitalRead(BUTTON) == HIGH) { delay(500); v = 2; }
}
while (v == 2) {
digitalWrite(A, HIGH); //ikki raqami
digitalWrite(B, HIGH);
digitalWrite(C, LOW);
digitalWrite(D, HIGH);
digitalWrite(E, HIGH);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
if (digitalRead(BUTTON) == HIGH) { delay(500); v = 3; }
}
while (v == 3) {
digitalWrite(A, HIGH); //uch raqami
digitalWrite(B, HIGH);
digitalWrite(C, HIGH);
digitalWrite(D, HIGH);
digitalWrite(E, LOW);
digitalWrite(F, LOW);
digitalWrite(G, HIGH);
if (digitalRead(BUTTON) == HIGH) { delay(500); v = 0; }
}
}
Kodga tushuntirishlar: o‘zgaruvchan bayt v = 0; dasturda bir vaqtdan ikkinchisiga o‘tish uchun ishlatiladi. Tugma bosilganda v o‘zgaruvchining qiymati o‘zgaradi; bir davradan ikkinchisiga tez o‘tishdan himoya qilish uchun dasturning har bir shartida kichik kechikish bor.



Download 1.05 Mb.

Do'stlaringiz bilan baham:
1   2   3   4   5   6




Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling