- Необходимые компоненты
- Принципиальная электрическая схема
- Программа Arduino для автоматического наполнения бутылок
Автоматические машины для розлива бутылок чаще всего используются в производстве напитков и безалкогольных напитков. В этих машинах используется конвейерная лента, которая является экономичным и быстрым способом наполнения бутылок. В основном ПЛК используются для автоматов розлива бутылок, но вы можете сделать очень простой и универсальный наполнитель бутылок с помощью Arduino. Вы можете запрограммировать Arduino на автоматическое обнаружение бутылки с помощью инфракрасного или ультразвукового датчика и дать разливщику возможность наполниться, остановив конвейерную ленту на некоторое время. Затем снова переместите ремень и остановитесь, когда будет обнаружена следующая бутылка.
Здесь мы собираемся разработать прототип автоматической машины для розлива бутылок с использованием Arduino Uno, конвейерной ленты, соленоидного клапана, ИК-датчика и шагового двигателя. Ленточный конвейер приводится в движение шаговым двигателем с постоянной заданной скоростью. Шаговый двигатель будет продолжать приводить в движение ремень, пока ИК-датчик не обнаружит наличие бутылки на ремне. В качестве внешнего триггера мы использовали ИК-датчик. Таким образом, всякий раз, когда ИК-датчик достигает высокого уровня, он отправляет на Arduino триггер, чтобы остановить двигатель и включить соленоидный клапан. Требуемая предустановленная задержка уже введена в код для наполнения бутылки. Arduino будет держать соленоидный клапан включенным, а шаговый двигатель выключенным до указанного времени. По истечении этого времени электромагнитный клапан отключает наполнение, и конвейер начинает движение, чтобы можно было наполнить следующую бутылку.
Ранее мы использовали Arduino с электромагнитным клапаном, ИК-датчиком и шаговым двигателем, поэтому, чтобы узнать больше об основном взаимодействии Arduino с этими компонентами, вы можете посетить ссылки.
Необходимые компоненты
- Ардуино Уно
- Шаговый двигатель (Nema17)
- Реле
- Соленоидный клапан
- ИК-датчик
- A4988 Драйвер двигателя
- Аккумулятор
Принципиальная электрическая схема
Принципиальная схема системы автоматического наполнения бутылок с использованием Arduino приведена ниже.
Взаимодействие с другими людьми
Я использовал Fritzing, чтобы нарисовать принципиальную схему. В этой схеме электромагнитный клапан подключен к Arduino через модуль реле, а модуль драйвера A4988 используется для управления шаговым двигателем. Вы можете следовать руководству Как управлять Nema17 с помощью Arduino и A4988 для получения дополнительной информации о модуле драйвера Nema17 и A4988.
Входной контакт модуля реле подключен к контакту 7 Arduino. Контакты Direction и Step модуля A4988 подключены к 2 и 4 контактам Arduino. В этом проекте ИК-датчик используется как внешнее прерывание для Arduino. В Arduino Uno цифровые контакты 2 и 3 являются контактами прерывания, поэтому подключите выходной контакт ИК-датчика к 3- му контакту Arduino. Электромагнитный клапан питается от источника питания 24 В, а шаговый двигатель питается от источника питания 12 В.
Программа Arduino для автоматического наполнения бутылок
Полная программа для этой автоматической системы наполнения бутылок с использованием Arduino приведена в конце. Здесь я объясняю некоторые важные строки.
Запустите программу, включив библиотеку шаговых двигателей. Вы можете скачать библиотеку шаговых двигателей здесь.
После этого определите количество шагов на оборот для шагового двигателя. Для NEMA 17 шагов на оборот составляет 200.
#включают
Укажите контакты, к которым подключены контакты Step и Direction модуля драйвера двигателя. Поскольку двигатель подключен через модуль драйвера, определите тип интерфейса двигателя как Type1 .
Шаговый шаговый (ШАГИ, 2, 4); #define motorInterfaceType 1
Установите скорость шагового двигателя.
stepper.setSpeed (500);
Определите контакты реле, шага и направления как выход
pinMode (реле, ВЫХОД); pinMode (4, ВЫХОД); pinMode (2, ВЫХОД);
Синтаксис внешнего прерывания в Arduino приведен ниже:
attachInterrupt (digitalPinToInterrupt (контакт), ISR, режим);
Где:
digitalPinToInterrupt (pin): используется для определения вывода, к которому подключено внешнее прерывание. В Arduino Uno контакты 2 и 3 - это внешние контакты прерывания.
ISR: это функция, которая вызывается при вызове внешнего прерывания.
Режим: Тип перехода для включения, например, падение, рост и т. Д.
Узнайте больше о прерываниях Arduino, перейдя по ссылке.
В функции attachInterrupt () указано, что контакт 3 является контактом внешнего прерывания, а функция IR_detected вызывается всякий раз, когда ИК-датчик меняет свое состояние с НИЗКОГО на ВЫСОКОЕ (ПОДЪЕМ).
attachInterrupt (digitalPinToInterrupt (3), IR_detected, HIGH);
void IR_detected () - это функция ISR, которая выполняется, когда ИК-датчик становится высоким. Таким образом, всякий раз, когда ИК-датчик достигает высокого уровня, эта функция запускает шаговый двигатель на несколько шагов, а затем останавливает шаговый двигатель и включает соленоидный клапан.
void IR_detected () {stepper.step (150); digitalWrite (реле, ВЫСОКИЙ); stepper.step (0);
Теперь, наконец, загрузите код в Arduino, подключив его к ноутбуку. На изображении ниже показан наш прототип системы автоматического наполнения бутылок с использованием Arduino.
Полный код и демонстрационное видео приведены ниже.