Mündəricat:

İşıq İdarəli Step Motor + Divar Mötərizəsi/Stend: 6 Addım
İşıq İdarəli Step Motor + Divar Mötərizəsi/Stend: 6 Addım

Video: İşıq İdarəli Step Motor + Divar Mötərizəsi/Stend: 6 Addım

Video: İşıq İdarəli Step Motor + Divar Mötərizəsi/Stend: 6 Addım
Video: How to get 5V from 18650 Lithium Battery Powering Arduino ESP32 ESP8266 or charge your phone 2024, Noyabr
Anonim
İşıq İdarəli Step Motor + Divar Mötərizəsi/Stend
İşıq İdarəli Step Motor + Divar Mötərizəsi/Stend

Bu stend, otaqdakı işıq səviyyəsinə görə pərdəni avtomatik idarə etmək üçün nəzərdə tutulmuş Arduino idarə olunan step motoru yerləşdirmək üçün istifadə olunur. İşıq səviyyəsini çap etmək üçün bir LCD ekran da əlavə edə bilərsiniz. 3D dişli yalnız nümayiş üçündür, pərdə kimi praktiki tətbiq üçün, həm də düşünə biləcəyiniz hər hansı digər tətbiq üçün əsl dişli lazım ola bilər.

Addım 1: Tərkibi

Bu layihəyə başlamaq üçün sizə lazım olacaq;

- 2 Arduino çip dəsti- Bir Arduino mühərrik qalxanı- Arduino LCD Ekranı- 1 Breadboard- 1 iki qütblü Step Motoru- 1 D batareya- 1 İşıqdan Rezistor- 1 10k Ω Rezistor- 10 Kişi-kişi telləri- 6 Kişi- qadın telləri- 3D printerə giriş

Addım 2: Arduino qurulması

Arduino tikintisi
Arduino tikintisi

Əvvəlcə motor qalxanını Arduino sancaqları ilə düzün və sıraya düzüldükdən sonra möhkəm yerə qoyun. Sonra step motorun tellərini motor qalxanının 8, 9, 10 və 11 sancaqlarına bağlayın, bundan sonra D batareyasını diaqramda göstərildiyi kimi yuvalara bağlayın. Sonra 6 tel (kişidən dişi) almaq istəyəcəksiniz. LCD ekranı və dövrə diaqramında göstərildiyi kimi digər Arduino qurğusuna qoşun. Sonra LDR -ni yuxarıda göstərildiyi kimi, rezistoru mənfi sıraya bağlayaraq qurun. A0 bağlantıları və qarşı tərəfdə, istifadə etdiyiniz hər bir lövhəyə 1 5V giriş əlavə edin, buna görə də 2 lövhədən istifadə edirsinizsə, onların hər birinin LDR -ə gedən 5V və A0 pinli olmasını istəyəcəksiniz.

Bütün telləri diaqramla eyni şəkildə bağlayın- LDR-yə 2 giriş- LDR-dən 2 çıxış və yerə qoşulan bir rezistor- 8 telli LCD, 1 5V, 1 Topraklama və 6 giriş- 4 tel step- batareyaya 2 əlaqə- Çörək taxtasının zəmini bağlanmalıdır

Addım 3: Arduino kodlaşdırma

Arduino kodlaşdırma
Arduino kodlaşdırma

LDR -yə əsaslanan dişli çarxının vəziyyətini dəyişdirmək üçün bəzi nümunə kodlar

Bu, layihənin bir pərdəni avtomatik idarə etməsinə imkan verən koddur. Yuxarıdakı fotoşəkil, pərdənin qalxması, aşağı düşməsi və ya olduğu yerdə qalması baxımından daxili IF ifadələrindəki fərqli yolları izah edir. (formatlaşdırma problemləri olduğu üçün görüntüyə tam baxmaq üçün üzərinə vurun)

#defineLDRA0 // "LDR" dəyişənini A0 pininə#daxil edin// Step motor kodu daxildir

constintstepsPerRevolution = 200; // Step motoru işə salındıqda, onun tam fırlanması 200 pilləyə bərabərdir

SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // Stepper girişini sancaqlar 8, 9, 10, 11 olaraq təyin edir

voidsetup () {myStepper.setSpeed (60); // Mühərrikin fırlanma rejimini (LDR, GİRİŞ) nə qədər sürətli etdiyini təyin edir; // "LDR" dəyişənini Serial.begin (9600) girişi olaraq təyin edir; // Serial oxumağa başlayır }

voidloop () {intlightlevel = analogRead (LDR); // "lightlevel" dəyişənini "LDR" Serial.print ("Light Level:") dəyərini oxuyan bir hərəkət olaraq təyin edir; Serial.println (lightlevel); // Yuxarıdakı başlıq ilə "işıq səviyyəsi" nin dəyərini yazır

/* İndi yolun hər nöqtəsində işıq səviyyəsini algılayan bir döngə var* 3 variant mövcuddur, yuxarı qalx, aşağı en, eyni vəziyyətdə qal* İşıq səviyyəsi eyni qalsa, eyni qalın, əks halda dəyişəcək * yəni 950 olarsa 952 -ə gedər, heç bir şey olmayacaq, ancaq 950 -dən 600 -ə keçsəydi pərdəni yuxarı çəkər və əksinə * hər addım bir hərflə işarələnərdi addımın önündəki serial monitor vasitəsilə döngədə harada olduğunu izləmək üçün */

if (lightlevel> = 900) {Serial.println ("A"); // loopmyStepper.step -də hansı addımdır (3*stepsPerRevolution); // Stepper 3 irəli inqilab edir. Mənfi olarsa, geriyə gedir (30000); // 5 dəqiqə orda saxlayır intlightlevel = analogRead (LDR); // Var olan "işıq səviyyəsi" ni LDRSerial.print -in ən son oxunuşu olaraq təyin edir ("İşıq səviyyəsi:"); // Mətni Serial.println (lightlevel) dəyişəninin qarşısına yazdırır // İşıq səviyyəsinin dəyərini yazır

əgər (işıq səviyyəsi> = 900) {Serial.println ("B"); myStepper.step (0); gecikmə (10000); intlightlevel = analogRead (LDR); Serial.print ("İşıq səviyyəsi:"); Serial.println (yüngül səviyyə);

if (lightlevel> = 900) {Serial.println ("C"); myStepper.step (3*-stepsPerRevolution); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (yüngül səviyyə);}

başqa {Serial.println ("D"); myStepper.step (3*-stepsPerRevolution); gecikmə (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}}

başqa {Serial.println ("E"); myStepper.step (3*-stepsPerRevolution); gecikmə (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

əgər (işıq səviyyəsi> = 900) {Serial.println ("F"); myStepper.step (0); gecikmə (500); intlightlevel = analogRead (LDR); Serial.print ("İşıq səviyyəsi:"); Serial.println (yüngül səviyyə);}

başqa {Serial.println ("G"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}}

}

başqa {Serial.println ("H"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("I"); myStepper.step (3*stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (yüngül səviyyə);

if (lightlevel> = 900) {Serial.println ("J"); myStepper.step (3*-stepsPerRevolution); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (yüngül səviyyə);}

başqa {Serial.println ("K"); myStepper.step (3*-stepsPerRevolution); gecikmə (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

}}

başqa {Serial.println ("L"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("M"); myStepper.step (0); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (yüngül səviyyə);}

başqa {Serial.println ("N"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

}}

}

}

Addım 4: İsteğe bağlı: LCD ekran

Bu, LCD ekranda LDR tərəfindən aşkarlanan işıq səviyyəsini çap edəcək.

#daxil edin

  • // Əlavə#maye kristal kitabxanasını əlavə edir#define ldr A0 // A0 pininə "ldr" dəyişənini təyin edir.

    LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // kitabxananı interfeys sancaqlarının nömrələri ilə işə salın

    voidsetup () {// startlcd.begin -də bir dəfə işləyən kod (16, 2); // LCD -nin sütun və satır sayını müvafiq olaraq qurunpinMode (ldr, INPUT); // ldr -i giriş pinSerial.begin (9600) olaraq təyin edir; // Serial monitorla ünsiyyətə başlayır

    }

    voidloop () {// davamlı olaraq təkrarlanacaq kodSerial.println (analogRead (ldr)); // lldr-in oxuduğunu (0-1023 arasında bir sıra) monitorlcd.setCursor (6, 0) seriyasında yazdırır; // kursoru 6 -cı sütuna, 0lcd.print sətrinə (analogRead (ldr)) təyin edin; // Bu oxu LCD ekran ekranında yazır (1000); // Növbəti əmri bir saniyə gecikdirir

    }

    Addım 5: Çap olunan hissələr

    Stend və dişli vasitələrini çap etmək üçün aşağıdakı fayllardan istifadə edin. Ötürücüləri öz məqsədləriniz üçün düzəldə bilərsiniz və mötərizəni divara və ya ekran kimi quraşdırmaq üçün istifadə edə bilərsiniz. 3D dişli zəif olduğu üçün idarə edə biləcəyi pərdə ilə uyğun olduğu müddətcə əsl dişli onu əvəz edə bilər.

    3D çaplı dişli istifadə ediləcəyi təqdirdə, dişli dişlərindən biri çıxarılıb ki, bu da mühərrikə sabitlənə bilər.

    Duvara monte ediləcəyi təqdirdə, divar mötərizəsinin ön 2 ayağı da çıxarıla bilər. Yalnız sınaqdan keçirərkən ayağa qalxması üçün əlavə edildi.

    Addım 6: Yerləşdirmə

    İndi bütün hissələr hazırdır, son yerləşdirməyə başlamağın vaxtıdır.

    Birincisi, step motorunu stenddəki təchiz edilmiş qutuya qoyun və dişlini oxa qoyun. Sonra telləri stendin arxasına keçəcək şəkildə hərəkət etdirin Nəhayət, arduino və batareyanı stendin arxasına qoyun.

    Lövhəniz indi yuxarıda göstərilənə bənzəməlidir.

    Təbrik edirik!

    Ötürücü, avtomatik pərdələr və ya LDR tərəfindən idarə olunmasını istədiyiniz hər hansı bir şey üçün istifadə edilə bilər.

    Bitirdin Yeni yaradıcılığınızdan zövq alın.

Tövsiyə: