6- Laboratoriya mashg’uloti.
Tugma. Yorug‘lik diodini yoqish misolida tugmani bosilishiga ishlov berish.
Nazariy qism
Raqamli kirishdagi tugmachalardan foydalanish. Ilgari biz ma'lumotlarni kiritish uchun analog portlardan (pinlardan) foydalanardik, endi biz raqamli portlarni amalda ko'rib chiqamiz. Raqamli portlar faqat ikkita signal darajasi - yuqori "+5" va past "0" haqida bilganligi sababli, ular faqat ikkita pozitsiyaga ega bo'lgan tugmalar va kalitlarga ta'sir o'tkazish uchun juda mos keladi - "Yoqish" va "O'chirish"Biz tugmachaning bir pimini simga, ikkinchisini esa raqamli portga ulaymiz. Tugmani bosganingizda, elektron o'chadi va er uchi "-" raqamli portga ulanadi va shuning uchun qabul qilingan signal Arduino tomonidan "past" deb hisoblanadi. Ammo kuting - tugma bosilmaganda nima bo'ladi? Ushbu holatda port hamma narsadan uzilib qoladi, ya'ni havoda osiladi va biz bu tushunarsiz holatni "aniqlanmagan" yoki suzuvchi deb ataymiz. Ya'ni, Arduino bunday holatga qanday munosabatda bo'lishini aniq ayta olmaymiz. Turli xil sharoitlarga qarab atrof-muhit buni BOShQA ("YUQORI" +5 Volt), LOW ("LOW" - mantiqiy nol) deb qabul qilish mumkin.Hech qanday tafovutlar bo'lmasligi uchun va mikrokontroller hozirda kirishda nima borligini aniq bilishi uchun, biz Arduino portini qo'shimcha ravishda +5 Volt avtobus bilan cheklovchi qarshilik (nominal qiymati 1K - 10KΩ bo'lgan har qanday kishi bajaradi) orqali bog'laymiz. Ushbu "tortishish" doimiy ravishda YUQORI + 5V signal mavjudligini kafolatlaydi va tugmanibosganingizda zanjir erga yaqinlashadi - "0", ya'ni arduino uchun kirishdagi signal YUQORidan LOWga o'zgaradi, ya'ni HIGH + 5V dan LOW "0" gacha.
(Ixtiyoriy: Rezistorlarga ko'nikib, qachon zarurligini bilsangiz, ATmeganing o'zida joylashgan ichki tortishish rezistorlarini faollashtirishingiz mumkin.
Uskunani ulash:
Agar tugmalar ikkita kontaktga ega bo'lsa tugmasi bosildi - kontakt yopiq, agar bosilmasa, u ochiq.
Tugmalarda ikkala va to'rtta kontaktlardan foydalanamiz, ammo shuni ta'kidlash kerakki, biz hozir ishlatadigan tugmachalarda ikkita kontakt parallel.
Tugmani ulashning eng oson usuli simlarni terminallarga ulashdir - obliquely (diagonal).
1 tugmachasining har qanday pinini erga ulang (GND).
Tugmaning boshqa pimini raqamli port 2 ga ulang.
2-tugmachaning har qanday pinini erga ulang (GND).
Tugmaning boshqa pimini raqamli port 3 ga ulang.
Raqamlarning 2,3 raqamiga boradigan tugmachalarning oyoqlarida 10K "tortib olish" rezistorlarini (jigarrang / qora / qizil) ulang va ushbu rezistorlarning ikkinchi o'tkazgichlarini umumiy "-" (GND) ga ulang. Ushbu rezistorlar kirishning + 5V (tugma bosilmaydi) yoki bosilganda "0" bo'lishini ta'minlaydi va boshqa hech narsa yo'q. (Va shuni unutmangki, analog kirishlardan farqli o'laroq, raqamli kirishlar faqat ikkita yuqori va past darajalarga ega.)
Nur chiqaradigan diyot:
Ko'pgina Arduino taxtalarida, shu jumladan UNO da, 13-portga ulangan oqim cheklovchi qarshilik o'rnatilgan LED o'rnatilgan va siz o'zingiz o'rnatishingiz shart emas.
Ammo, agar siz o'zingizning ulanishga qaror qilsangiz, qo'shimcha ma'lumot olish uchun, bundan ham yomoni bo'lmaydi.
LEDning ijobiy simini Arduino raqamli portiga # 13 ulang
LEDning salbiy simini 330 ohm qarshilikka ulang.
Rezistorning boshqa qo'rg'oshinini GND "-" ga ulang.
Yorug'lik chiqaradigan diod Arduinoning 10-chi chiqishiga 200 ohmlik oqim cheklovli qarshilik orqali ulangan bo'lsa, qarshilik qiymati 200 ohm - 500 ohm o'rnatilishi mumkin, bu LED orqali o'tadigan oqimni va shunga mos ravishda uning yorqinligini o'zgartiradi. Agar siz LEDni to'g'ridan-to'g'ri ulasangiz, u yomon tugaydi, LED orqali katta oqim oqadi, natijada LEDning o'zi yoki Arduino chiqishi ishlamay qoladi. Bundan tashqari, LED nihoyat, diyot ekanligini hisobga olish kerak, u qutbga ega!Agar siz LEDni noto'g'ri ulasangiz, u yonmaydi, chunki u orqali oqim o'tmaydi (u shunchaki yopiladi). LEDning kutupluluğunu aniqlash oson, LEDning qisqa oyog'i minus (ya'ni nol yoki GND), uzun oyoq esa +.
Tugma shunday bog'langanki, uni bosish vaqtida Arduino raqamli kiritilishining mantiqiy birligiga mos keladigan Arduino kirish raqami # 10 +5 voltga o'tadi. Tugma bosilmagan paytda, bizning 10 kΩ qarshilik Arduino kirishini GND ga (ya'ni nolga) tortadi va Arduino usuli mantiqiy nolga teng bo'ladi. Agar siz ushbu tortishish qarshiligini ishlatmasangiz, unda noto'g'ri pozitsiyalar paydo bo'lishi mumkin bo'lgan vaziyat yuzaga kelishi mumkin, chunki bu Arduino kirish qismida tortishish qarshiligi bo'lmaydi va shunga muvofiq kuchlanish nolga teng bo'lmaydi, u tartibsiz o'zgaradi, bu tashqi ko'rinishini keltirib chiqaradi Arduino kirishidagi yolg'on mantiq.
Shunday qilib, endi Arduino uchun dastur yozish vaqti keldi. Birinchidan, LED tugmachasi bosilgan vaqtgacha yonib tursin. Albatta, bunday muammoni mikrokontrollersiz hal qilish juda oson, ammo biz biron bir joydan boshlashimiz kerak. Biz Arduino dasturlash muhitini ochamiz (Arduinoni qanday dasturlash kerakligi # 1da batafsil berilgan) va biz kod yozishni boshlaymiz:
const int buttonPin = 2; const int ledPin = 13;
void setup() {
pinMode(ledPin, OUTPUT); pinMode(buttonPin, INPUT);}
void loop(){
int buttonState = digitalRead(buttonPin);
if(buttonState== HIGH){
digitalWrite(ledPin, HIGH); } else{
digitalWrite(ledPin, LOW); }
Hulosa:
Bugun biz tugmachani va LEDni arduinoga ulashni o’rgandik (tugma bosilganda LED yonadi, bo'shatilgandan keyin yonmaydi). Bu kelajakda bizga ko'p marta foydali bo'lgan va Arduinoda robotni boshqarish uchun ishlatilishi mumkin bo'lgan asosiy sxemalardan biridir. bizning kelajakdagi robotimizda tugmachani bosish bilan turli harakatlar bo'lishi mumkin.
Do'stlaringiz bilan baham: |