Arduinoning raqamli va Analog dunyosi

Arduino Uno raqamli va analog elektronikaning kuchini ishga soladi. Raqamli pinlar kirish yoki chiqish sifatida sozlanishi mumkin, bu tugma holatlarini o'qishdan LED yoki motorlarni boshqarishgacha bo'lgan turli xil vazifalarni qo'llab-quvvatlaydi. Shu bilan birga, analog pinlar sensorlar va boshqa analog qurilmalarni ulashga imkon beradi, ijodiy loyihalar uchun imkoniyatlarni kengaytiradi.
Arduino Unoning ko'plab qalqonlar bilan mosligi uning imkoniyatlarini oshiradi. Qalqonlar-bu Uno-ga osongina ulanishi mumkin bo'lgan qo'shimcha taxtalar bo'lib, ular ulanish, GPS-ni kuzatish yoki hatto musiqa sintezi kabi funktsiyalarni qo'shadi. Ushbu modullik foydalanuvchilarga Arduino Uno-ni o'ziga xos loyiha talablariga moslashtirishga imkon beradi.
Texnik atributlaridan tashqari, Arduino Uno muvaffaqiyatining katta qismini uni o'rab turgan jonli va qo'llab-quvvatlovchi jamoaga qarzdor. Onlayn forumlar, o'quv qo'llanmalari va ochiq manbali loyihalarning ko'pligi yangi boshlanuvchilar va tajribali foydalanuvchilar uchun juda ko'p resurslarni taqdim etadi. Arduino hamjamiyatining hamkorlik ruhi o'rganish va almashish madaniyatini rivojlantiradi, innovatsiyalarni oldinga suradi.
Elektronika va DIY loyihalari sohasida Arduino Uno mayoq bo'lib, ixlosmandlarni cheksiz imkoniyatlar dunyosiga yo'naltiradi. Uning soddaligi, kuchli xususiyatlar bilan birgalikda, elektron qarashlarini haqiqatga aylantirmoqchi bo'lganlar uchun ideal tanlovdir. Texnologiya oldinga davom etmoqda.
Servo kutubxonasini ishga tushiramiz.
Servo servo;
Servo deb nomlab olamiz.
int const trigPin = 2;
Implus jo`natish uchun 2-pinga ulab const qilib belgilab olamiz.
int const echoPin = 3;
Implus qabul qiluvchi uchun 3-pinga ulab const qilib belgilab olamiz.
void setup() {
pinMode(trigPin, OUTPUT);
chiquvchi (jo`natuvchi) pinni aynan chiquvchi pin ekanligini bildirib olamiz.
pinMode(echoPin, INPUT);
kiruvchi (qabul qiluvchi) pinni ham aynan kiruvchi pin ekanligi belgilab olamiz.
servo.attach(9);
servo motorni qaysi pinga ulaganimizni bildirib olamiz ya`ni 9-pinga.
}void loop() {
int duration, distance;
masofani o`lchash uchun ultrasonic sensor implus yuborib, qabul qilganligi uchun
duration va distance kerak bo`ladi.
digitalWrite(trigPin, HIGH);
Implus jo`natilganda va qabul qilishi ya`ni HIGH ishlashi kerak bo`ladi.
delay(1);
orasida 1 millisekund farq bo`lishi uchun
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
1 marta puls jo`natish uchun ya`ni yonib o`chishi uchun kerak bo`ladi.
distance = (duration/2)/29.1
masofa malumotlar jadvalida berilgan yarim vaqtning 29.1 ga bolingani bilan hisoblanadi. Puls chiqadi uziriladi qaytadi ya`ni yarim vaqtning 29.1 bo`lib va uni yana 2 bo`lganda masofa kelib chiqanligi uchun ushbu amal bajariladi.
if (distance <=40 && distance >=5){
Ultrasonic ko`rshapalak holatida 2 sm dan kichik masofani payqamaganligi uchun oraliq masofani 5-40 sm deb belgilab olamiz.
servo.write(60);
Maketimizni tuzayotganimizda gradus o`rnatilgan holatida 170o bo`lganligi uchun gradusini 60o deb belgilab olamiz.
delay(2000);
Ochilib tez yopilib qolmasligi uchun 2000 millisekund deb belgilaymiz
} else {
servo.write(170);
aks holda yopiq holda turaveradi,
}
delay(60);
}
60 millisekund qoyamiz chastotasi ya`ni har bir siklni aylanish uchun biroz vaqt qo`yganimiz ma`qul bo`ladi aks holda pulsni tez qabul qilib tez jo`natganiligi sabab sensorda nosozlik kelib chiqmasligini oldini olish maqsadida.
Keyingi qism arduino uno qurilmasiga dasturni kiritishdan boshlaymiz dastavval keltirilgan arduino 1.8.19 programmasidan foydalanamiz.
D astur qabul qilgandan so`ng arduino unoga joylaymiz.