Оглавление:

Управляемый светом шаговый двигатель + настенный кронштейн / подставка: 6 шагов
Управляемый светом шаговый двигатель + настенный кронштейн / подставка: 6 шагов

Видео: Управляемый светом шаговый двигатель + настенный кронштейн / подставка: 6 шагов

Видео: Управляемый светом шаговый двигатель + настенный кронштейн / подставка: 6 шагов
Видео: дистанционное управление камерой горизонтали вертика 2024, Ноябрь
Anonim
Управляемый светом шаговый двигатель + настенный кронштейн / подставка
Управляемый светом шаговый двигатель + настенный кронштейн / подставка

Эта подставка используется для установки шагового двигателя, управляемого Arduino, предназначенного для автоматического управления занавеской в соответствии с уровнем освещенности в комнате. Вы также можете добавить ЖК-экран для печати уровня освещенности. Трехмерное снаряжение предназначено только для демонстрации, реальное снаряжение может потребоваться для практического применения, такого как занавеска, а также для любого другого приложения, которое вы можете придумать.

Шаг 1: ингредиенты

Для запуска этого проекта вам потребуется:

- 2 набора микросхем Arduino - Щит двигателя Arduino - ЖК-экран Arduino - 1 макетная плата - 1 биполярный шаговый двигатель - 1 батарея D - 1 светозависимый резистор - 1 резистор 10 кОм - 10 штыревых проводов - 6 штыревых - женские провода - доступ к 3D-принтеру

Шаг 2: Построение Arduino

Строительство Ардуино
Строительство Ардуино

Сначала выровняйте моторный щит со штырями Arduino, и как только они выровняются, надежно установите его. Затем подключите провода шагового двигателя к контактам 8, 9, 10 и 11 на кожухе двигателя. После этого подключите батарею D в гнездах, как показано на схеме. Затем вам понадобится 6 проводов (вилка-розетка) для ЖК-экран и подключите их к другому блоку Arduino, как показано на принципиальной схеме. Затем настройте LDR, как показано выше, с резистором, подключенным к отрицательной строке. При добавлении LDR на стороне с резистором добавьте подключите A0, а на противоположной стороне добавьте 1 вход 5 В для каждой используемой платы, поэтому, если вы используете 2 платы, вам нужно, чтобы каждая из них имела 5 В и вывод A0, идущие к LDR.

Подключите все провода так, как показано на схеме - 2 входа к LDR - 2 выхода от LDR и резистора, подключаемого к заземлению - 8 проводов к ЖК-дисплею, 1 5 В, 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); // Устанавливает, насколько быстро двигатель выполняет вращениеpinMode (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 оборота вперед. Если он отрицательный, он идет назадdelay (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 ("Уровень освещенности:"); Serial.println (lightlevel);}

else {Serial.println ("D"); myStepper.step (3 * -stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);}}

else {Serial.println ("E"); myStepper.step (3 * -stepsPerRevolution); delay (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 (lightlevel);}

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 ("Уровень освещенности:"); Serial.println (lightlevel);}

else {Serial.println ("K"); myStepper.step (3 * -stepsPerRevolution); delay (10000); intlightlevel = analogRead (LDR); Serial.print ("Light Level:"); Serial.println (lightlevel);

}}

else {Serial.println ("L"); myStepper.step (0); delay (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 (lightlevel);}

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

}}

}

}

Шаг 4: Дополнительно: ЖК-экран

Это напечатает уровень освещенности, обнаруженный LDR, на ЖК-экране.

#включают

  • // Добавляет жидкокристаллическую библиотеку с дополнительным кодом #define ldr A0 // Определяет переменную "ldr" для вывода A0

    ЖК-дисплей LiquidCrystal (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) на серийном мониторе lcd.setCursor (6, 0); // установить курсор в столбец 6, строка 0lcd.print (analogRead (ldr)); // Выводит это значение на ЖК-экранdelay (1000); // Задерживает следующую команду на одну секунду

    }

    Шаг 5: напечатанные детали

    Используйте следующие файлы для печати подставки и шестерни. Вы можете настроить оборудование для своих целей и использовать кронштейн для крепления на стене или в качестве дисплея. Поскольку 3D-передача слабая, настоящая передача может использоваться вместо нее, если она соответствует завесе, которой она будет управлять.

    Если будет использоваться шестерня, напечатанная на 3D-принтере, один из зубцов шестерни был удален, чтобы установочный винт мог закрепить его на двигателе.

    Передние 2 ножки настенного кронштейна также можно снять, если он будет крепиться к стене. Они были добавлены только для того, чтобы он работал, пока мы с ним тестировали.

    Шаг 6: Размещение

    Теперь, когда все детали готовы, пора приступить к окончательной укладке.

    Сначала поместите шаговый двигатель в предоставленную коробку на подставке и наденьте шестерню на ось, затем переместите провода так, чтобы они проходили за подставкой. Наконец, поместите arduino и батарею за подставку.

    Ваша доска должна теперь выглядеть так, как на картинке выше.

    Поздравляю!

    Механизм можно использовать для автоматических штор или любых других вещей, которые вы хотите контролировать с помощью LDR.

    Вы сделали. Наслаждайтесь своим новым творением.

Рекомендуемые: