Mündəricat:
2025 Müəllif: John Day | [email protected]. Son dəyişdirildi: 2025-01-13 06:56
İşığı təqib edən və ya Onlardan çəkinən sadə bir layihədir.
Bu Simulyasiyanı Proteus 8.6 pro-da hazırladım. Tələb olunan komponentlər: -1) Arduino uno.
2) 3 LDR.
3) 2 Dc Dişli Mühərrik.4) Bir Servo.5) Üç 1k Rezistor 6) bir H-Körpü l290D7) Bir açma və söndürmə açarı [Proqramın vəziyyətini dəyişmək üçün]
8) 9v və 5v batareya
Addım 1: Ardunio Kodu
Arduino Kodu bir az dəyişdirildi -23 Fevral 2016 Tarix]
Bu Kod yüksək şərh edilmişdir, mən izah etmək istəmirəm, amma kömək istəsəniz mənimlə əlaqə saxlaya bilərsiniz ([email protected])
Qeyd: -İşığın ardınca 1-ci olaraq bu proqramda iki şərtdən istifadə edirəm.2-ci işığın qarşısını almaq üçün.
Bu Şərtlər yerinə yetirildikdə, Robot İşıqdan Arxalanacaq və ya Ondan çəkinəcək. [Bu, seçdiyim LDR -nin Minimum Dəyəridir. Normal İşıqda Aralığı 80 ilə 95 arasındadır, lakin intensivliyi getdikcə artdıqca int a = 400 -də Gərginlik Bölücü Prinsipi üzərində işləyərkən induksiya yaradır; // Tolerans dəyəri]
Addım 2: Proteus Dosyaları
Arduino Kitabxanası üçün bu linkdən yükləyin
Addım 3: H körpünüz necə işləyir
L293NE/SN754410 çox əsas H körpüsüdür. Biri çipin solunda, biri sağda olmaqla iki körpü var və 2 mühərriki idarə edə bilir. 1 amperə qədər cərəyan edə bilər və 4.5V ilə 36V arasında işləyə bilər. Bu laboratoriyada istifadə etdiyiniz kiçik DC mühərriki aşağı gərginlikdə etibarlı şəkildə işləyə bilər, beləliklə bu H körpüsü yaxşı işləyəcək. H körpüsünün aşağıdakı sancaqları və xüsusiyyətləri var: Pin 1 (1, 2EN), motorumuzu YOX və ya LOWPin 2 (1A) olsun, motorumuz üçün bir məntiq pinidir (girişi YÜKSEK və ya DÜŞÜK) Pindir 3 (1Y) motor terminallarından biri üçündür 4-5 pin yer üçündür Pin 6 (2Y) digər motor ucu üçündür Pin 7 (2A) motorumuz üçün bir məntiq pinidir (giriş YÜKSƏK və ya DÜŞÜK) Pin 8 (VCC2)) motorumuz üçün enerji təchizatıdır, buna görə motorunuzun nominal gərginliyi verilməlidirPin 9-11 əlaqəsizdir, çünki bu laboratoriyada yalnız bir motor istifadə edirsinizPin 12-13 torpaq üçündürPin 14-15 əlaqəsizdirPin 16 (VCC1) 5V-ə qoşulmuşdur. Yuxarıda H-körpüsünün diaqramı və hansı sancaqlar nümunəmizdə nə edir. Diaqramda, mühərrikin məntiq sancaqlarının vəziyyətinə görə necə işlədiyini göstərən bir həqiqət cədvəli (bizim Arduino tərəfindən qurulub).
Bu Layihədə, aktivləşdirmə pimi Arduino'nuzdakı rəqəmsal bir pinə bağlanır, beləliklə onu YÜKSƏDİ və ya DÜŞÜK göndərə və mühərriki AÇIB və ya SÖZ edə bilərsiniz. Motor məntiq sancaqları da Arduino'nuzdakı təyin olunmuş rəqəmsal pinlərə bağlıdır, beləliklə motoru bir istiqamətə çevirmək üçün YÜKSƏLİ və YÜKSƏK, digər istiqamətdə isə LOW və YÜKSƏK göndərə bilərsiniz. Mühərrikin təchizatı gərginliyi ümumiyyətlə xarici enerji təchizatı olan motorun gərginlik mənbəyinə bağlanır. Motorunuz 5V və 500mA -dan az işləyə bilirsə, Arduinonun 5V çıxışından istifadə edə bilərsiniz. Əksər mühərriklər daha yüksək bir gərginlik və daha yüksək cərəyan tələb edir, buna görə xarici bir enerji təchizatı lazımdır.
Motoru H körpüsünə bağlayın 2. şəkildəki kimi motoru H körpüsünə bağlayın.
Və ya Arduino üçün xarici bir enerji təchizatı istifadə edirsinizsə, Vin pinindən istifadə edə bilərsiniz.
Addım 4: LDR necə işləyir
İndi daha çox izahat tələb oluna biləcək ilk şey İşıqdan asılı Rezistorların istifadəsidir. İşığa Bağlı Rezistorlar (və ya LDR -lər) ətraf işıq miqdarına görə dəyişən rezistorlardır, amma Arduino ilə müqaviməti necə aşkar edə bilərik? Həqiqətən edə bilməzsiniz, ancaq 0-5V arasında (əsas istifadədə) ölçə bilən analoq pinlərdən istifadə edərək gərginlik səviyyələrini aşkar edə bilərsiniz. İndi "Yaxşı, müqavimət dəyərlərini gərginlik dəyişikliyinə necə çevirə bilərik?" Deyə soruşa bilərsiniz, sadədir, bir gərginlik bölücü edirik. Bir gərginlik bölücü bir gərginlik alır və sonra giriş gərginliyinə və istifadə olunan rezistorların iki dəyərinin nisbətinə nisbətdə bu gərginliyin bir hissəsini çıxarır. Tənlik aşağıdakı kimidir:
Çıxış Gərginliyi = Giriş Gərginliyi * (R2 / (R1 + R2)) Burada R1 birinci müqavimətin, R2 isə ikincinin dəyəridir.
İndi bu yenə də "Bəs LDR -nin hansı müqavimət dəyərlərinə malikdir?" Sualı verir, yaxşı bir sual. Ətrafdakı işığın miqdarı nə qədər az olarsa, müqavimət nə qədər çox olarsa, daha çox işıq daha az müqavimət deməkdir. İndi xüsusi LDR -lər üçün istifadə etdikləri müqavimət aralığı 200 - 10 kilo ohm arasında idi, lakin bu fərqli olanlar üçün dəyişir, buna görə də onları haradan aldığınıza baxdığınızdan və bir məlumat cədvəli və ya belə bir şey tapmağa çalışdığınızdan əmin olun. case R1 əslində bizim LDR-dir, buna görə də bu tənliyi geri qaytaraq və bəzi riyazi e-sehr (riyazi elektrik sehrləri) edək. İndi əvvəlcə bu kilo ohm dəyərlərini ohmlara çevirməliyik: 200 kilo-ohm = 200, 000 ohm 10 kilo-ohms = 10 000 ohm Beləliklə, qara rəngdə olduğumuzda çıxış gərginliyinin nə olduğunu öyrənmək üçün aşağıdakı nömrələri bağlayırıq: 5 * (10000 / (200000 + 10000)) Giriş 5V-dir, əldə etdiyimiz kimi Arduino -dan. Yuxarıda göstərilənlər 0,24V (yuvarlaqlaşdırılmış) verir. İndi aşağıdakı rəqəmləri istifadə edərək çıxış gərginliyinin ən yüksək parlaqlıqda olduğunu tapırıq: 5 * (10000 / (10000 + 10000)) Və bu bizə tam olaraq 2,5V verir. Beləliklə, bunlar Arduinonun analog pinlərinə daxil olacağımız gərginlik dəyərləridir, ancaq bunlar proqramda görünməyən dəyərlər deyil, "Bəs niyə?" soruşa bilərsiniz. Arduino, analog gərginliyi istifadə edilə bilən rəqəmsal məlumatlara çevirən Analogdan Digital Chip istifadə edir. Arduino-dakı rəqəmsal pinlərdən fərqli olaraq yalnız 0 və 5 V olan YÜKSƏK və ya DÜŞÜK vəziyyətini oxuya bilən analoq pinlər 0-5V-dən oxuya bilər və bunu 0-1023 aralığına çevirə bilər.. Arduinonun hansı dəyərləri oxuyacağını əslində hesablaya bilərik.
Bu xətti bir funksiya olacağından aşağıdakı düsturdan istifadə edə bilərik: Y = mX + C Burada; Y = Rəqəmsal Dəyərlər; m = yamac, (yüksəlmə / qaçış), (rəqəmsal dəyər / analoq dəyər) Harada; C = Y kəsmə Y kəsiyi 0 -dır, bu da bizə verir: Y = mXm = 1023 /5 = 204.6 Buna görə: Rəqəmsal dəyər = 204.6 * Analog dəyər Belə ki, açıq qara rəngdə rəqəmsal dəyər: 204.6 * 0.24 Hansı ki, təxminən 49 verir. Maksimum parlaqlıqda belə olacaq: 204.6 * 2.5 Hansı ki, təxminən 511 verir. İndi bunlardan ikisinin iki analoq pin üzərində qurulması ilə iki dəyərini saxlamaq üçün iki tamsayı dəyişən yarada bilərik və hansının ən aşağı dəyərə sahib olduğunu görmək üçün müqayisə operatorları edə bilərik. robotu bu istiqamətə çevirir.