63
21.
Ushbu tajribada biz Arduino 74HC595
bilan
qanday ishlashini ko’rib chiqamiz, bu 4-bitli
7-segmentli matritsani haydash uchun
Arduino
pinlari sonini kamaytirishga imkon beradi
ARDUINO PINLARNI CHIQISHINI
TEJASH, 4-DARAJALI
MATRITSANI BOSHQARISH.
SHIFT REGISTRI
74HC595 CHIPI.
Kerakli komponentlar:
Arduino UNO R3 tekshiruvi;
prototip
tayyorlash uchun maket plata;
4-darajali yetti segmentli matritsa;
74HC595 mikrosxemasi;
510 Om qarshilik - 7 dona;
Jamperlar
Surat 21.1: Mikrosxema 74HC595
64
Arduino Nano va UNO raqamli pinlari, hatto ba’zida Arduino
Mega ham ko’p sonli pinlarni boshqarish zarur bo’lsa, etarli
bo’lmasligi mumkin. Bunday holda, 74HC595 chipidan
foydalanish mumkin. Chip 74HC595 - ketma-ket kirish,
ma’lumotlarning ketma-ket yoki
parallel chiqishi bilan
sakkiz-darajali o’tish registri, flip-flop va uch holatli chiqish.
74HC595 mikrosxemasining pin tayinlanishi surat 21.1.
Boshqarish uchun bizga faqat uchta pin kerak: SH_CP, ST_
CP va DS. SH_CP soat kiritishida mantiq paydo bo’lganda,
registr DS ma’lumotlarini kiritishda bir oz o’qiydi va uni
eng kichik darajaga yozadi. Keyingi impuls soat kiritishiga
kelganda, hamma takrorlanadi,
faqat oldin yozilgan
daraja bir darajaga siljiydi va yangi kelgan daraja o’z
o’rnini egallaydi. Sakkizta bit to’lganida va to’qqizinchi
soat zarbasi kelganda, reestr eng kichik bitdan yana
to’ldirila boshlaydi va hamma narsa yana takrorlanadi.
Ma’lumotlar Q0 ... Q7 chiqishlarida paydo bo’lishi uchun
uni “bosish” kerak. Buning uchun ST_CP kirishiga mantiqiy
birlikni yuborish kerak. Ro’yxatga
olish bilan nima qilsak
ham, uni qayta “bosmagunimizcha” chiqishlardagi
ma’lumotlar o’zgarmaydi. Pin Q7 “smenali registrlarni
ketma-ket (kaskadli) ulash uchun mo’ljallangan. Ushbu
ulanish bilan birinchi registrdan darajalar kaskaddagi
keyingi
registrga, undan keyingisiga va boshqalarga
suriladi. Shunday qilib, ikkitadan iborat kaskad
8-darajali registrlar bitta 16-darajali ishlaydi. Siz
xohlagancha mikrosxemalarni ulashingiz mumkin.
LED matritsasi bilan keyingi tajribada biz 74HC595
mikrosxemalarining kaskadli ulanishini ko’rib chiqamiz,
ushbu tajribada biz
faqat bitta mikrosxemadan
foydalanamiz - 74HC595 mikrosxemasining sakkizta pimi
sakkizta matritsa segmentiga ulangan, razryadni tanlash
uchun to’rtta matritsa pimi ulangan Arduino taxtasining
to’rtta pimiga. Ulanish diagrammasi Surat 21.2.
65
0,1 sekundlik aniqlikda sekundomerni 0–999
soniya
davomida boshlash va to’xtatish sketchini yozishni
boshlaymiz. Biz Arduino SPI kutubxonasidan
foydalanamiz. SPI kutubxonasidan foydalanganda
Arduino pinlari 11 va 13 ishlatilganligi sababli matritsa
registrlarini tanlash uchun Arduino pinlari 4, 5, 6,
7 dan foydalanamiz.
Ushbu eskizning tarkibi
// SPI kutubxonasini ulash
#include
// pin SS
int pin_spi_ss=8;
// 0-9 raqamlarini ko’rsatish uchun qiymatlar
byte numbers[10] = { B11111100, B01100000, B11011010,
B11110010, B01100110, B10110110,B10111110,
B11100000, B11111110,B11110110};
Do'stlaringiz bilan baham: