Мазмұны:
- 1 -қадам: ингредиенттер
- 2 -қадам: Arduino құрылысы
- 3 -қадам: Arduino кодтау
- 4 -қадам: Қосымша: СКД экраны
- 5 -қадам: Басылған бөліктер
- 6 -қадам: орналастыру
Бейне: Жарықпен басқарылатын қадамдық қозғалтқыш + Қабырға кронштейні/стенд: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Бұл стенд бөлмедегі жарық деңгейіне сәйкес перделерді автоматты түрде басқаруға арналған Arduino басқарылатын қадамдық қозғалтқышты орналастыру үшін қолданылады. Сондай -ақ, жарық деңгейін басып шығару үшін СКД экранын қосуға болады. 3D беріліс тек демонстрацияға арналған, перде сияқты практикалық қолдану үшін нақты құрал қажет болуы мүмкін, бірақ сіз ойлайтын кез келген басқа қосымша.
1 -қадам: ингредиенттер
Бұл жобаны бастау үшін сізге қажет;
- 2 Arduino чиптер жиынтығы- Arduino моторлы қалқаны аналық сымдар- 3D принтеріне қол жеткізу
2 -қадам: Arduino құрылысы
Алдымен мотор қалқанын Arduino түйреуіштерімен қатарға қойыңыз және олар бір қатарға қойылғаннан кейін оны мықтап орналастырыңыз. Содан кейін қадамдық қозғалтқыштың сымдарын қозғалтқыш қалқанының 8, 9, 10 және 11 түйреуіштеріне бекітіңіз, содан кейін D батареясын диаграммада көрсетілген ұяшықтарға жалғаңыз, содан кейін сіз 6 сымды (еркектен әйелге) алғыңыз келеді. СКД экраны мен оларды схемада көрсетілген басқа Arduino қондырғысына қосыңыз, содан кейін резистор теріс жолға қосылып, жоғарыда көрсетілгендей LDR орнатыңыз. A0 қосылымдары мен қарама -қарсы жаққа әр тақтаға 1 5В кіріс қосыңыз, сондықтан егер сіз 2 тақтаны қолдансаңыз, олардың әрқайсысында LDR -ге 5В және A0 түйреуіші болғанын қалайды.
Барлық сымдарды диаграммаға ұқсас етіп қосыңыз- LDR-ге 2 кіру- 2 LDR-ден шығыс және жерге қосылатын резистор- СКД-ге 8 сым, 1 5 В, 1 Жерге және 6 кіріс- 4 сым қадам- аккумуляторға 2 қосылым- Нан тақтайшасы қосылуы керек
3 -қадам: Arduino кодтау
LDR -ге негізделген беріліс қорабының күйін өзгертуге арналған код үлгісі
Бұл жобаға пердені автоматты түрде басқаруға мүмкіндік беретін код. Жоғарыдағы фотосуретте кірістірілген IF мәлімдемелері арқылы әр түрлі жолдар перденің жоғары, төмен немесе орнында қалу тұрғысынан түсіндіріледі. (пішімдеу мәселесі болғандықтан, суретті толық көру үшін оны басыңыз)
#defineLDRA0 // «LDR» айнымалысын A0 түйрегіне#қосу үшін анықтайды
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); // Жоғарыдағы жазумен «жеңіл деңгей» мәнін басып шығарады
/* Қазір жарық деңгейін жолдың әр нүктесінде анықтайтын цикл бар* 3 опция бар, жоғары көтерілу, төмен түсу, сол күйде қалу* Ол жарық деңгейі өзгеріссіз қалатындай етіп жасалған. сол қалпында болыңыз, егер ол өзгермесе * яғни егер ол 950 болса, онда 952 -ге кетеді, ештеңе болмайды, алайда егер ол 950 -ден 600 -ге дейін көтерілсе, пердені жоғары көтеріп, керісінше болады * Әр қадам әріппен белгіленеді қадамның алдында тізбекті монитор арқылы оның қай жерде орналасқанын қадағалау үшін */
if (lightlevel> = 900) {Serial.println («A»); // loopmyStepper.step қай қадамда (3*stepsPerRevolution); // Қадам 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 («Жарық деңгейі:»); Serial.println (жеңіл деңгей);}}
else {Serial.println («E»); myStepper.step (3*-stepsPerRevolution); кешіктіру (10000); intlightlevel = analogRead (LDR); Serial.print («Жарық деңгейі:»); Serial.println (жеңіл деңгей);
if (lightlevel> = 900) {Serial.println («F»); myStepper.step (0); delay (500); intlightlevel = analogRead (LDR); Serial.print («Light Level:»); Serial.println (жеңіл деңгей);}
else {Serial.println («G»); myStepper.step (0); delay (10000); intlightlevel = analogRead (LDR); Serial.print («Light Level:»); Serial.println (lightlevel);}}
}
else {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 (жеңіл деңгей);
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 («Жарық деңгейі:»); Serial.println (жеңіл деңгей);
}}
else {Serial.println («L»); myStepper.step (0); кешіктіру (10000); intlightlevel = analogRead (LDR); Serial.print («Жарық деңгейі:»); Serial.println (жеңіл деңгей);
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)); // llr жинайтын оқуды басып шығарады (0-1023 арасындағы сан) monitorlcd.setCursor (6, 0) сериясында; // курсорды 6 -бағанға, 0lcd.print жолына орнатыңыз (analogRead (ldr)); // Бұл көрсеткішті СКД экранында басып шығарады (1000); // Келесі команданы бір секундқа кешіктіреді
}
5 -қадам: Басылған бөліктер
Стенд пен механизмді басып шығару үшін келесі файлдарды пайдаланыңыз. Сіз редукторды өзіңіздің қажеттіліктеріңізге қарай баптай аласыз және оны қабырғаға немесе дисплейге бекіту үшін кронштейнді қолдана аласыз. 3D редукторы әлсіз болғандықтан, егер ол басқаратын пердеге сәйкес келсе, оны ауыстыруға болады.
Егер 3D басып шығарылған беріліс құралын пайдаланатын болсақ, онда бұрандалы қозғалтқышқа бекітетін етіп тісті тістердің біреуі алынып тасталған.
Қабырға кронштейнінің алдыңғы 2 аяғы қабырғаға бекітілетін болса, оны да алып тастауға болады. Олар тек тестілеу кезінде орнынан тұруы үшін ғана қосылды.
6 -қадам: орналастыру
Енді барлық бөлшектер дайын, соңғы орналастыруды бастау керек.
Алдымен, қадамдық қозғалтқышты стендте берілген қорапқа салыңыз және редукторды оське қойыңыз Келесіде, сымдарды тіректің артына қарай жылжытыңыз Ақырында, ардуино мен батареяны тіректің артына қойыңыз.
Сіздің тақтаңыз енді жоғарыдағы суреттегідей болуы керек.
Құттықтаймын!
Беріліс автоматтандырылған перделерге немесе LDR басқарғыңыз келетін кез келген басқа нәрсеге қолданылуы мүмкін.
Сіз аяқталды. Жаңа туындыдан ләззат алыңыз.
Ұсынылған:
Қозғалысты жарықтандыратын DIY жарылатын қабырға сағаты: 20 қадам (суреттермен)
Қозғалысты жарықтандыратын DIY жарылатын қабырға сағаты: Бұл нұсқаулықта мен бейнеде интеграцияланған жарықтандыру жүйесі бар креативті және ерекше көрінетін қабырға сағатын қалай жасау керектігін біртіндеп көрсетемін. . Мен жаяу жүргенде
Сыртқы жарықдиодты қабырға сағаты: 11 қадам (суреттермен)
Жарықдиодты жарықдиодты қабырға сағаты: Жақында мен көптеген адамдардың үлкен жарықдиодты матрицалар жасап жатқанын көрдім, бірақ олар күрделі кодтан немесе қымбат бөлшектерден немесе екеуінен тұрады. Сондықтан мен өте арзан бөлшектерден тұратын жеке жарықдиодты матрицаны құруды ойладым
Қабырға метрінің дисплейі: 4 қадам (суреттермен)
Қабырғаға есептегіштің дисплейі: Мен eBay -ден қалталы сағатты арзан сатып алдым, бұл қызықты жаңалық болады деп ойладым. Мен сатып алған есептегіш жарамсыз болып шықты, бірақ мен қабырғаға ілінетін нәрсені шығаруға бел будым
Cryptic қабырға сағаты: 27 қадам (суреттермен)
Cryptic қабырға сағаты: Уақыттың өтуі - біз басқара алмайтын нәрсе. Егер біз ұйықтап жатсақ, ояу, скучно немесе айналысатын болсақ, дәл солай болады. Ағымдағы оқиғалармен уақыт өте беретінін есте ұстаған жөн. Біз уақыттың өтуін күтіп жатқанда, неге бірдеңе жасамасқа
Жүрек пішінді қашықтан басқарылатын артқы жарығы бар қабырға декорациясы: 8 қадам (суреттермен)
Жүрек пішінді қашықтан басқарылатын артқы жарығы бар қабырға декоры: Бұл үйге арналған декоративті сыйлықтарды жасау бойынша оқулықта біз фанера тақтасының көмегімен қабырғаға ілінетін жүрек тәрізді панель жасауды және қашықтан басқару пульті мен шаммен басқарылатын жарықтандырудың әр түрлі түрлерін қосуды үйренеміз. сенсор (LDR) Arduino көмегімен. Сіз c