Демпфер выхлопного порта корпуса с Arduino/сервоуправлени...

Источник:

Это воздуховод с сервоприводом, который я использую для вытяжки моего принтера (120-мм вентилятор и 4-дюймовый гибкий воздуховод), который ведет на чердак. Горячий/холодный воздух с чердака время от времени втягивается в мой шкаф и в мой дом из-за перепадов давления воздуха. Этот демпфер помогает пропускать поток через этот воздуховод только во время работы моего принтера и вытяжного вентилятора.

Это было вызвано тем фактом, что обычные гравитационные демпферы не двигались (даже самые легкие) при слабом потоке моего вентилятора на самом низком уровне. Это сервоуправление гарантирует движение клапана по мере необходимости, чтобы перекрыть поток, когда печать не выполняется.

Это контролируется с помощью платы Arduino Pro Micro через контакт GPIO от Raspberry Pi, на котором работает OctoPrint, и плагин PSU Control.

Питание Arduino должно осуществляться от порта USB на Pi, чтобы у вас была общая опорная точка заземления для считывания контакта GPIO.

Я смоделировал это, используя субмикросервопривод Hitec HS81.

Проводка:
Проводные подключения сервопривода к Arduino:

Красный сервопровод к Arduino RAW
Черный сервопровод к Arduino GND
Желтый сервопровод к A1 на Arduino

Подключения Arduino к RPI:

USB на Arduino к порту USB-A на RPi (это обеспечивает как питание для Arduino, так и общую землю для подключения контакта GPIO).
Arduino от GPIO 14 до GPIO 22 на RPi

Использованы (7) винтов M3 диаметром 6 мм для крепления сервопривода, крепления заслонки и крышки.

Код быстрого закрытия:

#include

// Определить объект серводвигателя
Сервопривод;

// Опреде��ить вывод для ввода
const int gpio_input = 14;

// Определить контакт для сервоуправления — A1, отмеченный на плате = контакт 19
const int servo_pin = 19;

// Определить углы для исходного положения и повернутого положения
const int open_flap = 40;
const int close_flap = 132;

// Переменная для хранения текущего состояния gpio_input
int gpio_input_state = 0;
int Last_gpio_input_state = 0;

// Переменная для хранения текущей позиции сервопривода
int currentAngle = close_flap;

недействительная настройка() {
// Прикрепляем сервопривод к servo_pin
servo.attach(servo_pin);
// Устанавливаем начальное по��ожение закрылка для закрытия
servo.write(close_flap);
// ждем, пока сервопривод начнет двигаться (мс), иначе это произойдет «мгновенно» и отсоединится до того, как сервопривод сможет завершить свое движение
задержка(500);
// в этом случае нам не нужно удерживать сервопривод в этом положении, поэтому отсоедините его от штыря сервопривода, чтобы избежать вибрации/подергивания сервопривода
серво.отсоединить();

// Установите gpio_input в качестве входных данных — это то, что мы используем от Raspberry Pi для управления заслонкой из Octoprint (работает на указанном Pi) Plug-in PSU Control. Наш Arduino питается от Pi через USB-порт на Pi, что также дает нам общее заземление, чтобы мы могли прочитать этот вывод. Нам нужна общая основа для этой точки отсчета.
pinMode (gpio_input, INPUT);
}

недействительный цикл() {
// Читаем состояние gpio_input
gpio_input_state = digitalRead(gpio_input);

// Проверяем изменения в состоянии gpio_input_ — если нет изменений, ничего не делаем — если изменения, передвиньте заслонку
if (gpio_input_state != Last_gpio_input_state) {
если (gpio_input_state == НИЗКИЙ) {
// Закрываем клапан
currentAngle = close_flap;
// Прикрепляем сервопривод к servo_pin
servo.attach(servo_pin);
// перемещаем сервопривод, чтобы закрыть заслонку
servo.write(close_flap);
// ждем, пока серво движется (мс)
задержка(500);
// отсоединяем от штифта сервопривода
серво.отсоединить();

} еще {
// Открытая заслонка
currentAngle = open_flap;
// Прикрепляем сервопривод к servo_pin
servo.attach(servo_pin);
// перемещаем сервопривод, чтобы открыть створку
servo.write(open_flap);
// ждем, пока серво движется (мс)
задержка(500);
// отсоединяем от штифта сервопривода
серво.отсоединить();
}

// Обновляем последнее состояние gpio_input_ после обработки изменения, чтобы следующий цикл обрабатывался соответствующим образом с обновленным положением закрылка
Last_gpio_input_state = gpio_input_state;
} еще {
// Если состояние gpio_input_ не изменилось, подождите еще полсекунды
задержка(500);
}
}

Код медленного закрытия: (методом проб и ошибок с motion_increment и motion_delay можно добиться более тихого движения.

#include

// Определить объек�� серводвигателя
Сервопривод;

09:25
2
Нет комментариев. Ваш будет первым!

Ссылка появится после регистрации

Похожие модели

Корпус для адаптера питания
📁 Корпус для преобразователя питания сПодробнее
Корпус для DC регулируемого источника
📁 Корпус для DC регулируемого источникаПодробнее
Крепление "народного" налобного фонаря
📁 Крепление «народного» налобного фонаряПодробнее
Ручка настройки Yaesu FT-817
📁 Ручка VFO для FT-817/818. ИспользуйтеПодробнее
Модель кнопки для Imax B6
Вам понадобится капля клея, чтобыПодробнее
Антенный изолятор "орешек"
Это стандартный изолятор дляПодробнее
Адаптер питания Yaesu FT-817
📁 Вертикальный адаптер под коннекторыПодробнее
Корпус для ESP32 WROOM
📁 Корпус для ESP32 WROOM 📐 STL 🪵 PETGПодробнее
Корпус для ESP32
📁 3D модель корпуса для платы NodeMCU наПодробнее
Станок для намотки катушек с филаментом
📁 Станок для намотки катушек сПодробнее
Кабельный ввод
📁 3D модель для печати кабельнойПодробнее
Кабельный ввод #2
📁 Компактный контейнер с завинчивающейсяПодробнее
Кабельный гермоввод #3
📁 3D модель для печати кабельногоПодробнее
Кабельные вводы различных размеров
📁 Кабельные вводы различных размеровПодробнее
Распределительная коробка
📁 3D модель для печати распределительнойПодробнее
Водозащищенный кабельный ввод
📁 3D модель кабельного ввода сПодробнее
Кабельный ввод #4
📁 3D модель для печати качественногоПодробнее
Распределительная коробка с креплением на стену
📁 Распределительная коробка с креплениемПодробнее
Адаптеры для SIM карт - 3D модель для печати
📁 Адаптеры для SIM карт — 3D модель дляПодробнее
Корпус для метеодатчика на ESP8266
📁 Корпус для метеодатчика на ESP8266Подробнее
Улучшенный дрон «Nano Long Range» на 1х18650
📁 Улучшенный дрон «Nano Long Range» наПодробнее
Электронные "песочные часы"
📁 Электронные «песочные часы» 📐 STLПодробнее
Контейнер для батарей ft-817
📁 Контейнер для аккумулятора FT-817 сПодробнее
Защитный каркас Yaesu FT 817
📁 Защитные рельсы для Yaesu FT 817 и 818Подробнее
YAESU FT-817 Рельсы
📁 Рельсы с подвесом для тангенты иПодробнее
Портативный настольный источник питания
📁 Портативный настольный источникПодробнее
Кейс для хранения батарей ( 21700, 18650, AA, AAA)
📁 Кейс для хранения батарей ( 21700Подробнее
Каркас для батарей 18650
📁 Корпус для Heltec V4 с GPS, проектПодробнее
Корпус для датчика на esp8266
📁 Корпус для датчика на esp8266 📐 STLПодробнее
Корпус для метеодатчика с анемометром
📁 Корпус для метеодатчика с анемометромПодробнее
Посещая этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.