6-Laboratoriya ishi
Amaliy qism
4*4 klaviatura
|
Arduino (uno)
|
Контакт 1
|
pin 11
|
Контакт 2
|
pin 10
|
Контакт 3
|
pin 9
|
Контакт 4
|
pin 8
|
Контакт 5
|
pin 7
|
Контакт 6
|
pin 6
|
Контакт 7
|
pin 5
|
Контакт 8
|
pin 4
|
Klaviaturamizni ulashimiz uchun aloqalar boshqa raqamli aloqalarga o‘zgartirilishi mumkin. Bu erda sozlamalar:
byte rowPins[ROWS] = {11,10, 9, 8};
byte colPins[COLS] = {7, 6, 5, 4};
2) Ovozli signal zummer yordamida chiqariladi, uni quyidagi tarzda ulaymiz:
Zummer
|
Arduino
|
GND
|
GND
|
IO
|
pin 3
|
VCC
|
5V yoki 3V
|
Aloqa sizga qulay bo‘lgan har bir raqamli chiqishga ham o‘zgartirilishi mumkin. Bu erda sozlash:
tone(3, (int)key*10, 300); // 3 – raqamli port nomeri
KOD QISMI
#include
const byte qator = 4;
const byte ustun = 4;
char Klaviatura [qator] [ustun] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'+','0','#','D'},
};
byte qatorlar[qator]= {2,3,4,5};
byte ustunlar[ustun]= {6,7,8,9};
Keypad kpd = Keypad (makeKeymap(Klaviatura), qatorlar, ustunlar, qator, ustun);
byte i=0;
void setup(){
Serial.begin(9600);
}
void loop (){
char qabul = kpd.getKey();
if(qabul) {
Serial.println(qabul);
}
}
(1-rasm)
(2-rasm)
7-Laboratoriya ishi
Amaliy qism
Ushbu ishda Servo (servo haydovchi) kabi element o'rganiladi. Servo haydovchi - bu doimiy harakatda bo'lgan turli xil ob'ektlar ustidan nazorat qilish uchun mo'ljallangan (valning aylanish burchagi, aylanish harakat tezligi va boshqalar). Nazorat unga tashqi tomondan berilgan parametrlarga qarab amalga oshiriladi. Servo haydovchi quyidagi elementlarni o'z ichiga oladi:
Drayv mexanizmi - masalan, elektr motor bo'lishi mumkin. Unga rahmat, ma'lum bir vaqtda kerakli diapazonning tezligini boshqarish mumkin bo'ladi;
Sensorlar - kerakli parametrlarni nazorat qilish. Ob'ektning holatini, harakatini, burchakning aylanishini yoki aylanish tezligini kuzatish uchun mo'ljallangan bo'lishi mumkin;
Boshqaruv bloki muhim element hisoblanadi, chunki uning yordamida kerakli parametrlar avtomatik rejimda saqlanadi;
Quvvat manbai servo haydovchi hisoblanadi.
Bajariladigan kodning boshida servo funksiyalaridan foydalanish uchun siz "Servo" kutubxonasini kiritishingiz kerak, bu #include qatori orqali amalga oshiriladi. Servo haydovchi bilan ishlashning asosiy funktsiyalari quyidagilardir:
Servo.attach(pin, min, max) - Servo o'zgaruvchini doskadagi pinga biriktiradi. Bu erda min - (ixtiyoriy) - minimal 0 darajaga to'g'ri keladigan PWM qiymati (mikrosekundlarda), maksimal - (ixtiyoriy) - maksimal 180 darajaga to'g'ri keladigan PWM qiymati (mikrosekundlarda);
Servo.write(burchak) - servo rodni ma'lum burchak ostida joylashtiradi, burchak - (gradusda) novda joylashgan burchak;
Servo. writeMicroseconds(uS) - write() funksiyasi bilan bir xil, lekin mikrosekundlarda kiritishni soʻraydi, bu yerda uS novdani maʼlum darajaga aylantirish uchun mikrosekundlardagi qiymatdir;
Servo. read() - servo burchagining joriy qiymatini o'qiydi;
Servo.attached() - servo pinga ulanganligini tekshiradi;
Servo.detach - servoni belgilangan pindan chiqaradi;
Ishni boshlash uchun siz komponentlar kutubxonasidan servo motorni tanlashingiz va uni Arduino Uno-ga rasmda ko'rsatilganidek ulashingiz kerak. (4-rasm), (5-rasm).
4-Rasm Servo komponentni tanlash
5-Rasm. Servoni Arduino Uno platasiga ulash sxemasi
"Servo.attach" o'zgaruvchisi servoni boshqarish uchun mo'ljallangan pinni aniqlash uchun ishlatiladi.
"O'rnatish" funktsiyasida 10-pinli "servo" elementi ulangan, u servoni kerakli buyruq yordamida boshqaradi:
servo.attach(10);
Shuningdek, ketma-ket portni 9600 bit / s tezlikda ulash uchun Serial.begin(9600) qatorini qo'shishingiz kerak. Tarkibni ko'rsatish uchun biz ketma-ket portga ma'lumotlarni chiqarish uchun Serial.println() funksiyasidan va servoning joriy holatini chiqarish uchun servo.read() funksiyasidan foydalanamiz:
Serial.println(servo.read());
Biz qo'shimcha do while siklidan foydalanamiz. Umumiy tsikl konstruktsiyasi siklning asosiy qismining do{} ikki qismidan va bu siklni bajarish uchun while() shartidan iborat:
do{bayonotlar}
while (bajarish sharti);
Keyinchalik, X o'zgaruvchisi o'rnatiladi, u bir yo'nalishda ham, boshqasida ham gradus bo'yicha milning moyilligi burchagiga teng bo'ladi:
int x = 0; // X o'zgaruvchisini 0 ga qo'ying
do{
servo.write(x); //valni X darajaga o'rnating
x=x+1;
delay (500);
Serial.println(servo.read());
}while(x<180);
(6-rasm)
(7-rasn) Elektr dvigatelini boshqarish dasturining ro'yxati - SERVO
Simulyatsiyani ishga tushirgandan so'ng, "Serial Monitor" oynasida servo milning aylanish burchagi qiymatlari ko'rsatiladi. Ishchi maydonning chap tomonida siz uning harakatini ko'rasiz. Natijada, milya 180 darajaga etadi, nolga o'ting va tsiklni yana takrorlang.
8-Laboratoriya ishi
Amaliy qism
Ushbu laboratoriya LiquidCrystal kutubxonasi yordamida Arduino displeyini LCD displeyga qanday ulashni ko'rsatib beradi. Buning uchun biz sxemani 9-rasmga muvofiq yig'amiz. Biz qarshilik qiymati 10 om va qarshilik 220 om bo'lgan potensiyometrdan foydalanamiz. Potensiyometr maksimal qiymatga o'rnatilishi kerak.
9-rasm - LCD1602 displeyning Arduinoga ulanish diagrammasi
(10-rasm) Tinkercad tizimida LCD1602-ni Arduino-ga ulash sxemasi
Birinchi qatorda biz LCD 16x2 displey uchun o'rnatilgan kutubxonani ulaymiz:
#include
LiquidCrystal lcd (12, 11, 5, 4, 3, 2);
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
}
void loop()
{
lcd.setCursor(3, 0);
lcd.print("To’xtashboyev");
lcd.setCursor(0, 15);
lcd.print("Maqsadjon 614-18");
Serial.println("DESIGNED BY : - teacher");
delay(1000);
}
Ekranda keyingi yozuv paydo bo'lganda dasturning bajarilishi natijasi (birinchi belgiga va yozuvning davriy o'ngga siljishiga e'tibor bering) 11-rasmga qarang.
(11-rasm) Tinkercad tizimidagi dastur natijasi
Do'stlaringiz bilan baham: |