Բովանդակություն:
- Քայլ 1: Բաղադրությունը
- Քայլ 2. Arduino- ի կառուցում
- Քայլ 3. Arduino- ի կոդավորումը
- Քայլ 4: Լրացուցիչ. LCD էկրան
- Քայլ 5: Տպագիր մասեր
- Քայլ 6: Տեղադրում
Video: Light Controlled Stepper Motor + Wall Bracket/Stand: 6 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:49
Այս տակդիրն օգտագործվում է Arduino- ի միջոցով կառավարվող սլաքային շարժիչ տեղադրելու համար, որը նախատեսված է ինքնաբերաբար կառավարելու վարագույրը `ըստ սենյակի լուսավորության մակարդակի: Լույսի մակարդակը տպելու համար կարող եք նաև ավելացնել LCD էկրան: 3D հանդերձանքը միայն ցուցադրման համար է, իսկական հանդերձանքը կարող է անհրաժեշտ լինել գործնական կիրառման համար, ինչպիսին է վարագույրը, այլ նաև ցանկացած այլ ծրագիր, որի մասին կարող եք մտածել:
Քայլ 1: Բաղադրությունը
Այս նախագիծը սկսելու համար ձեզ հարկավոր է.
- 2 Arduino չիպային հավաքածու- Arduino շարժիչի վահան- Arduino LCD էկրան- 1 հատ տախտակ- 1 երկբևեռ Stepper Motor- 1 D մարտկոց- 1 թեթև կախյալ դիմադրիչ- 1 10k Ω Resistor- 10 Արական արական լարեր- 6 Արական- կանացի լարեր- մուտք դեպի 3D տպիչ
Քայլ 2. Arduino- ի կառուցում
Սկզբում շարեք շարժիչի վահանը Arduino- ի կապումներով և դրանք շարվելուց հետո ամուր տեղադրեք: Հաջորդը ամրացրեք շարժիչի լարերը շարժիչի վահանի 8, 9, 10 և 11 կապում: Դրանից հետո միացրեք D մարտկոցը slots- ում, ինչպես ցույց է տրված դիագրամում: Հաջորդը կցանկանաք ստանալ 6 լարերը (արականից իգական) LCD էկրանը և միացրեք դրանք Arduino- ի մյուս միավորին, ինչպես ցույց է տրված սխեմայում: Այնուհետև տեղադրեք LDR- ն, ինչպես ցույց է տրված վերևում, իսկ դիմադրիչը միանում է բացասական շարքին: LDR- ն ավելացնելիս, դիմադրության կողքին, ավելացրեք A0 միացումներին և հակառակ կողմում, յուրաքանչյուր օգտագործվող տախտակի համար ավելացրեք 1 5V մուտքագրում, այնպես որ, եթե օգտագործում եք 2 տախտակ, կցանկանաք, որ դրանցից յուրաքանչյուրը ունենա 5V և A0 կապում դեպի LDR:
Միացրեք բոլոր լարերը այնպես, որ այն նույնը լինի, ինչ դիագրամը. stepper- 2 միացում մարտկոցին- The breadboard ground- ը պետք է միացված լինի
Քայլ 3. Arduino- ի կոդավորումը
Ահա LDR- ի հիման վրա հանդերձանքի կարգավիճակը փոխելու մի քանի նմուշ
Սա այն ծածկագիրն է, որը թույլ կտա նախագծին ինքնաբերաբար կառավարել վարագույրը: Վերոնշյալ լուսանկարը բացատրում է տարբեր ուղիներ ՝ ներկառուցված IF հայտարարությունների միջով ՝ վարագույրի բարձրացման, վարման կամ տեղում մնալու առումով: (կտտացրեք պատկերի վրա ՝ այն ամբողջությամբ տեսնելու համար, քանի որ ձևավորման հետ կապված խնդիրներ կան)
#defineLDRA0 // Սահմանում է «LDR» փոփոխականը A0 pin#include- ում
constintstepsPerRevolution = 200; // Երբ քայլող շարժիչը միացված է, դրա ամբողջական պտույտը հավասար է 200 քայլի
SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // Ստեփերպերի մուտքը սահմանում է որպես 8, 9, 10, 11 կապում
voidsetup () {myStepper.setSpeed (60); // Սահմանում է, թե որքան արագ է շարժիչը կատարում պտտման ռեժիմ (LDR, INPUT); // սահմանում է «LDR» փոփոխականը որպես մուտքագրում Serial.begin (9600); // Սկսում է սերիական ընթերցում }
voidloop () {intlightlevel = analogRead (LDR); // սահմանում է «lightlevel» փոփոխականը որպես գործողություն, որը կարդում է «LDR» - ի արժեքը Serial.print («Light Level:»); Serial.println (lightlevel); // Տպում է «lightlevel» - ի արժեքը ՝ վերը նշված մակագրությամբ
/* Այժմ կա մի օղակ, որը լուսավորման մակարդակը հայտնաբերում է ճանապարհի յուրաքանչյուր կետում* առկա է 3 տարբերակ, բարձրանալ, իջնել, մնալ նույն դիրքում* Այն նախագծված է այնպես, որ եթե լուսարձակման մակարդակը մնա նույնը, այն մնա նույնը, եթե ոչ, այն կփոխվի * այսինքն, եթե այն լինի 950, ապա գնա 952 -ի, ոչինչ չի պատահի, այնուհանդերձ, եթե այն 950 -ից հասներ 600 -ի, այն կվերցներ վարագույրը և հակառակը * Յուրաքանչյուր քայլ նշվում է տառով քայլի դիմաց ՝ սերիական մոնիտորի միջոցով հետևելու համար, թե որտեղ է գտնվում հանգույցում */
if (lightlevel> = 900) {Serial.println ("A"); // Ո՞ր քայլն է այն loopmyStepper.step (3*stepsPerRevolution); // The stepper- ը կատարում է 3 առաջ պտույտ: Եթե բացասական է, հետ է գնում (30000); // Այն թողնում է այնտեղ 5 րոպե intlightlevel = analogRead (LDR); // սահմանում է փոփոխական «թեթև մակարդակը» որպես LDRSerial.print ("Light Level:") վերջին ընթերցում:; // Տպում է տեքստը փոփոխականի դիմաց Serial.println (lightlevel) // Տպում է լուսավորության մակարդակի արժեքը
if (lightlevel> = 900) {Serial.println ("B"); myStepper.step (0); ուշացում (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (թեթև մակարդակ);
if (lightlevel> = 900) {Serial.println ("C"); myStepper.step (3*-stepsPerRevolution); ուշացում (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (թեթև մակարդակ);}
else {Serial.println ("D"); myStepper.step (3*-stepsPerRevolution); ուշացում (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}}
else {Serial.println ("E"); myStepper.step (3*-stepsPerRevolution); ուշացում (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);
if (lightlevel> = 900) {Serial.println ("F"); myStepper.step (0); ուշացում (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (թեթև մակարդակ);}
else {Serial.println ("G"); myStepper.step (0); ուշացում (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}}
}
else {Serial.println ("H"); myStepper.step (0); ուշացում (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);
if (lightlevel> = 900) {Serial.println ("I"); myStepper.step (3*stepsPerRevolution); ուշացում (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Սերիա.println (թեթև մակարդակ);
if (lightlevel> = 900) {Serial.println ("J"); myStepper.step (3*-stepsPerRevolution); ուշացում (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (թեթև մակարդակ);}
else {Serial.println ("K"); myStepper.step (3*-stepsPerRevolution); ուշացում (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);
}}
else {Serial.println ("L"); myStepper.step (0); ուշացում (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);
if (lightlevel> = 900) {Serial.println ("M"); myStepper.step (0); ուշացում (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (թեթև մակարդակ);}
else {Serial.println ("N"); myStepper.step (0); ուշացում (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);
}}
}
}
Քայլ 4: Լրացուցիչ. LCD էկրան
Սա կտպագրի LDR- ի կողմից հայտնաբերված լույսի մակարդակը LCD էկրանին:
#ներառում
-
// Ավելացնում է հեղուկ բյուրեղների գրադարանը լրացուցիչ կոդով#define ldr A0 // A0 պինին սահմանում է «ldr» փոփոխականը
LiquidCrystal LCD (8, 9, 4, 5, 6, 7); // գրադարան նախաստորագրել ինտերֆեյսի կապերի համարներով
voidsetup () {// կոդը, որն աշխատում է մեկ անգամ startlcd.begin- ում (16, 2); // կարգավորել LCD- ի սյունակների և տողերի համապատասխանաբարpinMode (ldr, INPUT); // Սահմանում է ldr- ը որպես մուտքագրման pinSerial.begin (9600); // Սկսում է հաղորդակցումը սերիական մոնիտորի հետ
}
voidloop () {// ծածկագիրը, որը շարունակաբար կկրկնվիSerial.println (analogRead (ldr)); // Տպում է ldr- ի ստացած ընթերցումը (մի շարք 0-1023-ի միջև) սերիական monitorlcd.setCursor- ում (6, 0); // կուրսորը սահմանել 6 -րդ սյունակի վրա, տող 0lcd.print (analogRead (ldr)); // Տպում է այս ընթերցումը LCD սանդղակի վրա (1000); // Հետաձգում է հաջորդ հրամանը մեկ վայրկյանով
}
Քայլ 5: Տպագիր մասեր
Օգտագործեք հետևյալ ֆայլերը ՝ տրիբունան և հանդերձանքը տպելու համար: Դուք կարող եք հարմարեցնել հանդերձանքը ձեր սեփական նպատակների համար և կարող եք օգտագործել փակագիծը ՝ այն պատին կամ ցուցադրման համար ամրացնելու համար: Քանի որ 3D հանդերձանքը թույլ է, իսկական հանդերձանքը կարող է օգտագործվել որպես դրա փոխարինող, քանի դեռ այն համընկնում է այն վարագույրի հետ, որը նա կառավարելու էր:
Եթե եռաչափ տպագրված հանդերձանքը օգտագործվելու է, հանդերձի ատամներից մեկը հանվել է, որպեսզի ամրացված պտուտակը կարողանա այն ամրացնել շարժիչին:
Պատի փակագծի առջևի 2 ոտքերը նույնպես կարող են հեռացվել, եթե այն ամրացվեն պատին: Դրանք միայն ավելացվել են, որպեսզի այն ոտքի կանգնի, մինչ մենք դրա հետ փորձարկում էինք:
Քայլ 6: Տեղադրում
Այժմ, երբ բոլոր մասերը պատրաստ են, ժամանակն է սկսել վերջնական տեղադրումը:
Նախ, սլաքի շարժիչը տեղադրեք տեղադրված տուփի մեջ և տեղադրեք հանդերձը առանցքի վրա: Հաջորդը, լարերը տեղափոխեք այնպես, որ նրանք գնան հետևի տակ: Վերջապես, տեղադրեք arduino- ն և մարտկոցը կանգառի հետևում
Այժմ ձեր տախտակը պետք է նման լինի վերևում պատկերվածին:
Շնորհավորում եմ:
Հանդերձանքը կարող է օգտագործվել ավտոմատ վարագույրների կամ ցանկացած այլ բանի համար, որը ցանկանում եք վերահսկել LDR- ով:
Դուք ավարտեցիք: Վայելեք ձեր նոր ստեղծագործությունը:
Խորհուրդ ենք տալիս:
LEGO WALL-E Micro- ով ՝ բիթ ՝ 8 քայլ (նկարներով)
LEGO WALL-E Micro: bit: Մենք միկրո: bit- ի և LEGO- ի համար հարմար Bit Board- ի հետ միասին վերահսկում ենք երկու servo շարժիչները, որոնք թույլ կտան WALL-E- ին կարողանալ հատել ձեր հյուրասենյակի հատակի վտանգավոր տեղանքը: .Կոդի համար մենք կօգտագործենք Microsoft MakeCode- ը, որը ծաղկում է
Արդուինո - Լաբիրինթոս լուծող ռոբոտ (MicroMouse) Wall հետևող ռոբոտ. 6 քայլ (նկարներով)
Արդուինո | Maze Solving Robot (MicroMouse) Wall After Robot: Բարի գալուստ, ես Իսահակն եմ, և սա իմ առաջին ռոբոտն է " Striker v1.0 ". Այս ռոբոտը նախատեսված էր պարզ լաբիրինթոս լուծելու համար: Մրցույթում մենք ունեինք երկու լաբիրինթոս և ռոբոտը կարողացավ դրանք բացահայտել: Լաբիրինթոսում ցանկացած այլ փոփոխություն կարող է պահանջել փոփոխություն
DIY Ambient Wall Lights: 9 քայլ
DIY Ambient Wall Lights: Բարև: Ես անանուն ծովախեցգետին եմ, բարի գալուստ այս ալիքի առաջին Instructables ձեռնարկը: Եթե ցանկանում եք ավելին տեսնել, ապա իմ Youtube- ի ալիքը դիտեք այստեղ ՝ https://bit.ly/3hNivF3Now, անցնելով ձեռնարկին: Այս պատի լույսերը կառավարվում են մեկ լո
Mortal Kombat Wall Light: 4 քայլ
Mortal Kombat Wall Light: TOASTY! Եթե դուք տեսել եք իմ որոշ այլ հրահանգներ, ապա կարող եք շատ արագ ասել, որ ես հին դպրոցականների խաղերի դեբիլ եմ: Հաճելի հիշողություններ ունեմ եղբորս հետ Mortal Kombat խաղալու, իրարից վերև հարվածելու և արկեր նետելու մասին: Ես շատ պարզ սարքեցի
Pixel Cloud Ambient Wall Light: 6 քայլ (նկարներով)
Pixel Cloud Ambient Wall Light. Ikea լույսի ևս մեկ փոփոխություն, ավելացված հասցեական LED- ներ և վերահսկիչ `եզակի բան ստեղծելու համար: Նախատեսված է մանկական սենյակում `փափուկ շրջապատող լույսի համար և որպես գիշերային լույս օգտագործելու համար: Այս նախագիծը օգտագործում է 56x APA102 հասցեական պիքսել, NLE