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

Вибромотор «Блинчик»
Вибрационные двигатели Pancake компактны и очень удобны в использовании, поскольку не имеют внешних движущихся частей и могут быть просто прикреплены к месту с помощью предварительно прикрепленной клейкой наклейки на задней стороне.
В принципе, блинные вибрационные двигатели используют тот же принцип работы, что и двигатели с эксцентриковой вращающейся массой (также известные как пейджерные двигатели), однако их эксцентриковая масса находится в небольшом круглом корпусе диаметром от 7 до 14 мм. Такая низкопрофильная конструкция делает их очень популярными во многих местах с ограниченным пространством.
Стандартные (щеточные) вибродвигатели для монет состоят из плоской печатной платы, на которой вокруг внутреннего вала в центре расположена 3-полюсная схема коммутации. Требуемое рабочее напряжение обычно составляет около 3 В, а потребляемый ток — около 60 мА. Следует отметить, что блинные вибрационные двигатели требуют относительно высокого пускового напряжения, по сравнению с другими вибрационными двигателями, что необходимо учитывать при проектировании.
Обычно это напряжение составляет около 2,3 В, и несоблюдение этого требования может привести к проблемам с запуском, особенно в вертикальном положении. Это связано с тем, что в вертикальном положении двигатель должен переносить эксцентричную массу через верхнюю часть вала в начальном цикле.

Схема драйвера
Самый простой способ управлять блинным двигателем — напрямую от источника питания, например аккумулятора. Это самый простой метод подключения, который обычно используется для приложений с вибросигналом, которым требуется только включение/выключение вибрации. Для более сложных приложений можно использовать технологию широтно-импульсной модуляции (PWM) вместе со специальными микросхемами драйвера двигателя типа «плинтус» (с тактильной обратной связью) или с электроникой драйвера на основе дискретных компонентов.
Этот метод PWM в настоящее время очень распространен и представляет собой чрезвычайно экономичный способ изменения амплитуды вибрации вибрационного двигателя с помощью микроконтроллера. Ниже показана проверенная схема драйвера вибромотора типа "блинка", которая принимает простой сигнал включения/выключения GPIO, а также входной сигнал PWM от микроконтроллера.

Прототип моего драйвера двигателя-блинки, подключенного к куску перфорированной платы, показан ниже:

Ниже приведено краткое видео первоначального испытания этой схемы, возбуждаемой прямоугольной волной частотой около 1 Гц (с коэффициентом заполнения около 50%) от модуля генератора импульсов на базе микросхемы 555 (купленного на eBay). Смотрите (чтобы услышать работу мотора, вам понадобится звук).

Использование вибродвигателей Pancake с Arduino
В case у вас нет доступа ни к каким генераторам импульсов, вы можете использовать свой Arduino для экспериментов с этой схемой драйвера. Просто «скопируйте-вставьте-скомпилируйте-загрузите» прилагаемый скетч и получите выходные данные с контакта 13 (D13) Arduino. Излишне говорить, что используя еще более качественный код, вы можете создавать потрясающие проекты/устройства с тактильной обратной связью/вибратором. Мне бы хотелось услышать, как это работает для вас – дайте мне знать в комментариях!
В коде каждый раз, когда используется функция digitalWrite, за ней должна следовать функция задержки. Здесь скважность составляет 50%, а частота 1Гц. Чтобы получить желаемый рабочий цикл, посчитайте:
“Рабочий цикл (%) = 100 x время задержки ВЫСОКОЕ/время задержки НИЗКОЕ + время задержки ВЫСОКОЕ”. Частоту (обратную периоду) также можно изменить, изменив значение общего времени, которое занимает один цикл, т.е. период.
/*
*Код испытаний вибродвигателя Pancake
*Мотор включается на полсекунды, затем несколько раз выключается на полсекунды.
*Подключите выходной контакт D13 Arduino к входному разъему схемы драйвера блина.
*Для продолжения обратитесь к схеме.
*Это пример кода базового теста.
*Подготовлено Т.К.Хареендраном.
*/
недействительная настройка() {
pinMode(13, OUTPUT); // Инициализируем D13 как выходной контакт
// Управляйте двигателем прямоугольной волной частотой 1 Гц при рабочем цикле 50 %
// См. раздел «Математика», включенный в статью
недействительный цикл() {
digitalWrite(13, ВЫСОКИЙ); // включаем привод (ВЫСОКИЙ)
задержка(500); // ждем 500 мс
digitalWrite(13, НИЗКИЙ); // выключаем привод (LOW)
задержка(500); // ожидание второго периода 500 мс
//Конец кода