Мазмуну:
- 1 -кадам: Ингредиенттер
- 2 -кадам: Ардуинонун курулушу
- 3 -кадам: Arduino коддоо
- 4 -кадам: Кошумча: ЖК экран
- 5 -кадам: Басылган бөлүктөр
- 6 -кадам: жайгаштыруу
Video: Жарык башкарылган Stepper Motor + Wall Bracket/Stand: 6 Steps
2024 Автор: John Day | [email protected]. Акыркы өзгөртүү: 2024-01-30 10:41
Бул стенд бөлмөдө жарык деңгээлине жараша көшөгөнү автоматтык түрдө башкарууга арналган Arduino башкаруучу тепкич моторун орнотуу үчүн колдонулат. Сиз ошондой эле жарык деңгээлин басып чыгаруу үчүн ЖК экранды кошо аласыз. 3D тиш көрсөтмө үчүн гана, практикалык колдонуу үчүн чыныгы жабдуу керек болушу мүмкүн, мисалы, көшөгө, бирок сиз ойлогон башка колдонмо.
1 -кадам: Ингредиенттер
Бул долбоорду баштоо үчүн сизге керек болот;
- 2 Arduino чип-топтому- Arduino мотор калканы- An Arduino ЖК экраны- 1 нан табак- 1 эки полярдуу Stepper Motor- 1 D батарея- 1 жарыкка көз каранды резистор- 1 10k Ω резистор- 10 эркек-эркек зымдары- 6 эркек- аял зымдары- 3D принтерине кирүү
2 -кадам: Ардуинонун курулушу
Биринчиден, мотор калканчын 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 коддоо
Бул жерде LDRге негизделген тиштүү абалды өзгөртүү үчүн кээ бир үлгү коду бар
Бул долбоорго көшөгөнү автоматтык түрдө башкарууга мүмкүндүк бере турган код. Жогорудагы сүрөт жабылган IF билдирүүлөрүнүн ар кандай жолдорун көшөгөнүн өйдө, ылдый же ошол жерде калуусун түшүндүрөт. (форматтоо көйгөйлөрү бар болгондуктан, сүрөттү толук көрүү үчүн чыкылдатыңыз)
#defineLDRA0 // "LDR" өзгөрмөсүн A0 пинине#камтыйт
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 тарабынан башкарылуучу башка нерселер үчүн колдонулушу мүмкүн.
Сиз бүттүңүз. Жаңы чыгармачылыгыңыздан ырахат алыңыз.
Сунушталууда:
LEGO WALL-E Micro менен: бит: 8 кадам (сүрөттөр менен)
LEGO WALL-E Micro: bit менен: Биз LEGOго ылайыктуу Бит тактасы менен бирге WALL-E конок бөлмөсүнүн кабатынын коркунучтуу жерлерин басып өтүүгө мүмкүндүк бере турган эки серво моторун көзөмөлдөө үчүн micro: bitти колдонобуз. .Код үчүн биз Microsoft MakeCode колдонобуз, бул блог
DIY Ambient Wall Lights: 9 кадам
DIY Ambient Wall Lights: Hi. Мен Anonymous Shrimpмин, бул каналдагы Instructables биринчи үйрөткүчүнө кош келиңиз. Эгерде сиз дагы ушул нерселерди көргүңүз келсе, менин Youtube каналымды бул жерден текшериңиз: https://bit.ly/3hNivF3Now, үйрөткүчкө. Бул дубал чырактары бир лон тарабынан башкарылат
Модулдук Wall Lighting Panel: 11 Steps (Сүрөттөр менен)
Модулдук дубалдын жарыктандыруу панелдери: Мен жарык маселеси жөнүндө уктум жана муну узак ойлонулган долбоорду ишке ашыруу мүмкүнчүлүгү катары көрдүм. Мен ар дайым жарык менен дубал жасалгаларын жактырчумун. Сатып алуучу көптөгөн түшүнүктөр бар, мисалы Nanoleafs. Булар, адатта, абдан кымбат жана
Shadow Box Wall Art: 8 кадам (Сүрөттөр менен)
Shadow Box Wall Art: Кээде мен өзүмдү чектебестен, кызыктуу, бирок татаал идеяларды ишке ашыра ала турган татаал долбоорду жакшы көрөм. Менин сүйүктүүлөрүм - эстетикалык жактан жагымдуу долбоорлор, мен буга чейин бир нечесин бүтүргөм. Бул долбоорлордун үстүндө иштеп жүргөндө мен
Heart Shaped Remote Controlled Back-Light Wall Decor: 8 Steps (Сүрөттөр менен)
Жүрөк формасындагы алыстан башкарылуучу арткы жарык дубал декору: Бул DIY үй декорунун белек жасоо боюнча үйрөткүчүндө, биз фанера тактайын колдонуп, жүрөк формасындагы арткы жарык дубалга илинген панелди жасоону жана алыстан башкаруу жана жарык менен башкарылуучу ар кандай жарык эффекттерин кошууну үйрөнөбүз. сенсор (LDR) Arduino аркылуу. Сен с