Мазмуну:

Жарык башкарылган Stepper Motor + Wall Bracket/Stand: 6 Steps
Жарык башкарылган Stepper Motor + Wall Bracket/Stand: 6 Steps

Video: Жарык башкарылган Stepper Motor + Wall Bracket/Stand: 6 Steps

Video: Жарык башкарылган Stepper Motor + Wall Bracket/Stand: 6 Steps
Video: История Студии GAINAX: Жизнь до Евангелиона 2024, Ноябрь
Anonim
Жарык көзөмөлдөгөн Step Motor + Wall Bracket/Stand
Жарык көзөмөлдөгөн Step Motor + Wall Bracket/Stand

Бул стенд бөлмөдө жарык деңгээлине жараша көшөгөнү автоматтык түрдө башкарууга арналган Arduino башкаруучу тепкич моторун орнотуу үчүн колдонулат. Сиз ошондой эле жарык деңгээлин басып чыгаруу үчүн ЖК экранды кошо аласыз. 3D тиш көрсөтмө үчүн гана, практикалык колдонуу үчүн чыныгы жабдуу керек болушу мүмкүн, мисалы, көшөгө, бирок сиз ойлогон башка колдонмо.

1 -кадам: Ингредиенттер

Бул долбоорду баштоо үчүн сизге керек болот;

- 2 Arduino чип-топтому- Arduino мотор калканы- An Arduino ЖК экраны- 1 нан табак- 1 эки полярдуу Stepper Motor- 1 D батарея- 1 жарыкка көз каранды резистор- 1 10k Ω резистор- 10 эркек-эркек зымдары- 6 эркек- аял зымдары- 3D принтерине кирүү

2 -кадам: Ардуинонун курулушу

Arduino курулушу
Arduino курулушу

Биринчиден, мотор калканчын Arduino казыктары менен тизип, тизип алгандан кийин, аны бекем коюңуз. Кийинки, мотор калканчынын 8, 9, 10 жана 11. төөнөгүчтөрүнө степпердин моторунун зымдарын тиркеп коюңуз. Андан кийин D батарейкасын диаграммада көрсөтүлгөндөй уячаларга туташтырыңыз. Эми сиз 6 зымды (эркектен ургаачыга) алууну каалайсыз. ЖК экраны жана аларды схемада көрсөтүлгөндөй башка Arduino бирдигине сайыңыз. Андан кийин LDRди терс катарга туташтырган резистор менен LDRди орнотуңуз. A0 туташуулары жана карама -каршы тарапта, сиз колдонгон ар бир такта үчүн 1 5V кирүүнү кошуңуз, андыктан эгер сиз 2 тактаны колдонуп жатсаңыз, анда алардын ар биринин 5В жана A0 пини LDRге кетишин каалайсыз.

Бардык зымдарды туташтырыңыз, диаграммага окшош- 2 LDRге кирүү- 2 LDRден чыгуу жана жерге туташкан резистор- 8 зым ЖК, 1 5V, 1 жерге жана 6 кирүү- 4 зым stepper- батареяга 2 туташуу

3 -кадам: Arduino коддоо

Coding Arduino
Coding Arduino

Бул жерде LDRге негизделген тиштүү абалды өзгөртүү үчүн кээ бир үлгү коду бар

Бул долбоорго көшөгөнү автоматтык түрдө башкарууга мүмкүндүк бере турган код. Жогорудагы сүрөт жабылган IF билдирүүлөрүнүн ар кандай жолдорун көшөгөнүн өйдө, ылдый же ошол жерде калуусун түшүндүрөт. (форматтоо көйгөйлөрү бар болгондуктан, сүрөттү толук көрүү үчүн чыкылдатыңыз)

#defineLDRA0 // "LDR" өзгөрмөсүн A0 пинине#камтыйт// Stepper мотор кодун камтыйт

constintstepsPerRevolution = 200; // Stepper мотору иштетилгенде, анын толук айлануусу 200 кадамга барабар

SteppermyStepper (stepsPerRevolution, 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); // Stepper 3 алдыга айланууну жасайт. Эгерде бул терс болсо, ал артка кетет (30000); // Аны 5 мүнөткө калтырат intlightlevel = analogRead (LDR); // "жарык деңгээлин" LDRSerial.print акыркы окуу катары аныктайт ("Жарык деңгээли:"); // Текстти Serial.println (lightlevel) өзгөрмөсүнүн алдында басып чыгарат // Жарык деңгээлинин маанисин басып чыгарат

if (lightlevel> = 900) {Serial.println ("B"); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (жеңил деңгээл);

if (lightlevel> = 900) {Serial.println ("C"); myStepper.step (3*-stepsPerRevolution); delay (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); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (жеңил деңгээл);}

башка {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); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

if (lightlevel> = 900) {Serial.println ("J"); myStepper.step (3*-stepsPerRevolution); delay (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); delay (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (жеңил деңгээл);}

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

}}

}

}

4 -кадам: Кошумча: ЖК экран

Бул ЖК экранда LDR тарабынан аныкталган жарык деңгээлин басып чыгарат.

#кошуу

  • // Кошумча суюк кристалл китепканасы#коду аныктоо ldr A0 // A0 пинге "ldr" өзгөрмөсүн аныктайт

    LiquidCrystal lcd (8, 9, 4, 5, 6, 7); // интерфейстин казыктарынын номерлери менен китепкананы инициализациялоо

    voidsetup () {// startlcd.begin бир жолу иштеген код (16, 2); // ЖКнын мамычаларынын жана линияларынын санын тууралооpinMode (ldr, INPUT); // Ldr'ди pinSerial.begin (9600) катары аныктайт; // Сериялык монитор менен байланыш башталат

    }

    voidloop () {// үздіксиз кайталануучу кодSerial.println (analogRead (ldr)); // ldr алып жаткан окууну басып чыгарат (0-1023 ортосундагы сан) monitorlcd.setCursor (6, 0) сериясында; // курсорду 6 -графага, 0lcd.print сапына коюу (analogRead (ldr)); // Бул окууну ЖК экранда басып чыгарат (1000); // Кийинки буйрукту бир секундга кечиктирет

    }

    5 -кадам: Басылган бөлүктөр

    Стендди жана тиштерди басып чыгаруу үчүн төмөнкү файлдарды колдонуңуз. Сиз тиштерди өзүңүздүн максаттарыңыз үчүн ыңгайлаштыра аласыз жана кронштейнди дубалга же дисплейге орнотуу үчүн колдоно аласыз. 3D тиштери алсыз болгондуктан, ал башкара турган көшөгө дал келсе, чыныгы тетик анын ордуна колдонулушу мүмкүн.

    Эгерде 3D басып чыгарылган тиш колдонула турган болсо, анда тиштердин бири тиштери алынып салынган, аны бурама моторго оңдой алат.

    Дубал кронштейнинин алдыңкы 2 буту дубалга орнотула турган болсо, аны да алып салса болот. Алар биз аны текшерип жатканда, ал турушу үчүн гана кошулду.

    6 -кадам: жайгаштыруу

    Эми бардык бөлүктөр даяр болгондон кийин, акыркы жайгаштырууну баштоого убакыт жетти.

    Биринчиден, степпердин моторун стенддеги берилген кутуга салып, тетикти огуна коюңуз Кийинки, зымдарды жылдырыңыз, алар стенддин артында баратат Акырында, ардуино менен батареяны стенддин артына коюңуз.

    Сиздин такта азыр жогорудагы сүрөттө окшош болушу керек.

    Куттуктайм!

    Тиш автоматтык пардалар же LDR тарабынан башкарылуучу башка нерселер үчүн колдонулушу мүмкүн.

    Сиз бүттүңүз. Жаңы чыгармачылыгыңыздан ырахат алыңыз.

Сунушталууда: