Uskuna Majburiy ArduinoUno



Yüklə 1,68 Mb.
tarix23.01.2023
ölçüsü1,68 Mb.
#122449
Olimov Davlatjon 20.11


Uskuna Majburiy
 

  • ArduinoUno

  • Ultrasoniksensori HC-SR04

  • SG-90 mikroservomotor

  • Axlat qutisi

  • Toʻliqto'plam

Dasturiy ta'minot Majburiy

  • Arduino IDE

Arduino Uno


  • Arduino Uno - bu ATmega328P protsessoriga asoslangan ochiq manbali mikrokontroller platasi. Unda 14 ta raqamli kirish/chiqish pinlari (shundan 6 tasi PWM chiqishi sifatida ishlatilishi mumkin), 6 ta analog kirish, USB ulanishi, quvvat ulagichi, ICSP sarlavhasi va tiklash tugmasi mavjud. U mikrokontrollerni qo'llab-quvvatlash uchun zarur bo'lgan hamma narsani o'z ichiga oladi. Boshlash uchun uni USB kabeli bilan kompyuterga ulang yoki adapter bilan quvvatlang. Siz Arduino bilan ortiqcha tashvishlanmasdan tajriba qilishingiz mumkin. Eng yomon stsenariy bo'lsa, siz yangisini sotib olishingiz mumkin, chunki Uno juda tejamkor.

Ultrasonik Sensor HC-SR04



  • HC-SR04 - bu ob'ekt joylashgan masofa ni o'lchash uchun ishlatiladigan ultratovushli masofa sensori. Ushbu sensor tomonidan qo'llaniladigan printsip SONAR deb ataladi. U to'siqlardan qochish roboti, masofani o'lchash moslamasi va boshqalar kabi kichik robototexnika loyihalari uchun juda mos keladi. U ikkita qismdan iborat bo'lib, biri ob'ektgacha bo'lgan masofani o'lchash uchun ultratovush sonarini chiqaradi. Boshqa qismi esa aks-sadoni tinglaydigan qabul qiluvchidir. Ultratovush ob'ektga tegishi bilanoq u orqaga qaytadi va qabul qiluvchi tomonidan aniqlanadi. To'lqinning qaytib kelishi uchun vaqt o'lchanadigan ob'ektning masofasini belgilaydi.

SG90 Micro s ervo motor
Micro servo 9G engil, sifatli va juda tez servo motordir. Ushbu servo ko'pgina radio boshqaruv tizimlari bilan ishlash uchun mo'ljallangan. Bu kichik robototexnika loyihalari uchun juda mos keladi. Aksessuarlar bilan jihozlangan SG90 mini servo masofadan boshqariladigan vertolyotlar, samolyotlar, avtomobillar, qayiqlar va yuk mashinalari uchun juda mos keladi.
 
Ishlash Kontseptsiya

  • Chiqindilarni to'g'ri yo'q qilish muhimdir. Bu har kim bajarishi kerak bo'lgan mas'uliyatdir. Covid-19 davrida odamlar kundalik hayotda yangi narsalarni yaratishga va narsalarni iloji boricha kontaktsiz qilishga harakat qilmoqdalar. Aqlli axlat qutisi hisoblanadi bitta ning bular innovatsion g'oyalar .

  • Aqlli axlat qutisi olddagi narsalarni aniqlash uchun HC-SR04 ultratovush sensoridan foydalanadi.

  • Keyin u signallarni Arduino Uno-ga yuboradi. Arduino signalni tushunadi va axlat qutisi ustidagi qopqoqni ochadigan Servomotorga signal yuboradi.

  • Bu erda biz uni poygani faqat 3 soniya davomida ochish uchun dasturlashtirdik, 3 soniyadan so'ng qopqoq avtomatik ravishda yopiladi. Arduino IDE-da kodga kichik o'zgarishlar kiritish orqali bu vaqtni o'zgartirishingiz mumkin.

  • Ish quyida ko'rsatilgan.


Sxema Diagramma
 
 


  • Aqlli axlat qutisi sxemasi uchta asosiy komponentni o'z ichiga oladi: Arduino Uno, quvvat manbai va ultratovush sensori.

  • Ultrasonik sensor HC-SR04 pinlari aks sado va trig mos ravishda Arduino Uno 5 va 6 pinlariga ulangan . VCC pin Arduino Uno-da 5V ga ulangan va ikkala tuproq ham bir-biriga ulangan.

  • Vin piniga 9v batareya ulangan va yerlar bir-biriga ulangan.

 
Dastur kodi
Arduino kodi uchun dasturni yuklab olish mumkin bu yerda . Arduino Uno-ga kodni yuklang. Arduino va batareyani ikki tomonlama lenta yordamida axlat qutisi devoriga yopishtiring.
#include //servo library
Servo servo;
int trigPin = 5;
int echoPin = 6;
int servoPin = 7;
int led= 10;
long duration, dist, average;
long aver[3]; //array for average
void setup() {
Serial.begin(9600);
servo.attach(servoPin);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
servo.write(0); //close cap on power on
delay(100);
servo.detach();
}

void measure() {


digitalWrite(10,HIGH);
digitalWrite(trigPin, LOW);
delayMicroseconds(5);
digitalWrite(trigPin, HIGH);
delayMicroseconds(15);
digitalWrite(trigPin, LOW);
pinMode(echoPin, INPUT);
duration = pulseIn(echoPin, HIGH);
dist = (duration/2) / 29.1; //obtain distance
}
void loop() {
for (int i=0;i<=2;i++) { //average distance
measure();
aver[i]=dist;
delay(10); //delay between measurements
}
dist=(aver[0]+aver[1]+aver[2])/3;

if ( dist<50 ) {


//Change distance as per your need
servo.attach(servoPin);
delay(1);
servo.write(0);
delay(3000);
servo.write(150);
delay(1000);
servo.detach();
}
Serial.print(dist);
}
Yüklə 1,68 Mb.

Dostları ilə paylaş:




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

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin