Съдържание:

Стъпков двигател със светлинен контрол + Стенна скоба/стойка: 6 стъпки
Стъпков двигател със светлинен контрол + Стенна скоба/стойка: 6 стъпки

Видео: Стъпков двигател със светлинен контрол + Стенна скоба/стойка: 6 стъпки

Видео: Стъпков двигател със светлинен контрол + Стенна скоба/стойка: 6 стъпки
Видео: 13 полезных насадок для шуруповерта и дрели с Aliexpress 2024, Ноември
Anonim
Стъпков двигател със светлинен контрол + Стенна скоба/стойка
Стъпков двигател със светлинен контрол + Стенна скоба/стойка

Тази стойка се използва за поставяне на контролиран от Arduino стъпков двигател, предназначен за автоматично управление на завеса според нивото на осветеност в стаята. Можете също така да добавите LCD екран, за да отпечатате нивото на светлината. 3D съоръжението е само за демонстрация, може да е необходимо истинско оборудване за практическо приложение като завесата, но и за всяко друго приложение, за което се сетите.

Стъпка 1: Съставки

За да стартирате този проект, ще ви трябва;

- 2 комплекта чипове Arduino- щит за двигатели на Arduino- LCD екран на Arduino- 1 платка- 1 двуполюсен стъпков двигател- 1 D батерия- 1 резистор, зависим от светлината- 1 10k Ω резистор- 10 мъже-мъжки проводника- 6 мъжки- женски проводници- Достъп до 3D принтер

Стъпка 2: Изграждане на Arduino

Строителство на Arduino
Строителство на Arduino

Първо подравнете щита на двигателя с щифтовете на Arduino и след като се подредят, поставете го здраво. След това свържете проводниците на стъпковия двигател към щифтове 8, 9, 10 и 11. На щита на двигателя. След това свържете D батерията в слотовете, както е показано на диаграмата. След това ще искате да получите 6 проводника (мъжки към женски) за LCD екрана и ги включете в другото устройство Arduino, както е показано на електрическата схема. След това настройте LDR, както е показано по -горе, с резистор, свързан към отрицателния ред. Когато добавяте LDR, отстрани на резистора, добавете връзките A0 и от противоположната страна, добавете 1 5V вход за всяка платка, която използвате, така че ако използвате 2 платки, ще искате всяка от тях да има 5V и A0 щифт към LDR.

Свържете всички проводници, така че да са същите като диаграмата- 2 входа към LDR- 2 изхода от LDR и резистор, свързан към земята- 8 проводника към LCD, 1 5V, 1 заземяване и 6 входа- 4 проводника, свързани към стъпало- 2 връзки към батерията- Масата на дъската трябва да бъде свързана

Стъпка 3: Кодиране на Arduino

Кодиране на Arduino
Кодиране на Arduino

Ето някои примерен код за промяна на състоянието на предавката въз основа на LDR

Това е кодът, който би позволил на проекта автоматично да контролира завеса. Снимката по -горе обяснява различните пътища през вложените оператори IF по отношение на завесата, която се издига нагоре, надолу или остава там, където е. (щракнете върху изображението, за да го видите изцяло, тъй като има проблеми с форматирането)

#defineLDRA0 // Дефинира променлива "LDR" до A0 пин#include// Включва кода на стъпковия двигател

constintstepsPerRevolution = 200; // Когато стъпковият двигател е активиран, пълното му въртене е равно на 200 стъпки

SteppermyStepper (stepsPerRevolution, 8, 9, 10, 11); // Дефинира входа към стъпката като щифтове 8, 9, 10, 11

voidsetup () {myStepper.setSpeed (60); // Задава колко бързо двигателят да върти pinpinMode (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); // Стъпалото прави 3 оборота напред. Ако е отрицателен, той отива назад; // Отпечатва текста пред променливата 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 (lightlevel);}

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:"); Serial.println (леко ниво);

if (lightlevel> = 900) {Serial.println ("J"); myStepper.step (3*-stepsPerRevolution); забавяне (500); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}

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 // Дефинира променливата "ldr" към щифта A0

    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) на серийния монитор lcd.setCursor (6, 0); // задаваме курсора на колона 6, ред 0lcd.print (analogRead (ldr)); // Отпечатва това отчитане на LCD екрана за закъснение (1000); // Забавя следващата команда за една секунда

    }

    Стъпка 5: Отпечатани части

    Използвайте следните файлове, за да отпечатате стойката и съоръжението. Можете да персонализирате съоръжението за свои собствени цели и можете да използвате скобата, за да го монтирате на стена или като дисплей. Тъй като 3D предавката е слаба, истинска предавка може да се използва като заместител на нея, стига да съответства на завесата, която би управлявала.

    Ако ще се използва 3D отпечатано зъбно колело, един от зъбите на зъбното колело е отстранен, за да може фиксиращият винт да го фиксира към двигателя.

    Предните 2 крака на скобата за стена също могат да бъдат премахнати, ако се монтират към стена. Те бяха добавени само така, че да се изправи, докато тествахме с него.

    Стъпка 6: Поставяне

    Сега, когато всички части са готови, е време да започнем окончателното разположение.

    Първо, поставете стъпковия двигател в предоставената кутия на стойката и поставете предавката на оста След това преместете проводниците така, че да вървят зад стойката Накрая поставете arduino и батерията зад стойката

    Сега дъската ви трябва да изглежда като тази на снимката по -горе.

    Честито!

    Съоръжението може да се използва за автоматизирани завеси или друго нещо, което искате да се контролира от LDR.

    Ти си готов. Насладете се на новото си творение.

Препоръчано: