Mundarija:

Yorug'lik bilan boshqariladigan qadam dvigatel + devor qavslari/stend: 6 qadam
Yorug'lik bilan boshqariladigan qadam dvigatel + devor qavslari/stend: 6 qadam

Video: Yorug'lik bilan boshqariladigan qadam dvigatel + devor qavslari/stend: 6 qadam

Video: Yorug'lik bilan boshqariladigan qadam dvigatel + devor qavslari/stend: 6 qadam
Video: UFOs: Non-Human Intelligence, Disclosure, Anti-Gravity Tech, Grusch, & Consciousness with Nick Cook 2024, Iyul
Anonim
Yorug'lik bilan boshqariladigan step motor + devor qavslari/stend
Yorug'lik bilan boshqariladigan step motor + devor qavslari/stend

Bu stend xonadagi yorug'lik darajasiga qarab pardani avtomatik boshqarish uchun mo'ljallangan Arduino boshqariladigan step motorini o'rnatish uchun ishlatiladi. Bundan tashqari, yorug'lik darajasini bosib chiqarish uchun LCD displey qo'shishingiz mumkin. 3D tishli qurilmalar faqat namoyish qilish uchun mo'ljallangan, pardalar kabi amaliy qo'llanmalar uchun haqiqiy uskunalar kerak bo'lishi mumkin.

1 -qadam: ingredientlar

Ushbu loyihani boshlash uchun sizga kerak bo'ladi;

- 2 ta Arduino chip-to'plami- Arduino dvigatel qalqoni- Arduino LCD displeyi- 1 ta taxta paneli- 1 ta ikki qutbli qadam dvigateli- 1 D batareya- 1 yorug'lik qarshiligi- 1 10 k ayol simlari- 3D printerga kirish

2 -qadam: Arduino qurilishi

Arduino qurilishi
Arduino qurilishi

Avval dvigatel qalqonini Arduino pinlari bilan bir qatorga qo'ying va ular bir qatorga joylashgach, mahkam joylashtiring. Keyin qadam motorining simlarini dvigatel qalqonining 8, 9, 10 va 11 -gachasi pinlariga ulang, shundan so'ng D batareyasini diagrammada ko'rsatilgandek uyalarga ulang, keyin siz 6 ta simni (erkakdan ayolga) olmoqchisiz. LCD displey va ularni boshqa diagrammada ko'rsatilganidek Arduino -ning boshqa qurilmasiga ulang, so'ngra qarshilikni manfiy qatorga ulab, LDR -ni yuqorida ko'rsatilgan tarzda o'rnating. A0 ulanishlari va qarama -qarshi tomondan, har bir taxtaga 1 ta 5V kirishni qo'shing, shuning uchun agar siz 2 ta taxtadan foydalansangiz, ularning har birining LDRga 5V va A0 pinli bo'lishini xohlaysiz.

Barcha simlarni diagramaga o'xshash qilib ulang- LDRga 2 kirish- LDRdan 2 chiqish va erga ulangan rezistor- 8 simli LCD, 1 5V, 1 topraklama va 6 kirish- 4 sim step- batareyaga 2 ta ulanish- non taxtasi ulangan bo'lishi kerak

3 -qadam: Arduino -ni kodlash

Arduino kodlash
Arduino kodlash

LDR -ga asoslangan vites holatini o'zgartirish uchun ba'zi bir namuna kodi

Bu kod loyihaga pardani avtomatik boshqarishga imkon beradigan kod. Yuqoridagi fotosuratda ichki o'rnatilgan IF bayonotlari orqali turli yo'llar, pardaning yuqoriga, pastga yoki turgan joyida qolishi tushuntiriladi. (rasmni to'liq ko'rish uchun bosing, chunki formatlash muammolari mavjud)

#defineLDRA0 // "LDR" o'zgaruvchisini A0 piniga#kiritish uchun belgilaydi// Step vosita kodini o'z ichiga oladi

constintstepsPerRevolution = 200; // step motorini ishga tushirganda, uning to'liq aylanishi 200 qadamga teng bo'ladi.

SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11);

voidsetup () {myStepper.setSpeed (60); // Dvigatelning aylanish tezligini belgilaydi (LDR, INPUT); // "LDR" o'zgaruvchisini Serial.begin (9600) kirish sifatida belgilaydi; // Seriyali o'qishni boshlaydi }

voidloop () {intlightlevel = analogRead (LDR); // "yorug'lik darajasi" o'zgaruvchisini "LDR" qiymatini o'qiydigan harakat sifatida belgilaydi Serial.print ("Yorug'lik darajasi:"); Serial.println (engil daraja); // Yuqoridagi yozuv bilan "yorug'lik darajasi" qiymatini chop etadi

/* Hozirda har bir nuqtada yorug'lik darajasini aniqlaydigan halqa mavjud* 3 variant mavjud, yuqoriga, pastga tushing, bir xil holatda qoling* Agar yorug'lik darajasi o'zgarmasa shunday bo'ladi. bir xil qoling, aks holda u o'zgaradi * ya'ni 950 bo'lsa, 952 ga o'tadi, hech narsa bo'lmaydi, lekin agar u 950 dan 600 gacha bo'lsa, pardani yuqoriga ko'tarib, aksincha * har bir qadam harf bilan belgilanadi qadam oldida *ketma -ket monitor orqali uning qayerda ekanligini kuzatish uchun */

if (lightlevel> = 900) {Serial.println ("A"); // loopmyStepper.step (3*stepsPerRevolution) da qaysi qadam; // qadam 3 oldinga burilish qiladi. Agar manfiy bo'lsa, u kechiktiriladi (30000); // uni 5 daqiqaga qoldiradi intlightlevel = analogRead (LDR); // "yorug'lik darajasi" ni LDRSerial.print ("Yorug'lik darajasi:") ning so'nggi o'qishi sifatida belgilaydi.; // Matnni Serial.println (lightlevel) o'zgarmaydigan oldida chop etadi // Yorug'lik sathining qiymatini chop etadi.

agar (yorug'lik darajasi> = 900) {Serial.println ("B"); myStepper.step (0); kechikish (10000); intlightlevel = analogRead (LDR); Serial.print ("Yorug'lik darajasi:"); Serial.println (engil daraja);

agar (yorug'lik darajasi> = 900) {Serial.println ("C"); myStepper.step (3*-stepsPerRevolution); kechikish (500); intlightlevel = analogRead (LDR); Serial.print ("Nur darajasi:"); Serial.println (engil darajali);}

boshqa {Serial.println ("D"); myStepper.step (3*-stepsPerRevolution); kechikish (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}}

boshqa {Serial.println ("E"); myStepper.step (3*-stepsPerRevolution); kechikish (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

agar (yorug'lik darajasi> = 900) {Serial.println ("F"); myStepper.step (0); kechikish (500); intlightlevel = analogRead (LDR); Serial.print ("Yorug'lik darajasi:"); Serial.println (engil daraja);}

boshqa {Serial.println ("G"); myStepper.step (0); kechiktirish (10000); intlightlevel = analogRead (LDR); Serial.print ("Nur darajasi:"); Serial.println (engil daraja);}}

}

boshqa {Serial.println ("H"); myStepper.step (0); kechiktirish (10000); intlightlevel = analogRead (LDR); Serial.print ("Nur darajasi:"); Serial.println (engil daraja);

agar (yorug'lik darajasi> = 900) {Serial.println ("Men"); myStepper.step (3*stepsPerRevolution); kechikish (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (engil darajali);

agar (yorug'lik darajasi> = 900) {Serial.println ("J"); myStepper.step (3*-stepsPerRevolution); kechikish (500); intlightlevel = analogRead (LDR); Serial.print ("Nur darajasi:"); Serial.println (engil darajali);}

boshqa {Serial.println ("K"); myStepper.step (3*-stepsPerRevolution); kechikish (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

}}

boshqa {Serial.println ("L"); myStepper.step (0); kechikish (10000); intlightlevel = analogRead (LDR); Serial.print ("Nur darajasi:"); Serial.println (engil daraja);

agar (yorug'lik darajasi> = 900) {Serial.println ("M"); myStepper.step (0); kechikish (500); intlightlevel = analogRead (LDR); Serial.print ("Yorug'lik darajasi:"); Serial.println (engil daraja);}

boshqa {Serial.println ("N"); myStepper.step (0); kechiktirish (10000); intlightlevel = analogRead (LDR); Serial.print ("Nur darajasi:"); Serial.println (engil daraja);

}}

}

}

4 -qadam: ixtiyoriy: LCD displey

Bu LCD displeyda LDR tomonidan aniqlangan yorug'lik darajasini bosib chiqaradi.

#qo'shing

  • // suyuq kristall kutubxonasini#kodini qo'shimcha lddr A0 bilan qo'shadi // A0 piniga "ldr" o'zgaruvchisini aniqlaydi.

    LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // kutubxonani interfeys pinlari raqamlari bilan ishga tushiring

    voidsetup () {// startlcd.begin (16, 2) da bir marta ishlaydigan kod; // LCD -ning ustun va satrlar sonini mos ravishda pinMode (ldr, INPUT) ni sozlash; // ldr -ni kirish pinSerial.begin (9600) sifatida belgilaydi; // Seriya monitor bilan aloqani boshlaydi

    }

    voidloop () {// doimiy ravishda takrorlanadigan kodSerial.println (analogRead (ldr)); // llr o'qishni (0-1023 oralig'ida) monitorlcd.setCursor (6, 0) ketma-ket o'qilishini bosib chiqaradi; // kursorni 6 -ustunga, 0lcd.print qatoriga (analogRead (ldr)) o'rnating; // Ushbu ko'rsatkichni LCD displey ekranida (1000) chop etadi; // Keyingi buyruqni bir soniya kechiktiradi

    }

    5 -qadam: Bosilgan qismlar

    Stend va jihozlarni chop etish uchun quyidagi fayllardan foydalaning. Siz vitesni o'zingizning xohishingizga ko'ra sozlashingiz mumkin va uni devorga yoki ekran sifatida o'rnatish uchun qavsdan foydalanishingiz mumkin. 3D tishli kuchsiz bo'lgani uchun, agar u boshqaradigan pardaga to'g'ri kelsa, uning o'rniga haqiqiy vites ishlatilishi mumkin.

    Agar 3D bosma tishli quti ishlatilsa, vintni dvigatelga mahkamlashi uchun tishli tishlari olib tashlangan.

    Qavsning old 2 oyog'i, agar u devorga o'rnatilsa, olib tashlanishi mumkin. Ular faqat biz uni sinovdan o'tkazayotganimizda o'rnidan turishi uchun qo'shilgan.

    6 -qadam: joylashtirish

    Endi barcha qismlar tayyor, oxirgi joylashtirishni boshlash vaqti keldi.

    Birinchidan, qadam motorini stenddagi qutiga joylashtiring va vitesni o'qga qo'ying Keyingi, simlarni stend orqasida ketadigan qilib siljiting Oxir -oqibat, arduino va batareyani stend orqasiga qo'ying.

    Sizning taxtangiz endi yuqoridagi rasmga o'xshash bo'lishi kerak.

    Tabriklaymiz!

    Vites avtomatik pardalar yoki LDR tomonidan boshqariladigan boshqa narsalar uchun ishlatilishi mumkin.

    Siz tugadingiz. Yangi ijodingizdan rohatlaning.

Tavsiya: