Самодельные автоматические ворота. Итоговый вариант. Ворота Ч5
Вставка
- Опубліковано 17 бер 2018
- По опыту эксплуатации и по толковым комментариям набралось достаточно хотелок для изменения проекта. И, когда кончились щётки... В общем - это был вполне себе повод для завершения проекта.
Скетч контроллера привода:
#define pPulse 2 //Пульс таходатчика
#define pOpenESP 12 //Команда открытия ворот от ESPхи
#define pCloseESP 11 //Команда закрытия ворот от ESPхи
#define pOpenMan 9 //Кнопка открытия ворот, инвертированная!
#define pCloseMan 10 //Кнопка закрытия ворот, инвертированная!
#define pPowerRelay 13 //Силовое общее реле, размыкает оба полюса
#define pReverceRelay 4 //Реле реверса, переключает обмотки двгателя
#define pPower 3 //Выход для тиристорного ключа
#define aBorder 1 //Аналоговый вход для уовня напряжения с герконов
#define pSensZero 5 //Датчик 0
#define FullPulseLeght 2700 //полная длина ворот в "импульсах"
#define FullPower 90 //Максимальная мощность мотора
#include
unsigned int CntPulse = 0;
bool bPulseHigh = false;
unsigned int TimePulse = 0;
long PercentPower = 0;
bool FullTrack = false; //Флаг того, что запуск производился с работающего концевика, а не "середины"
void setup()
{
pinMode(pPowerRelay, OUTPUT);
pinMode(pReverceRelay, OUTPUT);
pinMode(pPower, OUTPUT);
pinMode(pPulse, INPUT);
pinMode(pOpenESP, INPUT);
pinMode(pCloseESP, INPUT);
pinMode(pOpenMan, INPUT);
pinMode(pCloseMan, INPUT);
pinMode(pSensZero, INPUT);
delay(5000);
Serial.begin(9600);
Serial.println("Init ok");
Serial.println(analogRead(aBorder));
if (GateState() == 0)
Serial.println("State - ERROR!!!");
if (GateState() == 1)
Serial.println("State - Open");
if (GateState() == 2)
Serial.println("State - Close");
if (GateState() == 3)
Serial.println("State - Neytral");
}
void loop()
{
//Обработка открытия
if (ComfirmCommand(pOpenESP, true) || (digitalRead(pCloseMan) && ComfirmCommand(pOpenMan, false))) //Нажали кнопку открытия
{
Serial.println("Command Open");
if (CntPulse == 0) //Режим ожидания
{
if (GateState() == 2 || GateState() == 3) //Закрыто или середина
{
FullTrack = (GateState() == 2);
Serial.println("Start Open");
pStart();
}
else //И так открыто. Ничего делать и не надо
{
Serial.println("Command ignore");
delay(500);
}
}
else
{
if (IsClosing()) //Сейчас закрываем - останавливаем процесс
{
Serial.println("Manual stop");
pStop(false);
}
}
}
//Обработка закрытия
if (ComfirmCommand(pCloseESP, true) || (digitalRead(pOpenMan) && ComfirmCommand(pCloseMan, false))) //Нажали кнопку открытия
{
Serial.println("Command Close");
if (CntPulse == 0) //Режим ожидания
{
if (GateState() == 1 || GateState() == 3) //Открыто или середина
{
FullTrack = (GateState() == 1);
Serial.println("Start Close");
digitalWrite(pReverceRelay, HIGH);
delay(200);
pStart();
}
else //И так закрыто. Ничего делать и не надо
{
Serial.println("Command ignore");
delay(500);
}
}
else
{
if (!IsClosing()) //Сейчас открываем - останавливаем процесс
{
Serial.println("Manual stop");
pStop(false);
}
}
}
if (CntPulse > 0) //Если счётчик стронулся - считаем что пошёл процесс открывания/закрывания
{
pRun();
}
else
{
//ну... шобы наверняка. Тушим свет, сливаем воду.
digitalWrite(pPower, LOW);
digitalWrite(pPowerRelay, LOW);
digitalWrite(pReverceRelay, LOW);
}
}
//Вернёт состояние ворот.
byte GateState()
{
if (analogRead(aBorder) > 400 && analogRead(aBorder) < 500)
return 1; //Открыто
if (analogRead(aBorder) > 550 && analogRead(aBorder) < 650)
return 2; //Закрыто
if (analogRead(aBorder) > 750 && analogRead(aBorder) < 850)
return 3; //Серединнное положение
return 0; //Ошибка!
}
//Вернёт, закрываем ли мы сейчас ворота?
bool IsClosing()
{
return digitalRead(pReverceRelay);
}
//Разгон мотора
void pStart()
{
digitalWrite(pPowerRelay, HIGH);
delay(100);
Serial.println("Servo Start");
for (long i = 0; i < 15000; i++)
{
PercentPower = FullPower * (i / 150) / 100;
SetPower();
}
Serial.println("...Started");
CntPulse = 1;
}
//Рабочий ход мотора
void pRun()
{
//Если подходит к концу или действие с середины - крутим медленно.
if (CntPulse > FullPulseLeght * 0.7 || !FullTrack)
PercentPower = 35;
else
PercentPower = FullPower;
SetPower();
TimePulse ++;
if (bPulseHigh != digitalRead(pPulse))
{
bPulseHigh = !bPulseHigh;
TimePulse = 0;
CntPulse ++;
}
if (TimePulse > 300)
{
pStop(true);
Serial.println("No pulse!");
return;
}
//Аварийная остановка по времени работы
if (CntPulse == FullPulseLeght)
{
Serial.println("Max CntPulse!");
pStop(true);
}
if (CntPulse == 150)
{
//Аварийные остановки по неразмыканию герконов после запуска
if (IsClosing() && GateState() == 1)
{
Serial.println("Closing failed!");
pStop(true);
}
if (!IsClosing() && GateState() == 2)
{
Serial.println("Opening failed!");
pStop(true);
}
}
if (IsClosing() && GateState() == 2)
pStop(false);
if (!IsClosing() && GateState() == 1)
pStop(false);
}
//Остановка мотора. Флаг - резкая остановка, или плавная
void pStop(bool bForced)
{
FullTrack = false;
if (bForced)
Serial.println("Servo Stop Forced");
else
Serial.println("Servo Stop");
if (1 == 0)//!bForced) //отключено, ибо теперь работаем с плавной доводкой
{
for (long i = 0; i < 30000; i = i + 15)
{
PercentPower = FullPower - FullPower * (i / 300) / 100;
SetPower();
}
}
PercentPower = 0;
MsTimer2::stop();
digitalWrite(pPower, LOW);
delay(50);
digitalWrite(pPowerRelay, LOW);
digitalWrite(pReverceRelay, LOW);
Serial.print("CntPulse = ");
Serial.println(CntPulse);
CntPulse = 0;
}
// Установка мощности мотора.
void SetPower()
{
if (digitalRead(pSensZero) == HIGH) //Всё взводится только если сейчас 0!
{
MsTimer2::stop();
digitalWrite(pPower, LOW);
//Serial.println(PercentPower);
if (PercentPower 100)
return;
unsigned long ms = 6 - (PercentPower * 6 / 100); //А 6мс потому, что датчик 0 не идеален и уже проходит некоторое время до того, как напряжение будет достаточно большое для загорания светодиода в оптоаре.
MsTimer2::set(ms, PowerControl);
MsTimer2::start();
}
}
//Функция избавления от дребезга контактов и импульсных помех
bool ComfirmCommand(int button, bool ActiveHigh)
{
for (byte i = 0; i < 15; i++)
{
if (digitalRead(button) == (ActiveHigh? LOW : HIGH))
{
if(CntPulse == 0)
delay(1);
return false;
}
}
return true;
}
//Метод вызывается из перывания по таймеру и тупо активирует тиристорный ключ.
void PowerControl()
{
digitalWrite(pPower, HIGH);
}
за все те деньги что ты потратил можно было бы купить привод с двумя пультами и зубчатой планкой фирмы DOORHAN
эээ, на этом видео потрачено примерно 200 руб )))
а редуктора куплены ремни, шкивы, цепи, и т.д. ?
У меня видео есть, где я начинал проект и расписывал.
Самое дорогое - редуктор. Точнее, я купил 2 за 2 тыс руб. Потом цепи - каждая по 900 руб 3 штуки и звёздочка 500. Шкивки по 50 руб, ремень 100 руб. Это от какого-то электрорубанка. Ну накинуть на контроллер, провода, дверную петлю опоры, электроды... ну... тыс 7-8 получится прям ну вот на всё. Мотор - болгарка была с помойки. А этот мотор от стиралки что досталась с домом. Она была не работающая, но я мог починить... ...Но учитывая что она итальянская и всё равно надписи непонятные, то решил плюнуть и таки пусть под нож.
как раз таки хватит на нормальный заводской комплект от фирмы ДОРХАН ну плюс минус 2 тыс смотря где брать. в чем плюс этих приводов то что они бесшумные только слышно как шестеренка о направляющю слегка шуршит!
Нормально ты так стиралку перед женой отмазал- "Да тут иконки непонятно подписаны, давай её раздербаним."
Мне как то тоже стиралку отдали на З/П. Пока вез домой думал ммм ... сколько там ништяков интересных можно взять. Когда разобрал оказалось что там не сложный ремонт требуется, в общем отмыл, отчистил, отремонтировал, стоит про запас.
Чувак твоя харизма просто зашкаливает ...
Вот смотрю на тебя, и аж дом захотелось купить, чтоб ворота там устанавливать))) Ну а в целом повеселило видео, особенно с "дзеном") Респект!
Мастер -универсал, очень хорошо что есть такие таланты.
Саш, поражаюсь твоими: смекалкой, позитивом и энергией! Молодец!
Ничего не те приятнее, чем ощущение от хорошего результата своей работы)
Александр, спасибо за видео- это просто здорово!
Мысленно жму вашу руку!)
Спасибо Вам за проделанную работу, да и красноречие тоже!
Красава) Рукасто, с юморком, по делу. Молодца!
Класс! Я в восторге! Мужик, ты лучший, из тех кого я видел в ютубе!
Красавчик слов нет) по больше таких людей
Ой да не слушай ты никого, продолжай в том же духе. Контент отличный.
Базар жок!!! Ты не просто мастер своего дела, а с юмором !!! Лайк за видео,,!!
Класс мужик ты лучший , это видео как музыка для технаря , эстетика и насладление .
дело то нехитрое , но вот как это всё приспособить для пользы своего дома , в этом ты настоящий !!!
Если бы у меня ума и умения хватило вот так сделать , я бы целый день там стоял с телефоном и слушал звук работы открывания ворот как музыку ...
Круто! я аж тоже кайфанул от финального результата!
Теперь у тебя еще один фанат! С таким пофигизмом добиваться результата, это нечто... )
Хорошо что посмотрел это видео, теперь реально расхотелось делать такие ворота самому....
Обороты на таких двигателях конечно большие, но такую систему не каждый сможет придумать! ОТЛИЧНО
Блин,мужик ты просто гений,а с телефона да с прогами дав вообще бог!!!!Молодец,так держать!
Супер! Отлично вышло!
И видео само по себе интересное. )
Красавчик! Вот мне ворота нафиг ненужны, но досмотрел до конца тупо для того чтоб зарядиться позитивом!
подписался очень интересный канал желаю успехов в будущих проектах!
Молодец зачёт ! Не каждый сможет такие ворота сделать 💪
Молодец!
Чувак отличный привод, бля мне так не нравится когда долго ворота открываются, нажал на пулт и сидиш в машине бабочек считаешь, а у тебя быстро и перед закрытием замедление. Да и вообще мышление у тебя креативное, лайк и подписка.
14:30 Представил выражение лица проходящего мимо соседа :)
Руки с головой дружат.Молодец.Лайк
Нет слов прям как я мечтал, а с шумом для меня не проблема.
Это не мой метод... Блин, ну как же это по нашему! Кирпич и нищтяк!!!))))))) Обожаю смотреть твои видео. Аффтар жжёт как всегда!
круто !!!
теперь тоже себе хочу такие ворота )))
Ворота супер, идеи тоже! Подписался! :)
Понравился итог.! Класс!!!
Классное видео,автор позитивный))))
Позитивный ты чувак... Спасибо за видео
неплохо получилось. Я бы ещё добавил кнопку изнутри, чтобы можно было открывать без телефона, а снаружи или RFID, или просто магнитку. И ещё бы возможность обнаружения препятствия на пути ворот, чтобы если там что-то или кто-то есть, то они ни в коем случае не закрылись, даже если поступила команда, или произошёл какой-то сбой. Вот прямо чтобы двигатель обесточивался. Особенно актуально, если учесть, что там может оказаться животное, или маленький ребёнок. Скорость движения и сила удара будет не велика, но если животное ещё может испугаться и отскочить, то ребёнок вполне может тупо не сориентироваться. Хотя бы просто подвижная подпружиненная кромка с концевиком, которая могла бы легко "нажиматься", подавая сигнал МК, чтобы тот остановил ворота. А концевик для определения состояния полного закрытия ворот отдельно от него, чтобы сначала нажимался он, а потом уже прижималась кромка ворот. Таким образом МК будет различать "нажатие" кромки при попадании на что-то и закрытие. Ну или оптический/ультразвуковой какой-нибудь датчик, это экспериментировать надо
По управлению - да, так и сделано. Телефон или кнопки на щитке. Можно увидеть в видео про калитку со сканером отпечатков. А по аварийной остановке - пока думаю. Есть и УЗ дальномеры, есть и ИК датчики препятствия и есть свободные провода в шлейфе, но пока руки не дошли... И еще тут едут приемники на 315МГц, эт управление с авто буду делать. Там у меня штатная homelink стоит.
Молодец порадовал своим роликом так держать.
молодец, классно получилось!
Молодец. Отличная работа...
Улыбнуло! молодец!
ты красавчик! команду подавай так: сим сим откройся, сим сим закройся. удачи
Классный привод. У нас тоже самолёты в Шереметьевском.
Отлично сделал!
Блин, мужик, ты просто красавчик!
спасибо за видео
Зачет, все крепления к воротам через резину и шума будет меньше от вибраций пепедаваемых приблудой с мотором на ворота, цепь тоже можно пропустить через резину с отверстием по цепь...
При закрытие ворот можно фторопластовые втулки поставить, в автомобильном магазине полиуретановый втулки (часть подвески любого ваз) можно купить и подогнать под размер на станке, будет закрываться тихо с приятным щелчком) получится довольно тихо и дешево. Ну а если совсем пофаниться) то возьми замок от ваза переднеприводного это 2108-21... и приспособить на закрытие ворот, у тебя появится такой приятный щелчок (как будто дверь авто закрыли) и возможность запирать и отпирать ворота по удаленке. То есть твои ворота сейчас можно открыть если за них потянуть допустим парой человек. А если замок поставить, то при попытке дернуть даже автомобилем там весь забор скорее упадет, но ворота останутся целым куском с забором. А и еще надо электро привод закрытия и открытия на этот замок поставить, как в автомобиле центральный замок отпирает и запирает двери. Цена вопроса на разборке 2 замка двери и 2 ответных штифта (желательно с проворачиваемой втулкой) 500 рублей + 2 моторчика в магазине автозапчастей (универсальные моторчики бывают под 2 контакта + и - и их инверсия и под 5 где отдельно + - и "дата" провод) примерно 400 рублей. Если под заморочится с тягами то можно вообще один моторчик на 2 замка поставить, тогда вся сумма уменьшится на 200 рублей. Ну и прошивку придется дорабатывать, перед запуском "открытия ворот" открыть замок и инверсия соответственно. цена вопроса 700 или 900 рублей и 3-4 часа отладки и настройки тяг от моторов к замкам) Видос классный, будет дача обязательно сотворю подобные ворота)
Это дешманский забор с профнастила ))) Его можно консервным ножом открыть. А если уж припёрся человек с ломом, то тут и цепь вырвут и весь забор сопрут ))) Не, руками просто так не откроешь, а больше и нафиг надо.
Смотрю третье видео подряд , ржу в голос , позитив прет
Круто очень. Только я не понял что это для радиомодуль? И как он программируется а замедление?
за кирпичи лайк, а так, руки растут из правильного дела, респект и уважуха!!!!
Красавчик,молодец.
лайк однозначно, дзеновские ворота
вообще круто.молодец!
Да отлично получилось.
Насчет сартира на улице). Давно поставили душевую кабину дома, так соседи приходили и говорили мол зачем, как то по буржуйски... и.т.п... Но через год эти же соседи себе поставили душевые кабинки) К хорошему привыкаешь быстро)
У меня летний душ из душевой кабины 1,5х1,5,с телефоном,радио,короче по фэншую.Вообще кабину в доме считаю не очень хорошо ставить,особенно небольшую ,ну разве что вы карлик.В ванне очень классно погрется,кофэ:-)
Каждому свое. Кабины разные бывают, 100*100см вполне хватает. После работы или перед работой с утра помыться за 10 минут, вообще без проблем.
Еще дома хотим поставить в туалете "писсуар", так на нас все смотрят как на "извращенцев", хотя сами не понимают что писуар экономи нервы супруги, когда она убирает в туалете, и воду.
Ну, кстати, когда купил дом, от старых хозяев досталась душевая. Переделал на ванную, хотя и 1.5 метровую. Большая никак не входила. Но мне надо под купание ребенка.
А я в раковину ссу, оч удобно!
Вы поставте чашку возле кровати из которой чай пьете и сцыте и до умывальника ходить не надо. Ну очень удобно😆
Я ставлю тебе лайк, Конфуций))))).
что сказать-молодец.!
Когда работал сваркой, я инстинктивно взгляд убирал от вспышки, чтоб глаза не испортить ^^
Евгений Гуськов даже через камеру глаза можно испортить ?
Великолепно!
Здравствуйте! Что за программа для телефона и монтажная схема интересна?
Красавчик !
Как я раньше жил без тебя!!! Здоровья тебе и подписка100%
вот это канал бомба годнота 👍👍👍
Не расстраивайся, чувак. Все ок
мужчина, вы крутой)
очень позетивно
лайк
все классно!
Не удивительно, что сломалось. СЛИШКОМ МАЛО ИЗОЛЕНТЫ!
А по сути конечно мужчина - мозг! И руки прямые и красивые =)
Негоже лампочке днём гореть, нужно датчик освещённости ставить, в угоду богу автоматизации)
Да. Это будет блок домовой метеостанции. Там будет датчик освещенности и блок ворот будет спрашивать, а темно ли на улице? И если да - включать свет. Но это позже.
Интересная задумка
а как на счет намерзание льда на приводную звездочку или цепь? у меня похожая конструкция, но когда намерзает, двигатель не может стартануть(у меня асинхронний) в итоге вирубаєт защита двигателя. как у вас с етим???
Респектище! НО! Блин, надавал бы тебе по рукам, чтобы не клал ещё крутящуюся болгарку на провода (4.33)
крутотень!!!!
Молодец, супер
коробочку наружную пенопластом обложи и будет тише)
Здравствуйте. Я в электронике не селен конечно, собрал ворота в гараж. Заказал с АлиЭкспресс плату с двумя пультами. Всё подключил, а вот моторчик от дворников жигулей не тянет. Подключал в качестве источника питания ЗУ на 12 вольт.
Подскажите пожалуйста подойдёт ли блок питания от компьютера ватт на 500?
Починил ворота и даже не опоздал на работу. Снимал одним дублем!)
Круто!
Как по твоему мнению, можно ли такие большие плоские шкивы от стиралки приспособить на ленточку настольную?
Узкий он, но.... Можно подумать =)
Молодец если долго мучиться, то точно все получится )
Где брал плату wifi ? Не нашёл в 5-ти видео, быстренько пересмотрел, пропустил может.
Да обычная nodeMCU с али
Мне нравиться!
Респект)))
А мне понравилось!)))
Класс . молодец.
От стиралки взять шкив привода барабана, добыть второй такой же, то можно замутить ленточную пилу. В хозяйстве в своём доме пригодится. В зависимости от установленной ленты можно пилить метал или дерево.
Ну, кстати, не вы первый, кто мне это предлагает. Но пока мне банально некуда будет её поставить...
Супер
Это же знания нужно иметь соответствующие...
Ну ты мозг , ваще огонь
Молодец )
!
Красава!
супер !!!!!!!!!!!!!!!
автор радует всеми видосами )))))00)0нольноль)
Красава.
Красавчик
Молодец)
Я работаю с заводскими движками, но тут прикольно сделано. Хорошо бы перевести данную конструкцию еще на концевик. В случае проскока у тебя получится недооткрывание, к примеру, а на обратном ходу перезакрытие и удар в створку. А может и кз на стопор ротора сработать.
А так все клева в пределах сам для себя.
Там 3 геркона на каждой стороне и очень мощный магнит. + контроллер "считает" обороты вала редуктора и даже если не сработают концевики, то он просто поработает не более чем десяток секунд. Но даже если заклинит редуктор - стоит ремень, будет проскальзывать. Но даже если не будет проскальзывать - привод прижимается большим весом, но его крутящий момент в случае упора позволяет просто проскакивать звездочке по цепи.
Опасность представляет только удар от отбойник на высокой скорости. И таки на первых испытаниях так и произошло =) Стопор выломало нахрен. НО. Сейчас прошивка включает полную скорость ТОЛЬКО если есть сигнал от дальнего геркона. И опять-таки, считается кол-во оборотов и после прохода 80% пути, скорость сбрасывается на малую. Так что удар на полной скорости сейчас просто невозможен.
Молодец.
да ты просто КРАСАВЧИК ,ИЗВИНИ ЧТО НА ТЫ )))
Круто ...
Контроллер оборотов двигателя отдельно покупали и как по своему реализовывали? Датчики аварийной остановки?
Нет, сам делал. По сути - на ардуино. Оно и обороты вала редуктора считает и обороты мотора регулирует и концевые положения учитывает. Датчика аварийной остановки отдельного нет. Если имеется ввиду ИК датчик. Сейчас заказаны ИК датчики препятствия, но... не уверен что я буду их ставить. Но буде желание - делается элементарно.
Так эти моторы без драйвера при снижении оборотов сильно теряют в мощности. Или не так?
Какого драйвера? Это ж обычный синхронный коллекторный мотор. Управляется простым тиристорным регулятором.
Спасибо.
Молодец