Ta yetti segmentli indikatordan tashkil topgan razryadli matrisa. Dinamik aks ettirishni amalga oshirish (Arduinoda). Ishdan maqsad
Download 0.5 Mb.
|
1 2
Bog'liq8-lab
LABORATORIYA ISHI №8 8- Mavzu: 7 ta yetti segmentli indikatordan tashkil topgan 4 razryadli matrisa. Dinamik aks ettirishni amalga oshirish (Arduinoda). Ishdan maqsad. Bir razryadli yyetti segmentli yorug‘lik diodili indikatorning ishlashini kо‘rib chiqish va Arduino ga raqamlarni kо‘rsatishni ta’minlash imkonini yaratish ko‘nikmasini hosil qilish. Kerakli elementlar: Ø ArduinoUNO kontrolleri; Ø sxema yig‘ish uchun plata; Ø bir razryadli yyetti segmentli indikator; Ø qarshilik 510 Om - 7 ta; Ø ikki uchida razyomlari bо‘lgan simlar. Yorug‘lik diodili yyetti segmentli indikator guruh yorug‘lik diodlaridan iborat bо‘lib, ma’lum tartibda joylashgan va konstruktiv jihatdan bilashtirilgan. Yorug‘lik diodining ulanish nuqtalari a dan g harflarigacha rusumlangan (va qо‘shimcha dp harflari bilan belgilangan, ular о‘nlik nuqtalarni aks yettirish uchun) va bitta umumiy chiqish, u indikator ulanish turini aniqlaydi (OA umumiy anodli ulanish yoki OK umumiy katodli ulanish). Bir necha yorug‘lik diodlarni bir vaqtda yoqib indikatorda raqamlarni hosil qilish mumkin. Bir razryadli yyetti segmentli indikator sxemasi birinchi chizmada berilgan. Bir razryadli yyetti segmentli yorug‘lik diodidagi indikatorni Arduino ga ulash uchun 7 ta raqamli oyoqchalarni ishlatiladi, indikatorning a – g ulanish nuqtalarining har biri 470 Om qiymatli cheklovchi qarshilik orqali Arduino ning oyoqchalariga ulanadi. Amaliy ishda yyetti segmentli indikatorni OK umumiy katodli ulanishi ishlatiladi, umumiy sim yerga ulanadi. Bir razryadli yyetti segmentli indikatorni Arduino platasiga ulanishi quyidagi chizmada keltirilgan. 8.1- rasm. Bir razryadli yyetti segmentli indikator sxemasi 8.2- rasm. Yyetti segmentli indikatorni Arduino ga ulanish sxemasi Yyetti segmentli indikatorga siklik ravishda 0 dan 9 gachan bо‘lgan sonlarni 1 sekunddan sukut saqlab chiqaramiz. 0 – 9 gachan bо‘lgan raqamlar qiymatiga massv hosil qilinadi, baytning katta razryadi indikatorning a segmentiga mos keladi, kichigi esa – g segmentga mos tushadi. byte numbers[10] = { B11111100, B01100000, B11011010, V11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110}; Raqamning qiymatini Arduino chiqishlariga chiqarishda qiymatni о‘zgartirish uchun tilning bitli operatsiyalarini ishlatiladi. Arduino: bitRead(x,n); // x baytni n razryadning qiymatini hosil qilish // a– g razryadlariga ulanish uchun Arduino ning oyoqchalar rо‘yxati // yyetti segmentli indikatorni intpins[7]={2,3,4,5,6,7,8}; // 0 – 9 gacha bо‘lgan sonlarni chiqarish uchun qiymat byte numbers[10] = { V11111100, V01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11100110}; // hozirdagi raqam qiymatini saqlash uchun о‘zgaruvchi mtnumber=0; voidsetup() { // ulanish nuqtalarini chiqishlar kabi о‘zgartirish for (inti=0;i<7;i++) pinMode(pins[i],OUTPUT); } void loop() { showNumber(number); delay(1000); number=(number+1)110; } // yyetti segmentli indikatorga sonlarni chiqarish funksiyasi void showNumber(int num) { for (int i=0;i<7;i++) { if(bitRead(numbers[num],7-i)—HIGH) // segmentni yoqish digitalWrite(pins[i],HIGH); else // segmentni о‘chirish digitalWrite(pins[i],LOW); } } // a– g razryadlariga ulanish uchun Arduino ning oyoqchalar rо‘yxati // yyetti segmentli indikatorni intpins[7]={2,3,4,5,6,7,8}; // 0 – 9 gacha bо‘lgan sonlarni chiqarish uchun qiymat byte numbers[10] = { V11111100, V01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11100110}; // hozirdagi raqam qiymatini saqlash uchun о‘zgaruvchi mtnumber=0; voidsetup() { // ulanish nuqtalarini chiqishlar kabi о‘zgartirish for(inti=0;i<7;i++) pinMode(pins[i],OUTPUT); } void loop() { showNumber(number); delay(1000); number=(number+1)110; } // yyetti segmentli indikatorga sonlarni chiqarish funksiyasi void showNumber(int num) { for (int i=0;i<7;i++) { if(bitRead(numbers[num],7-i)—HIGH) //segmentni yoqish digitalWrite(pins[i],HIGH); else // segmentni о‘chirish digitalWrite(pins[i],LOW); } } Download 0.5 Mb. Do'stlaringiz bilan baham: |
1 2
Ma'lumotlar bazasi mualliflik huquqi bilan himoyalangan ©fayllar.org 2024
ma'muriyatiga murojaat qiling
ma'muriyatiga murojaat qiling