Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

Сервисный лифт с питанием от Arduino

Компоненты и расходные материалы

Arduino Mega 2560
× 1
Микро-концевой выключатель OpenBuilds
× 4

Об этом проекте

Разработать и протестировать систему управления служебным лифтом, работающим на четырех этажах. Микроконтроллер (ATMega2560) используется для определения того, какой контактор должен обеспечивать питание, чтобы активировать двигатель лифта для перемещения лифта вверх или вниз, путем проверки пола, на котором лифт в данный момент находится. Система управления также должна иметь возможность останавливать питание лифта, когда он достигает необходимого этажа. Необходимо предусмотреть встроенный коэффициент безопасности, чтобы дверь лифта всегда закрывалась перед перемещением вверх или вниз. Система управления успешно способна определить, на какой контактор необходимо включить питание, чтобы переместить лифт на нужный этаж. Система может управлять мотором защитной двери лифта, чтобы закрыть дверь, когда лифт должен двигаться, и автоматически открыть дверь, когда она достигнет необходимого этажа.

Демо-видео:

1.1 Подключение трехфазного двигателя

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

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

1.2 Обнаружение пола

Для определения этажа, на котором в данный момент находится лифт, используется концевой выключатель. Когда лифт движется вверх или вниз, он закрывается и размыкает концевой выключатель на каждом этаже. Когда лифт находится на определенном этаже, предельный этаж на этом конкретном этаже закрыт, указывая микроконтроллеру на этаж, на котором находится лифт. Когда лифт движется, концевой выключатель размыкается, указывая микроконтроллеру, что лифт движется.

Переход от низкого уровня к высокому сигналу, производимый концевым выключателем, когда лифт движется по этажу, происходит за доли секунды и часто слишком быстро, чтобы его мог обнаружить микроконтроллер. Концевые выключатели подключены к источнику питания 5 В постоянного тока, а выход NO (нормально разомкнутой) клеммы подключен к контакту IO микроконтроллера. Четыре концевых выключателя на четырех этажах отправляют данные на микроконтроллер. Это позволяет микроконтроллеру определять этаж, на котором находится лифт, проверяя, какой вывод переместился с низкого на высокий. Переход состояния концевого выключателя показан на диаграмме ниже:

Сложная задача - дать возможность микроконтроллеру обнаруживать переход от низкого уровня к высокому. Есть два метода решения этой проблемы. Первый метод - определить, переходит ли вывод концевого выключателя ВЫСОКИЙ уровень внутри функции цикла, используя условие if. Программа, по сути, при выполнении другого кода всегда проверяет, переходит ли контакт в ВЫСОКИЙ уровень. Это занимает много памяти, так как программа постоянно ищет ВЫСОКИЙ сигнал от контакта концевого выключателя. Другая проблема заключается в том, что иногда программа может пропустить этот переход, поскольку функция цикла выполняла какой-то другой код во время перехода. Чтобы избежать этих проблем, используются прерывания. Прерывания по существу приостанавливают выполнение кода и выполняют отдельную функцию, когда удовлетворяется определенное условие прерывания. Это идеально подходит для работы с лифтом. Когда штифт концевого выключателя перемещается из нижнего положения в верхнее положение, выполняется функция прерывания, и эта функция проверяет, находится ли лифт на текущем этаже, и останавливает лифт или позволяет ему двигаться дальше. Поскольку программа принудительно выполняет функцию прерывания при переключении концевого выключателя, система может гарантировать, что программа не пропустит преднамеренно обнаружение этажа. Для этого приложения используется микроконтроллер Arduino Mega 2560 с 6 цифровыми выводами, которые можно использовать для прерываний, что идеально подходит для использования на четырех этажах. Первый параметр для attachInterrupt - это номер прерывания. Обычно вы должны использовать digitalPinToInterrupt (pin) для преобразования фактического цифрового вывода в конкретный номер прерывания. Например, если вы подключаетесь к контакту 3, используйте digitalPinToInterrupt (3) в качестве первого параметра для attachInterrupt. Также важно отметить, что функция delay () не будет работать внутри функции, выполняемой программой обслуживания прерывания (ISR).

На схеме выше показано, как концевые выключатели подключаются к MCU. Контакты в MCU подключены через понижающий резистор. Этот резистор подтягивает вывод MCU к земле, чтобы гарантировать, что показание НИЗКОГО напряжения считывается MCU, когда концевой выключатель остается разомкнутым. Конфигурация резистора показана на схеме ниже.

1.3 Управление подъемом и опусканием двигателя

Два реле 12 В постоянного тока используются для переключения питания переменного тока на контакторы двигателя, которые контролируют его направление (вверх или вниз). Схема, разработанная с использованием Multisim, показана на схеме ниже:

Один конец контактора катушек обоих реле подключен к источнику постоянного тока 12 В через транзистор PNP. Основная причина этого - убедиться, что на двигатель не подается питание, пока дверь лифта не будет закрыта. Как только дверь лифта закрывается, выходной контакт DoorSwitch на затворе транзистора PNP подтягивается к земле, обеспечивая включение PNP для подачи питания VCC на оба реле. Следовательно, реле не включается, даже если сигнал MotorUp или MotorDown ВЫСОКИЙ. Другой конец катушки реле заземлен через NPN-транзистор. Сигнал MotorUp генерируется MCU. Когда сигнал MotorUp ВЫСОКИЙ, первый транзистор NPN активируется, и он замыкает контакт другой катушки на землю, чтобы замкнуть цепь для питания катушки реле Up Relay для питания двигателя. Тот же метод используется для активации реле понижения. Причины использования транзисторов для переключения реле:

  • Оба реле имеют катушки 12 В пост.
  • Для включения реле можно использовать транзисторы, используя минимальный ток от MCU, поскольку небольшой ток через базу транзистора активирует его. Это экономит мощность MCU, когда ему нужно переключать реле.
  • Он также изолирует MCU от любого обратного тока, который может течь обратно на вывод MCU, что потенциально может повредить MCU.

1.3.1 Обратный диод для дополнительной защиты

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

1.3.2 Контроль пользовательского ввода

Пользователь управляет работой лифта с помощью кнопок этажа. Есть четыре кнопки этажа, нажатие на которые указывает микроконтроллеру, что лифт необходимо поднять на нужный этаж.

Нажатие кнопки на мгновение создает сигнал ВЫСОКИЙ, а затем сигнал НИЗКИЙ, когда пользователь отпускает кнопку. Задача микроконтроллера - идентифицировать ВЫСОКИЙ сигнал от кнопки этажа, нажатой пользователем. Эта конкретная задача не требует обработки прерывания. Пока пользователь нажимает кнопку в течение достаточного периода времени, MCU может зарегистрировать сигнал от кнопки. Следующая задача микроконтроллера - оценить, включить ли двигатель вверх или вниз в зависимости от ввода пользователя и текущего этажа лифта.

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

Но благодаря разработке алгоритма для удержания текущего этажа лифта в переменной и его сравнения с вводом от пользователя система полностью избавилась от переключателей направления, чтобы определить направление, в котором лифт должен двигаться, чтобы добраться до желаемого. этаж. Например:на схеме подключения входа и контроля пола к MCU, показанной выше, лифт указывает MCU, что он находится на втором этаже, через контакт 3. Затем пользователь вводит данные, нажимая кнопку четвертого этажа. MCU получает эту команду и сравнивает два входа. Поскольку ввод от пользователя «4» больше, чем ввод от концевого выключателя, «2» MCU отправляет сигнал через вывод MotorUp для активации транзистора для питания реле Up.

По мере того, как лифт поднимается, текущая переменная этажа в программе обновляется, когда он достигает третьего этажа. Как только срабатывает концевой выключатель, он сравнивается с введенным пользователем значением, которое в данном случае равно «4», и снова сравнивает это значение с обновленным текущим этажом, чтобы определить, подошел ли лифт к желаемому этажу. Как только срабатывает концевой выключатель четвертого этажа, MCU определяет, что лифт приблизился к четвертому этажу, и посылает сигнал НИЗКИЙ через сигнальный контакт Motor Up, чтобы отключить питание двигателя и предотвратить его дальнейшее движение.

1.3.3 Изоляция управления от входов

Другим важным фактором является изоляция стороны управления постоянным током микроконтроллера от любых помех переменного тока, которые могут повлиять на MCU через входы системы. Проблема, с которой я столкнулся, поскольку изначально у меня не было установленного изоляционного оборудования, помехи переменного тока, исходящие от металлического корпуса лифта, передавались на MCU через концевые выключатели. Несмотря на то, что концевые выключатели работают от отдельного источника постоянного тока, входные данные от концевых выключателей напрямую поступают на микроконтроллер, затем возникают помехи, когда лифт начинает движение, и из-за этих помех переменного тока MCU не может правильно идентифицировать этаж, на котором лифт я сидела. Чтобы противодействовать этой проблеме, для каждого входа использовалась оптопара, чтобы изолировать MCU от внешних помех.

Назначение оптопары - передавать входной сигнал, генерируемый концевым выключателем пола, на микроконтроллер через светодиод и фототранзистор. Когда концевой выключатель замкнут, светодиод включается, и входящий свет от светодиода активирует затвор фототранзистора, который затем передает сигнал HIGH на MCU, успешно изолируя вход извне и MCU.

1.4 Прототип


Производственный процесс

  1. Лифт
  2. Arduino Spybot
  3. FlickMote
  4. Самодельный телевизор B-Gone
  5. Основные часы
  6. Найди меня
  7. Arduino Power
  8. Tech-TicTacToe
  9. Четвероногий Arduino
  10. Регистратор данных с погодными шарами на базе Arduino