Modelning Arduinoga ulanish sxemasi:
Ushbu model uchun quyidagi dastur mos keladi:
int A = 2;
int B3 = 3;
int C4 = 4;
int D5 = 5;
int E6 = 6;
int F7 = 7;
int G8 = 8;
int D1 = 10;
int D2 = 11;
int D3 = 12;
int D4 = 13;
void setup() {
pinMode(A,OUTPUT);
pinMode(B3,OUTPUT);
pinMode(C4,OUTPUT);
pinMode(D5,OUTPUT);
pinMode(E6,OUTPUT);
pinMode(F7,OUTPUT);
pinMode(G8,OUTPUT);
pinMode(D1,OUTPUT);
pinMode(D2,OUTPUT);
pinMode(D3,OUTPUT);
pinMode(D4,OUTPUT);
}
void loop() {
digitalWrite(D1,HIGH);
digitalWrite(D2,LOW);
digitalWrite(D3,LOW);
digitalWrite(D4,LOW);
digitalWrite(B3,0);
digitalWrite(C4,0);
digitalWrite(A,1);
digitalWrite(D5,1);
digitalWrite(E6,1);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(B3,1);
digitalWrite(C4,0);
digitalWrite(A,0);
digitalWrite(D5,0);
digitalWrite(E6,1);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(B3,1);
digitalWrite(C4,0);
digitalWrite(A,0);
digitalWrite(D5,0);
digitalWrite(E6,0);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(D1,LOW);
digitalWrite(D2,HIGH);
digitalWrite(D3,LOW);
digitalWrite(D4,LOW);
digitalWrite(B3,0);
digitalWrite(C4,0);
digitalWrite(A,1);
digitalWrite(D5,1);
digitalWrite(E6,1);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(B3,1);
digitalWrite(C4,0);
digitalWrite(A,0);
digitalWrite(D5,0);
digitalWrite(E6,1);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(B3,1);
digitalWrite(C4,0);
digitalWrite(A,0);
digitalWrite(D5,0);
digitalWrite(E6,0);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(D1,LOW);
digitalWrite(D2,LOW);
digitalWrite(D3,HIGH);
digitalWrite(D4,LOW);
digitalWrite(B3,0);
digitalWrite(C4,0);
digitalWrite(A,1);
digitalWrite(D5,1);
digitalWrite(E6,1);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(B3,1);
digitalWrite(C4,0);
digitalWrite(A,0);
digitalWrite(D5,0);
digitalWrite(E6,1);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(B3,1);
digitalWrite(C4,0);
digitalWrite(A,0);
digitalWrite(D5,0);
digitalWrite(E6,0);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(D1,LOW);
digitalWrite(D2,LOW);
digitalWrite(D3,LOW);
digitalWrite(D4,HIGH);
digitalWrite(B3,0);
digitalWrite(C4,0);
digitalWrite(A,1);
digitalWrite(D5,1);
digitalWrite(E6,1);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(B3,1);
digitalWrite(C4,0);
digitalWrite(A,0);
digitalWrite(D5,0);
digitalWrite(E6,1);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(B3,1);
digitalWrite(C4,0);
digitalWrite(A,0);
digitalWrite(D5,0);
digitalWrite(E6,0);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(D1,HIGH);
digitalWrite(D2,HIGH);
digitalWrite(D3,HIGH);
digitalWrite(D4,HIGH);
digitalWrite(B3,0);
digitalWrite(C4,0);
digitalWrite(A,1);
digitalWrite(D5,1);
digitalWrite(E6,1);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(B3,1);
digitalWrite(C4,0);
digitalWrite(A,0);
digitalWrite(D5,0);
digitalWrite(E6,1);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
digitalWrite(B3,1);
digitalWrite(C4,0);
digitalWrite(A,0);
digitalWrite(D5,0);
digitalWrite(E6,0);
digitalWrite(F7,0);
digitalWrite(G8,0);
delay(1000);
}
Xulosa:
Men bu laboratoriya ishini bajarish davomida Yetti segmentli 4 bitli matritsa bilan tanishish va uni loyihalarda qo‘llashni o’rgandim.
Laboratoriya ishi № 16.
Shift registri 74HC595.
Laboratoriya ishining maqsadi: 74HC595 smenali registr bilan tanishish va undan loyihalarda foydalanish.
Laboratoriyaning nazariy qismi.
74HC595 - ketma -ket IN - Parallel OUT printsipi bo‘yicha ishlaydigan 8 -bitli smenali registr. Ya'ni, bu o‘zgarish registri kirish ma'lumotlarini ketma -ket oladi va bu ma'lumotni 8 pinli parallel chiqarilishini ta'minlaydi. Uning yordami bilan siz ishlatiladigan mikrokontroller pinlarini (bizning holatda, Arduino platasi) sonini sezilarli darajada kamaytirishingiz mumkin.
74HC595 mikrokontrolerga ulanish uchun 3 ta pinni (Clock, Data & Latch) ishlatadi va uning 8 chiqish pinini kuzatishga imkon beradi. Soat pimi sinxronlashtiruvchi impulslarni uzluksiz etkazib berish uchun ishlatiladi va Ma'lumot pinasi unga kerakli ma'lumotlarni yetkazib berish uchun ishlatiladi. 74HC595 smenali registr SPI interfeysida ishlaydi.
74HC595 uchun pin vazifalari quyidagi ikkita rasmda ko‘rsatilgan.
74HC595 smenali registr kontaktlarining rus tilidagi belgilarining dekodlanishi quyidagicha.
Q0 -Q7 - sakkizta umumiy maqsadli parallel chiqish. Bu chiqishlar SPI orqali olingan ma'lumotlarni qandaydir tarzda ishlatishimiz uchun kerak - LED chizig‘ini, yoki indikator segmentlarini, dekoderni va boshqalarni ulash.
VCC - bu quvvat kuchlanishi.
GND - umumiy sim.
Q7 '- ketma-ket ma'lumotlar chiqishi. Aslida, bu MISO.
DS - ketma -ket ma'lumotlarni kiritish yoki MOSI.
MR - asosiy sozlamalarni tiklash. Barcha chiqishlarni 0 ga qaytaradi. Shift registrining to‘g‘ri ishlashi uchun uning mantig‘i 1 bo‘lishi kerak.
SH_CP - bizning holatimizda bu chip tanlash bo‘ladi.
ST_CP - bu registrni ushlab turuvchi boshqaruv pimi, bizning holatimizda u soat impulslari qo‘llanilishi kerak bo‘lgan sinxronizatsiya pimi bo‘ladi. Ammo Arduino tegishli buyruqni ishlatganda buni biz uchun avtomatik ravishda bajaradi.
OE - chiqishni faollashtirish. Salbiy qiymat bilan ketma -ket chiqish yoqiladi, ijobiy qiymat bilan o‘chiriladi.
Shift registri qanday ishlaydi?
Chipni ulashni boshlashdan oldin, keling, bu jarayon qanday ishlashini ko‘rib chiqaylik.
Aniqlash kerak bo‘lgan birinchi narsa, ikkilik kodni bilmaganlar uchun "bit" tushunchasi. Biz "bit" haqida gapirganda, biz ikkilik qiymatni tashkil etuvchi raqamlardan birini nazarda tutamiz. Oddiy raqamlardan farqli o‘laroq, biz odatda birinchi bitni eng katta deb hisoblaymiz. Shunday qilib, agar biz 10100010 ikkilik qiymatini olsak, birinchi bit aslida 0 va sakkizinchi bit 1 ga teng. Shuni ham ta'kidlash kerakki, agar bu nazarda tutilmagan bo‘lsa, har bir bit faqat 0 yoki 1 bo‘lishi mumkin.
Chipda biz chiqish uchun ishlatilishi mumkin bo‘lgan sakkizta pin bor, ularning har biri registrda bir oz bog‘liq. 74HC595 smenali registrda biz ularni QAdan QHgacha ko‘rib chiqamiz.
Bu chiqishlarni Arduino orqali yozish uchun biz smenali registrga ikkilik qiymatni yuborishimiz kerak va shu raqamdan smenali registr qaysi chiqishlardan foydalanish kerakligini aniqlay oladi. Masalan, agar biz 10100010 ikkilik qiymatini yuborsak, yuqoridagi rasmda yashil rangda ajratilgan kontaktlar faol bo‘ladi, qizil rangda ajratilganlar esa faol bo‘lmaydi.
Bu shuni anglatadiki, eng o‘ng bit QH va eng chap bit QA ga mos keladi. Chiqish, agar u bilan bog‘liq bo‘lgan bit 1 ga o‘rnatilsa, faol deb hisoblanadi. Buni yodda tutish kerak, aks holda qaysi pinlardan foydalanayotganingizni bilish juda qiyin bo‘ladi.
Endi biz qanday pinlarni ishlatishni ko‘rsatish uchun bit ofsetni qanday ishlatishni bilib olsak, biz uni Arduinoga ulashni boshlashimiz mumkin.
Laboratoriyaning amaliy qismi.
Modelni yig‘ish uchun bizga quyidagilar kerak:
Arduino Uno
Panel
Arduino siljuvchi registr 74HC595
8 ta LED
8 rezistor - 220 om yetarli bo‘lishi kerak
Simlar / o‘tish joylari
Shift registrini tartibingizga joylashtirishdan boshlang, har bir tomoni quyida ko‘rsatilgan tartibning alohida tomonida joylashganligiga ishonch hosil qiling.
Yuqoriga belgi qo‘yilgan, pastdagi rasmda ko‘rsatilgandek, chap tomondan yuqoridan pastgacha 1-8 va o‘ng tomondan 16-9-pinlar.
Do'stlaringiz bilan baham: |