Robototexnika asoslari


KLAVIATURANI KIRITISH TIZIMI



Yüklə 1,23 Mb.
səhifə23/25
tarix07.01.2024
ölçüsü1,23 Mb.
#211401
1   ...   17   18   19   20   21   22   23   24   25
robototexnika asoslari o\'quv

4.4.KLAVIATURANI KIRITISH TIZIMI
Klaviaturadagi tugmalar qator va ustunlarga joylashtirilgan. 3X4 klaviaturada 4 qator va 3 ustun, 4X4 klaviaturada 4 qator va 4 ustun mavjud:

Har bir kalit ostida membranali kalit mavjud. Bir qatordagi har bir kalit qatordagi boshqa kalitlarga yostiq ostidagi o‘tkazgich izi bilan bog'langan. Ustundagi har bir kalit bir xil tarzda ulanadi - kalitning bir tomoni ushbu ustundagi barcha boshqa kalitlarga o‘tkazgich izi bilan ulanadi. Har bir satr va ustun bitta pinga, 4X4 klaviaturada jami 8 ta pinga chiqariladi:

Tugmani bosish ustun va satr izi o‘rtasidagi kalitni yopadi, bu ustun pin va qator pin o‘rtasida oqim o‘tishiga imkon beradi.
4X4 klaviatura sxemasi qatorlar va ustunlar qanday ulanganligini ko‘rsatadi:

Arduino tugmachaga ulangan satr va ustun pinini aniqlash orqali qaysi tugma bosilishini aniqlaydi.

Bu to‘rt bosqichda sodir bo‘ladi:



    1. Birinchidan, hech qanday tugma bosilmaganda, barcha ustun pinlari HIGH, barcha qator pinlari esa LOW holatda ushlab turiladi:




3. Arduino endi tugma qaysi ustunda ekanligini biladi, shuning uchun endi u faqat tugma joylashgan qatorni topishi kerak. U buni har bir satr pinlarini HIGH ga almashtirish va bir vaqtning o‘zida barcha ustunni o‘qish orqali amalga oshiradi. Qaysi ustun pinining HIGH ga qaytishini aniqlash uchun pinlar:

3.Ustun pinasi yana HIGH bo‘lganda, Arduino tugmachaga ulangan qator pinini topdi:

Yuqoridagi diagrammadan siz 2-qator va 2-ustun kombinatsiyasi faqat 5-raqamli tugma bosilganligini anglatishi mumkinligini ko‘rishingiz mumkin.
Ko‘pgina membrana klaviaturalari uchun pin sxemasi quyidagicha ko‘rinadi:

3X4 yoki 4X4 klaviaturangiz mavjudligiga qarab, klaviaturani Arduino Uno-ga ulash uchun quyidagi diagrammalarga amal qiling:

Kerakli komponentlar:

  • Arduino UNO R3 tekshiruvi;

  • prototip tayyorlash uchun taxta;

  • Servomotor Tower Pro 9g 5G90

  • 4x4 membranali klaviatura

  • Qarshilik 220 Om 2 dona

  • Jamperlar

Ushbu loyihada sakkiz simli 4x4 membranali klaviatura ishlatiladi. Qulfni ochadigan qurilmaga servomotor ulangan.
Ish printsipi
Klaviatura - bu qaysi tugma bosilganiga qarab raqam yoki belgini qaytaradigan tugmalar guruhi. Old klaviatura uchun simlar chapdan o‘ngga 1 dan 8 gacha raqamlangan. Birinchi to‘rtta simlar tugmachalar qatoriga, oxirgi to‘rttasi ustunlarga to‘g’ri keladi. Arxivdagi klaviatura kutubxonasini eksmo.ru/files/arduino_geddes.zip havolasidan yuklab olishingiz va Arduino ishlab chiqish muhiti papkasida saqlashingiz kerak. Himoya tizimini yaratish uchun ushbu klaviaturani servo va ikkita LED bilan uladik. Kirish uchun parolingizni kiriting va tasdiqlash uchun yulduzchani (*) bosing Agar kiritilgan kod sketchda ko‘rsatilgan parolga to‘g’ri kelsa, yashil chiroq yonadi va servo 90 daraja aylanadi. Agar kod noto‘g’ri bo‘lsa, qizil LED yonadi.

Parolni qayta kiritish uchun (#) tugmachasidan foydalaning. Siz foydalanayotgan servoni kuchliroq bilan almashtirishingiz mumkin, bu eshikdagi og’ir mandalni ochishi yoki stol tortmasining ichkaridan qulflanishi mumkin.
Klaviatura va servolar tashqi tomondan o‘rnatiladi.
Klaviaturani sinovdan o‘tkazish.
Avval klaviaturani quyidagi kod bilan sinab ko‘ramiz.
#include
const byte ROWS = 4;
const COLS = 4;
char keys [ROWS] [COLS] = {
{‘1’, ‘2’, ‘3’, ‘A’},
{‘4’, ‘5’, ‘6’, ‘B’},
{‘7’, ‘8’, ‘9’, ‘C’},
{‘*’, ‘0’, ‘#’, ‘D’}
};
byte rowPins [ROWS] = {2,3,4,5};
byte colPins [COLS] = {6,7,8,9};
Keypad keypad = Keypad(makeKeymap
(key), rowPins, colPins, ROWS, COLS);
void setup() {
char key = keypad.getKey();
if (key != NO_KEY) {
Serial.printIn(key);
}
}
Ushbu kodni plataga yuklab oling va Arduino rivojlanish muhitida port monitor oynasini oching 4.9-rasm

4.9-rasm:Arduino va kiritish modulini bog‘lash
Klaviatura yuqoriga qarab, simlarni ketma-ket chapdan o‘ngga Arduino platasidagi 9-2 raqamli pinlariga ulang. Kodni yuklagandan so‘ng, klaviaturadagi bir nechta tugmachani bosing. Har bir tugma bosilganda tegishli belgi Arduino IDE konsolidagi alohida satrda paydo bo‘lishi kerak.
To‘plam

    1. Klaviatura pinlarini to‘g’ridanto‘g’ri Arduino pinlariga ulang.


4.10-rasm: Klaviatura pinlari
2. Yashil va qizil rangli LEDlarni breadboard platasiga o‘rnating. Arduino platasining 11 (yashil LED) va 12 (qizil LED) pinlariga 220 Om qarshilik orqali qisqa oyoqlarni (katodlarni) va uzun oyoqlarni (anodlarni) 220 Om qarshilik orqali ulang.
3. Endi servoni ulang. Jigarrang simni yer piniga, qizil simni 5V pinga va sariq (oq) simni to‘g’ridanto‘g’ri Arduino taxtasining 13-piniga ulang.
4. Sizning sxemangiz 44.2-rasmda ko‘rsatilgan sxemaga mos kelishiga ishonch hosil qiling va uni Arduino xotirasiga eskiz ostida yuklang.
Sketch
#include
#include
#include
Servo myservo;
Password password = Password(“2468”);
const byte ROWS = 4;
const COLS = 4;
char keys [ROWS] [COLS] = {
{‘1’, ‘2’, ‘3’, ‘A’},
{‘4’, ‘5’, ‘6’, ‘B’},
{‘7’, ‘8’, ‘9’, ‘C’},
{‘*’, ‘0’, ‘#’, ‘D’}
};
byte rowPins [ROWS] = { 9,8,7,6 };
byte colPins [COLS] = { 5,4,3,2 };
Keypad keypad = Keypad(makeKeymap(key),
rowPins, colPins, ROWS, COLS);
void setup() {
Serial.begin(9600);
delay(200);
pinMode(11, OUTPUT);
pinMode(12, OUTPUT);
myservo.attach(13);
keypad.addEventListener(keypadEvent);
}
void loop() {
keypad.getKey();
myservo.write(0);
}
void keypadEvent(KeypadEvent eKey) {
switch (keypad.getState() ) {
case PRESSED;
Serial.print(“Pressed: “);
Serial.printIn(eKey);
Switch (eKey) {
case ‘*’: check Password(); break; case ‘#’: password.reset(); break;
default: password.append(eKey);
}
}
void checkPassword(){
if (password.evaluate() ) {
Serial.printIn(“Success”);
myservo.write(90);
digitalWrite(11, HIGH);
delay(500);
digitalWrite(11, LOW);
} else {
Serial.prinIn(“Wrong”);
myservo.write(0);
digitalWrite(12, HIGH);
delay(500);
digitalWrite(12,LOW);
}
}

4.10-rasm: Klaviatura ulangan sxema




Yüklə 1,23 Mb.

Dostları ilə paylaş:
1   ...   17   18   19   20   21   22   23   24   25




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©azkurs.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin