7 – Laboratoriya mashg’uloti
Bir razryadli yetti segmentli indikator. Arduino MK orqali raqamlarni indikatorga chiqarish
Ishdan maqsad: Arduino platformasida raqamlarni namoyish qilish uchun
7-segmentli displeyni ishlash imkoniyatini o’rganish.
Kerakli komponentlar:
• Arduino UNO platformasi;
• kompanentlarni ulash uchun taxta;
• bir xonali etti segmentli displey;
• 510 Ohm qarshilik - 7 dona;
• Ulovchi simlar.
Yetti segmentli displey ma'lum bir tartibda joylashtirilgan va tizimli ravishda birlashtirilgan displeylar guruhidir. Displey kontaktlari a dan g gacha bo'lgan belgilar bilan belgilanadi (va qo'shimcha ravishda dp - o'nli kasrni ko'rsatish uchun) va indikator ulanish turini aniqlaydigan bitta umumiy terminal (umumiy anodli OA yoki umumiy katod OK). Bir vaqtning o'zida bir nechta Displeyni yoqib, indikatorda raqamli belgilar hosil qilish mumkin. Bir xonali etti segmentli indikatorning diagrammasi shakl. 7.1.
7.1-Rasm. Bir xonali yetti segmentli display
Arduino-ga 1-bitli LED indikatorini ulash uchun biz 7 ta raqamli pinni ishlatamiz, har bir indikatorning har biri a - g 470 Ohm cheklash qarshiligi orqali Arduino piniga ulangan. Bizning tajribamizda biz odatdagi OK katodli yetti segmentli indikatordan foydalanamiz, biz umumiy simni manbaning manfiy qutbiga yani “-” ulaymiz. 7.2 -rasmda Arduino kartasiga bir xonali yetti segmentli indikatorning ulanish diagrammasi ko'rsatilgan.
7.2-rasm. Arduino-ga yetti segmentli indikatorning ulanish sxemasi
Eskiz yozishni boshlaymiz. 0 dan 9 gacha bo'lgan raqamlarni yetti sonli indikatorda siklda 1 soniya pauza bilan namoyish etamiz. Keling, 0-9 raqamlari uchun qiymatlar qatorini hosil qilaylik, bu erda baytning eng muhim biti indikator yorlig'iga, eng kami - g segmentiga to'g'ri keladi.
bayt raqamlari [10] = {B11111100, B01100000, B11011010, B11110010, B01100110, B10110110, B10111110, B11100000, B11111110, B11110110};
Arduino pinlariga qiymatni chiqarish uchun raqamning qiymatini ma'lumotlarga aylantirish uchun biz Arduinoning dasturiy tilining bit operatsiyalaridan foydalanamiz:
Bit Read (x, n); // baytning n-bit qiymatini oling x tajriba eskizi 7.1-ro'yxatda keltirilgan.
// A-g raqamlariga ulanish uchun Arduino pin ro'yxati
// yetti segment ko'rsatkichi
int pins[7]={2,3,4,5,6,7,8};
// 0-9 raqamlarini ko'rsatish uchun qiymatlar
byte numbers[10] = { B11111100, B01100000, B11011010, B11110010, B01100110,
B10110110, B10111110, B11100000, B11111110, B11100110};
// joriy raqamning qiymatini saqlash uchun o'zgaruvchan
int number=0;
void setup()
{
// Pinlarni chiqish sifatida sozlang
for(int i=0;i<7;i++)
pinMode(pins[i],OUTPUT);
}
void loop()
{
showNumber(number);
delay(1000);
number=(number+1)%10;
}
// yetti segmentli ko'rsatkich bo'yicha raqamni ko'rsatish funktsiyasi
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 chiqarish
digitalWrite(pins[i],LOW);
}
}
Hisobot mazmuni
1. Laboratoriya ishi mavzusi va ishdan maqsad.
2. Mashg’ulot bo’yicha nazariy bilim va ko’nikmalar.
3. Topshiriq bo’yicha berilgan sxema ko’rinishi va dasturini elektron shaklda tayyorlang va xisobotga kiriting.
4. Dastur natijasini kiriting.
Nazorat savollari
1. Bir razryadli yetti segmentli indikator tushuntiring?
2. Arduino MK orqali raqamlarni indikatorga teskari chiqarish mumkinmi?
Do'stlaringiz bilan baham: |