Muhammad Al-Xorazmiy nomidagi
Toshkent axborot texnologiyalari universiteti
3-Amaliy topshiriq
O’rnatilgan tizimlar
Guruh: 412-20
Bajardi: Sobirov Azizjon
Tekshirdi: Xoldorov Shohruhmirzo Imomali o'g'li
1.74HC595 shift registry orqali jarayonlarni boshqarish
1.1-rasm. 74HC595 shift registry sxemasi ko’rinishi
1.2-rasm. 74HC595 shift registry sxematik ko’rinishi
1.3-rasm. 74HC595 shift registry sxemasi uchun ishlatilgan komponentlar
/*
Men qo'shimcha ravishda "diodlar ketma-ketligini o'chirish" funksiyasidan foydalandim, bu funksiya updateShiftRegister2 deb ataladi..
*/
int tDelay = 500;
int latchPin = 11;
int clockPin = 9;
int dataPin = 12;
byte leds = 0;
// ularni o'chirish uchun bu birinchi funktsiya o'ngdan chapga (kam ahamiyatli)
void updateShiftRegister()
{
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, leds); //LSBFIRST eng kam ahamiyatli baytdan boshlanadi, bu 8-pinoutga mos keladi
digitalWrite(latchPin, HIGH);
}
// bu ikkinchi funksiya ularni o'chirishdir
void updateShiftRegister2()
{
digitalWrite(latchPin, HIGH);
shiftOut(dataPin, clockPin, LSBFIRST, leds);
/*
Agar biz ushbu funktsiyada MSBFIRST bilan boshlasak, u eng muhimidan, ya'ni 1-pinoutdan boshlanadi.
digitalWrite (latchPin, LOW);
*/
}
void setup()
{
pinMode(latchPin, OUTPUT);
pinMode(dataPin, OUTPUT);
pinMode(clockPin, OUTPUT);
Serial.begin(9600);
}
/*
void loop()
{
leds = 0;
updateShiftRegister2(1);
delay(500);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister2(1);
delay(500);
}
leds = 0;
updateShiftRegister2(0);
delay(500);
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister2(0);
delay(500);
}
for (int i = 0; i < 8; i++)
{
bitSet(leds, i);
updateShiftRegister2();
delay(500);
}
*/
void loop()
{
leds = 0;
updateShiftRegister();
for (int i = 0; i < 8; i++)
{
delay(tDelay);
bitSet(leds, i); //bitset har bir ledning baytini o'rnatadi
updateShiftRegister();
}
for (int i = 0; i < 8; i++)
{
bitClear(leds, i); //bitclear har bir ledning baytini o'chirib qo'yadi
updateShiftRegister2();
delay(tDelay);
}
}
1.4-rasm. 74HC595 shift registry uchun yozilgan C++ kod
Link
https://www.tinkercad.com/things/hgk9fhSzjxr-74hc595-shift-registry
2. Piezoelement orqali jarayon tashkil etish
2.1-rasm. Piezoelement sxemasi
2.2-rasm. Piezoelement sxemasi sxematik ko’rinishi
2.3-rasm. Piezoelement yordamida jarayonlarni boshqarishsxemasi uchun ishlatilgan komponentlar
2.4-rasm. Piezoelement sxemasi uchun yozilgan C++ kod
Link
https://www.tinkercad.com/things/2JuUfiIjxLM-piezoelement
Xulosa
Men bu amaliy ishni bajarish davomida Arduinoda 74HC595 shift registrini ishlatishni o’rgandim. Bu qurulma orqali juda ko’p insonlarga foyda keltiradigan buyumlar yasashni o’rgandim. Led lompochkalarini 74HC595 shift registr bilan birga ishlatganimizda turli xil buyumlar yasaymiz. Ikkinchi yasagan texnolgiyamiz ham juda qiziqarli texnolgiya ekan.Piezoelementdan foydalandik.
|