Как запустить шаговый двигатель без электроники

Что такое шаговый двигатель

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

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

Выбираем шаговый двигатель

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

Характеристики некоторых двигателей приведены в таблице:

Для небольшого станка с рабочим пространством размером 300×300х100 мм и легким фрезером вполне сгодятся двигатели с крутящим моментом 0,3Нм и выше. Оптимальным является ток от 1,5 до 2,5 Ампер, вполне подойдет FL42STH38-1684

Распиновка драйвера A4988

Драйвер A4988 имеет всего 16 контактов, которые связывают его с внешним миром. Распиновка у A4988 следующая:

Как запустить шаговый двигатель без электроники

Давайте ознакомимся со всеми контактами по очереди.

Выводы питания

На самом деле A4988 требует подключения двух источников питания.

VDD и GND используется для управления внутренней логической схемой. Напряжение питания должно находиться в пределах от 3 до 5,5 В.

Vmot и GND для обеспечения питания шагового двигателя. Тут напряжение в пределах от 8 до 35 В.

Согласно datasheet, для питания двигателя требуется соответствующий разделительный конденсатор рядом с платой, способный выдерживать ток 4 А.

Выводы выбора микрошага

Драйвер A4988 допускает использование режима микрошага. Это достигается за счет подачи питания на катушки с промежуточными уровнями тока.

Например, если вы решите управлять шаговым двигателем NEMA 17 с шагом 1,8 градуса (200 шагов на оборот) в режиме 1/4 шага, то двигатель будет выдавать 800 микрошагов на оборот.

Драйвер A4988 имеет три вывода селектора размера шага (разрешения), а именно: MS1, MS2 и MS3. Установив соответствующие логические уровни на эти контакты, мы можем настроить двигатели на одно из пяти ступенчатых разрешений.

Как запустить шаговый двигатель без электроники

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

Выводы управления

Драйвер A4988 имеет два управляющих входа, а именно: STEP и DIR.

STEP — управляет микрошагом мотора. Каждый  высокий импульс, отправляемый на этот вывод, приводит двигатель в действие на количество микрошагов, заданное выводами Microstep Selection (MS1, MS2 и MS3). Чем быстрее импульсы, тем быстрее будет вращаться двигатель.

DIR — управляет направлением вращения двигателя. Если на него подать высокий уровень, то двигатель будет вращается по часовой стрелке, а если низкий — против часовой стрелки.

Если вы просто хотите, чтобы двигатель вращался только в одном направлении, то вы можете соединить вывод DIR непосредственно с VCC или GND соответственно.

Выводы управления питанием A4988

A4988 имеет три различных вывода для управления состоянием питания, а именно. EN, RST и SLP.

EN — вывод включения (0)/ выключения (1) драйвера A4988. По умолчанию на этом выводе установлен низкий уровень, поэтому драйвер всегда включен.

SLP — подача на данный вывод сигнала низкого уровня переводит драйвер в спящий режим, сводя к минимуму потребление энергии. Вы можете использовать это  для экономии энергии.

RST — при подаче сигнала низкого уровня все входные данные STEP игнорируются, до тех пор пока не будет установлен высокий уровень. Низкий уровень также сбрасывает драйвер, устанавливая внутренний транслятор в предопределенное состояние Home. Исходное состояние — это в основном начальное положение, с которого запускается двигатель, и оно различается в зависимости от разрешения микрошага.

Выводы для подключения шагового двигателя

Выходные контакты: 1B, 1A, 2A и 2B.

К этим выводам можно подключить любой биполярный шаговый двигатель с напряжением питания от 8 до 35 В.

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

Что такое шаговый двигатель?

Прежде чем перейти к статье, давайте сразу договоримся, что статья не направлена на специалистов, а её цель – донести любознательным любителям техники и технологий о таком устройстве, как шаговый двигатель и об основах работы с ними. Поэтому умников и критиков, жаждущих поговорить о великом многообразии управляемого и регулируемого электропривода, прошу идти общаться на тематические ресурсы по ЧПУ-станкам и 3D-принтерам.

Итак, для начала сформулируем определение. Согласно Википедии: «Шаговый электродвигатель — синхронный бесщёточный электродвигатель с несколькими обмотками, в котором ток, подаваемый в одну из обмоток статора, вызывает фиксацию ротора. Последовательная активация обмоток двигателя вызывает дискретные угловые перемещения (шаги) ротора».

Формулировка достаточно понятна, но её последнее предложение может вызвать некоторое недопонимание. Поэтому я предлагаю провести небольшое сравнение.

Всем известно что ротор «обычного» электродвигателя, будь то асинхронного, синхронного, коллекторного или любого другого будет вращаться до тех пор, пока на него подают напряжение питания, и после отключения питания он будет вращаться еще какое-то время по инерции, если же не используются какие-либо средства для его торможения.

Популярные статьи  Как сделать магнитную бесконтактную мешалку своими руками

Ротор такого двигателя вращается просто вокруг своей оси без каких-либо ограничений, на 360 градусов, и остановится он в любом месте. Зафиксировать его положением можно только механически (тормозом). По этой причине не получится добиться точного позиционирования исполнительных механизмов, что требуется в робототехнике, ЧПУ-станках и другом автоматизированном оборудовании.

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

В приведенном выше определении было сказано «…вызывает дискретные угловые перемещения (шаги) ротора…» — это значит, что ротор шагового двигателя не вращается в обычном понимании, а поворачивается на какой-то определенный, «дискретный» угол. Этот угол называется шагом, отсюда и название «шаговый двигатель». Мне нравится еще одно название этих устройств — «двигатель с конечным числом положений ротора».  

Питание такого двигателя невозможно без системы управления, или как его еще называют, драйвера — он подаёт импульсы в нужные обмотки, чтобы повернуть ротор на нужный угол. Это наглядно иллюстрирует приведенная ниже анимация.

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

Рассматривать типы шаговых двигателей в пределах этой статьи мы не будем, лишь кратко перечислим, какими они бывают. По конструкции:

  1. Реактивные.
  2. С постоянными магнитами.
  3. Гибридные.

По способу питания:

  1. Униполярные (однополярные — ток пропускают через обмотки только в одну сторону).
  2. Биполярные (ток пропускают через обмотки в обе стороны). Здесь драйвер должен подавать напряжение различной полярности, что несколько усложняет схемотехнику. При тех же размерах развивают бОльшую мощность по сравнению с униполярными.

В униполярном двигателе зачастую 5 проводов — 1 общий, от середины каждой из двух обмоток, и 4 от концов обмоток. Иногда говорят «4 обмотки» – это также правильно, поскольку фактически мы получаем 4 обмотки соединенных в общей точки.

Как запустить шаговый двигатель без электроники

Также ШД могут отличаться и по количеству проводов, это зависит от того, как соединены обмотки и какое питание предполагается, некоторые варианты вы видите в таблице ниже.

Как запустить шаговый двигатель без электроники

Управление шаговым двигателем

Различают два способа управления шаговым двигателем:

  1. Полношаговое. Одновременно включается только пара обмоток (без перекрытия с другими). Достигается максимальный момент на валу, но точность установления угла меньше, чем в других способах.
  2. Полушаговое. В этом случае увеличивается количество шагов, соответственно повышается точность установки положения вала. На каждый первый шаг включается одна обмотка, на каждый второй шагами (полушаг) – пара обмоток. Но когда включена одна обмотка момент на валу снижается вдвое.

На анимациях ниже наглядно продемонстрировано

Полношаговое управление

Как запустить шаговый двигатель без электроники

Полушаговое управление

Как запустить шаговый двигатель без электроники

В некоторых источниках отдельно обозначают микрошаговое управление. Используется, когда необходимо максимальное количество шагов и точность управления. По способу управления оно похоже на полушаговый режим, между шагами включаются две обмотки, а отличие в том, что токи в них распределяются не равномерно. Главный недостаток такого подхода — усложняется коммутация (система управления).

Типы и конструктивные особенности

Сегодня применяется несколько видов ШД, отличающихся по конструкции, типу обмоток, особенностям управления и иным параметрам. Рассмотрим каждую классификацию более подробно.

Как запустить шаговый двигатель без электроники

По конструкции ротора

Многие характеристики двигателя, касающиеся скорости вращения и режима работы, зависят от ротора.

С этой позиции выделяется три вида устройства.

Реактивный (синхронный). Особенность — отсутствие роторного магнита. Конструктивно изготавливается из специальных сплавов, позволяющих снизить индуктивные потери. Устройство имеет вид шестеренки с зубцами, а на полюсах статора подается напряжение со второй пары. Как результат, создается магнитная сила для перемещения ротора. По принципу действия реактивный шаговый агрегат имеет много общего с синхронным мотором, где поля ротора и статора вращаются в одном направлении. Как запустить шаговый двигатель без электроники

  1. Двигатель с магнитами. В отличие от прошлого устройства подвижный элемент комплектуется постоянным магнитом с двумя и более полюсами. Ротор крутится, благодаря притягиванию и отталкиванию полюсов с помощью электрического поля в момент подачи разницы потенциалов на определенные обмотки.
  2. Смешанные. В гибридных устройствах совмещаются лучшие качества магнитных и реактивных моторов. В отличие от прошлых моделей угол и шаг здесь меньше. Конструктивно ротор оборудован постоянным магнитом, имеющим цилиндрическую форму. Внешне он имеет вид двух полюсов с круглым сечением, на поверхности которых находятся роторные зубцы. Такая особенность гарантирует хороший момент вращения и удерживания. Главные плюсы — максимальная плавность, точность и скорость перемещения.

По типу обмоток

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

Как запустить шаговый двигатель без электроники

Многие ошибочно считают, что количество обмоток зависит от числа фаз. Это не так, ведь даже 2-фазный мотор может иметь четыре и более обмотки.

Шаговые двигатели бывают:

  1. Униполярными. Особенность — наличие отпайки из средней точки, что позволяет с легкостью менять полюса. Минус состоит в применении части витков, поэтому уменьшается момент вращения. Для повышения мощности средний вывод подключать не рекомендуется. Конструктивно униполярные устройства содержат пять и шесть выводов.
  2. Биполярный. К этой группе относится шаговый двигатель, подключаемый к контроллеру через четыре отпайки. Обмотки могут объединятся в параллель или последовательно. Для изменения направления тока применяются так называемые чипы, обеспечивающие ручное управление. Достижение такого эффекта доступно с помощью Н-моста. Если сравнивать с униполярным видом, биполярный тип гарантирует тот же момент, но при меньших размерах.

По типу управления

Для расширения функционала и удобства применения предусмотрена система управления.

Она бывает следующих типов.

Волновая: возбуждение только одной обмотки. Недостатком является минимально доступный момент.

Как запустить шаговый двигатель без электроники

Полношаговая: одновременное включение обмоток.

Популярные статьи  Идея для дачи или как сделать скамейку из бревна своими руками

Как запустить шаговый двигатель без электроники

Полушаговая: делание геометрии шагового мотора пополам. Обеспечивается увеличенное разрешение при позиционировании вала агрегата.

Как запустить шаговый двигатель без электроники

По типу

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

Кратко рассмотрим их особенности:

  1. Биполярные двигатели — двухфазные с угловым перемещением в 0,9 или 1,8 градуса. Разработчики гарантируют высокую точность шага без нагрузки величиной до 5%.
  2. С энкодером (часто называются гибридными серводвигателями). Особенность состоит в наличии инкрементального энкодера. Моторы объединяют лучшие качества серво- и шаговых электрических моторов, а цена таких устройств меньше в сравнении с сервосистемой. Применяются в комплексе с контроллером.
  3. Линейные (актуаторы). Принцип действия построен на преобразовании вращательного движения в линейное. Иными словами, в них сочетается винтовая передача и ШД, объединенные в общем блоке.
  4. Шаговые двигатели с редуктором. Применяются в ситуации, когда необходимо получить максимальное усилие на валу электрического привода с минимальной скоростью вращения. В роли редуктора используется планетарный тип, оборудованный прямозубыми шестеренками с небольшим люфтом передачи.

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

Как запустить шаговый двигатель без электроники

Чем отличается синхронный двигатель от асинхронного для чайников кратко, простыми словами, сравнение по конструкции и принципу действия

Перейдем к практике

Теория всегда запутанная и непонятная, чтобы понять что и как брать и делать. Поэтому перейдем к практической стороне дела.

Итак, из набора, о котором шла речь ранее, у меня есть:

  • Arduino UNO;
  • Модуль ULN2003;
  • Шаговый двигатель 28BYJ-48 5V DC;
  • Связка свитеров, щиток и источник питания для него.

Модуль ULN2003 — предназначен для управления униполярным шаговым двигателем. Схематично это 7-канальный транзисторный комплекс Дарлингтона и, в принципе, им можно управлять чем угодно. Технические характеристики приведены ниже:

  • Номинальный ток коллектора ключа — 0,5 А;
  • Максимальное выходное напряжение до 50В;
  • Защитные диоды на выходах;
  • Вход адаптирован к разным типам логики;
  • Возможность использования для релейного управления.

Модуль, помимо самой микросхемы ULN2003, имеет светодиоды для индикации выходного напряжения, колодку подключения и перемычку для отключения питания.

Двигатель 28BYJ-48 5V DC подключается штатным разъемом к белому блоку на плате. В нем 5 проводов: общий красный и 4 от обмоток.

  • 32 шага на оборот ротора;
  • Интегрированная коробка передач с передаточным отношением 63,68395: 1, благодаря которой вал совершает 1 оборот за 2048 шагов в режиме полного шага и 4096 шагов в режиме полушага;
  • Скорость вращения: номинальная 15 об / мин, максимальная 25 об / мин;
  • Напряжение питания 5 В;
  • Ток одной обмотки 160 мА;
  • Полный ток: в 4-фазном режиме 320 мА, при быстром вращении 200 мА.
  • Передаточное число: 1 / 63,68395
  • Угол наклона ротора (без редуктора): при 4-ступенчатой ​​последовательности управляющих сигналов 11,25 ° (32 ступени на оборот); в 8 шагов — 5,625 ° (64 шага на оборот)
  • Крутящий момент не ниже: 34,3 мНм (120 Гц);
  • Тормозной момент: 600-1200 гсм;
  • Тяга: 300 г / м 2;
  • Вес: 33 гр.

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

Итак, попробуем выдать такие сигналы от ардуино. Для этого я подключаю модуль ULN2003 по следующей схеме (вывод arduino — контакт модуля)

Двигатель начнет вращаться, скорость вращения фиксируется переменной dl. Я только ввел его, чтобы не вводить вручную задержку на каждом шаге. Ниже я приложу видео и в нем для наглядности я показал как вращение с задержкой между шагами равной 2 мс (за 1 мс мотор только пищит и не вращается…), и с задержкой полсекунды, что позволяет четко видеть, в какой последовательности отправляются сигналы на обмотки, что позволяет убедиться, что напряжение приложено к двум обмоткам одновременно, согласно приведенной выше таблице. С задержкой в ​​2 мс светодиоды загораются как будто все вместе.

Перейдем к полушаговому управлению. В следующей таблице показана процедура подачи сигналов на обмотки рассматриваемого двигателя для ее реализации.

Первое, что бросается в глаза, это то, что код занимает намного меньше времени, количество шагов для полного оборота ротора задается первым аргументом функции Stepper, с его помощью выводов, к которым подключен двигатель и объявляется количество шагов в полном повороте дерева, его синтаксис следующий:

Имя шагового двигателя (количество шагов за полный оборот, вывод 1, вывод 2, вывод 3, вывод 4).

Что ж, когда нам нужно повернуть сам мотор, мы обращаемся к мотору, имя которого мы написали в Stepper с префиксом «.step», у нас есть myStepper.step. В видеоролик я для наглядности вставил фрагмент, в котором двигатель крутится на пол-оборота по часовой стрелке, а на полный — против. Это в самом конце. Я изменил код для этого следующим образом:

В дверном мониторе микроконтроллер «сообщает» нам, в каком направлении вращается двигатель.

И напоследок предлагаю посмотреть видео, демонстрирующее, как работают все примеры кода в этой статье

Подключение шагового двигателя

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

Как запустить шаговый двигатель без электроники

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

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

Всего выделяется шесть основных схем соединения:

  • биполярный;
  • биполярный с отводом из центральной части обмотки;
  • униполярный с четырьмя фазами и подключением пары обмоток;
  • четырехфазный униполярный с параллельным подключением;
  • четырехфазный униполярный с последовательным соединением.

Если питание шагового двигателя осуществляется от одинакового драйвера, в отношении упомянутых выше схем можно выделять ряд особенностей:

  1. Отводы всегда подходят к соответствующим клеммам. При последовательном объединении обмоток повышается индуктивность обмоток и снижается ток.
  2. Пользователь получает паспортные параметры касательно параметров. При параллельном подключении повышается ток и уменьшается индуктивность. Если подключить обмотку по одной фазе, уменьшается момент на низких оборотах, и снижается величина тока.
  3. Сохраняются динамические и электрические параметры (с учетом данных в паспорте).
  4. Повышенный момент и использование для получения больших частот.
  5. Увеличение момента (используется для небольших частот вращения).
Популярные статьи  Как сделать динамик своими руками

Принципиальные схемы подключения показаны ниже.

Как запустить шаговый двигатель без электроникиКак запустить шаговый двигатель без электроникиКак запустить шаговый двигатель без электроники

Для беспроблемной эксплуатации ШД важно помнить о тонкостях подачи номинального напряжения, скорости момента вращения и снижения линейного напряжения. Отдельного внимания заслуживает подключение шагового двигателя к Ардуино

В этом случае управляющие выходы с драйвера подключены цифровым контактам на Arduino Uno

Отдельного внимания заслуживает подключение шагового двигателя к Ардуино. В этом случае управляющие выходы с драйвера подключены цифровым контактам на Arduino Uno.

Как запустить шаговый двигатель без электроники

Питающее напряжение равно 5 В. Дополнительно можно использовать еще один источник питания во избежание перегрева платы.

Кстати, как сделать умный дом на Arduino читайте тут https://elektrikexpert.ru/arduino.html.

Подключение драйвера шагового двигателя A4988 к Arduino UNO

Теперь, когда мы имеем всю необходимую информацию о драйвере A4988, мы можем перейти к подключению его к нашей Arduino Uno.

Подключения довольно простое. Начните с подключения VDD и GND (рядом с VDD) к контактам 5V и минус на Arduino. Входные контакты DIR и STEP подключите к цифровым контактам №2 и №3 на Arduino соответственно. Шаговый двигатель подключите к контактам 2B, 2A, 1A и 1B.

Затем подключите вывод RST к соседнему выводу SLP/SLEEP, чтобы драйвер оставался включенным. Также держите контакты выбора микрошага отключенными, чтобы двигатель работал в полношаговом режиме.

Наконец, подключите источник питания двигателя к контактам VMOT и GND. Не забудьте установить большой развязывающий электролитический конденсатор 100 мкФ на контакты источника питания двигателя, рядом с платой.

Как запустить шаговый двигатель без электроники

Запуск низковольтного шагового двигателя с напряжением питания A4988 и 5 В

Я получил эту маленькую машину, которую я построил, используя два из этих двигателей и водителей A4988.

Он работал с источником питания 12 В, но я пытаюсь установить его на батарею и работает около 8 часов. Я думал, что смогу использовать один из тех аккумуляторов, которые дают напряжение 5 В, но я пытался использовать источник питания 5 В, но он не работает.

Подумал, что 5В недостаточно для водителя, но здесь говорят, что он должен делать: Могу ли я управлять низковольтным шаговым двигателем с помощью драйвера A4988?

Есть идеи, в чем может быть проблема? (Я также открыт для других решений)

Кстати, не знаю, имеет ли это значение, но власть также достается Arduino, который контролирует эту вещь.

Крис Страттон

gbulmer

Ответ на этот вопрос вы связаны объясняет , что 2,55 номинальная мощность двигателя может работать с драйвером A4988.

Далее продолжаются ответы, объясняющие, что реальное ограничение для степпера — тепловое, оно может быть «приготовлено к смерти» из-за слишком большой мощности.

Ответы также объясняют, что A4988 можно настроить для ограничения тока, чтобы шаговый двигатель 2,55 В мог работать от источника питания 8-35 В без повреждений.

Проблема состоит в том, чтобы пытаться управлять A4988 с 5 В, как писал Тут, минимальный привод A4988 составляет 8 В.

Просматривая веб-сайт Allegro, посвященный биполярным приводам с шаговым двигателем, A4980 рассчитан на работу при напряжении 3,3 В или выше.

Я не читаю по-китайски, и я не могу найти упоминаний о номинальном напряжении степпера, с которым вы связаны.

Похоже, что двигатель может быть повернут на 5В. Однако, чтобы этот шагер работал надежно, с достаточным крутящим моментом и с достаточно высокой скоростью, необходимой для вашей цели, может возникнуть проблема при 5 В. В качестве эксперимента я бы попробовал использовать более высокое напряжение, чем 5 В, может быть, 8,4 В NiMh, используя драйверы A48988. (Изменить: 7 x 1,2 В NiMh — 8,4 В без исправления 8,6 В)

Потребляемый ток двигателя сильно варьируется. При отсутствии таблицы данных разумным предположением является то, что полу-максимальная скорость — это максимальная эффективность, и она составляет около 1/2 максимального тока.

Один двигатель 0,45 А может потреблять 0,225 А, если он работает с максимальной эффективностью, поэтому 8 часов будут составлять 1,8 Ач.

Максимальный ток составляет 0,45 А, поэтому один двигатель, работающий с максимальным током (и, следовательно, с максимальной мощностью), будет потреблять 8 * 0,45 А = 3,6 Ач.

Выберите аккумулятор для каждого двигателя, между этими двумя.

Подход модели Remote Control заключается в использовании батарей LiPo, которые работают с номинальным 7,4 В (для 2-х элементов последовательно) или 11,1 В для 3-х элементов последовательно. Они легкие и могут заряжаться быстро. Им нужно зарядное устройство LiPo, и они никогда не должны работать слишком низко.

(Есть ли у вас доступ к любому испытательному оборудованию, например, к настольному блоку питания, который позволит вам «набирать» напряжение и ток?)

Рейтинг
( Пока оценок нет )
Денис Серебряков/ автор статьи
Понравилась статья? Поделиться с друзьями:
Добавить комментарий

;-) :| :x :twisted: :smile: :shock: :sad: :roll: :razz: :oops: :o :mrgreen: :lol: :idea: :grin: :evil: :cry: :cool: :arrow: :???: :?: :!: