Мотор с редуктором
Описание
В комплектацию GyverKIT PRO входят два мотора постоянного тока со встроенным червячным редуктором:
Характеристики:
- Питание: 3.. 6V
- Ток: 100.. 300 мА (холостой и под нагрузкой)
- Обороты (холостые): 125 об/мин
- Момент: 5.5 кг*см (при 6V)
Мотор достаточно мощный, заблокировать вал пальцами практически невозможно. Можно использовать в качестве привода робота-машинки (колёса и платформа есть в комплекте начиная с партии 003), а также отдельно: для управления рулонными шторами и прочими механизмами.
Подключение
Для гашения искр от щёток, которые создают сильные помехи на остальную электронику в схеме, желательно припаять на выводы мотора керамический конденсатор 0.1 мкФ (есть в наборе) – картинка слева. Для максимальной защиты рекомендуется припаять конденсаторы от каждого вывода на корпус мотора (для лужения корпуса может понадобиться паяльная кислота) – картинка справа.
Через драйвер
Для включения мотора в обе стороны, а также управления скоростью вращения, в наборе есть драйвер. Он подробно описан в отдельном уроке.
Через реле
Можно управлять мотором релейно (вкл/выкл) при помощи реле (отдельный урок про реле), подключив его в разрыв питания:
Для включения/выключения просто подать HIGH или LOW сигнал на пин:
#define MOT_PIN 2 // вынесли константой для удобства void setup() { pinMode(MOT_PIN, OUTPUT); // пин как выход } void loop() { // включаем и выключаем каждую секунду digitalWrite(MOT_PIN, HIGH); delay(1000); digitalWrite(MOT_PIN, LOW); delay(1000); }
Через MOSFET
Для плавного управления скоростью в одном направлении можно использовать MOSFET транзистор (урок про транзистор) или MOSFET модуль (урок про MOSFET модуль). Мотор является индуктивной нагрузкой, поэтому обязательно должен быть зашунтирован диодом (есть в наборе) во избежание повреждения транзистора!
Управлять скоростью можно при помощи ШИМ сигнала, точно так же, как в уроке про светодиод. Именно поэтому мотор подключен на пин D3.
#define MOT_PIN 3 void setup() { pinMode(MOT_PIN , OUTPUT); } void loop() { analogWrite(MOT_PIN , 128); // включить на 50% delay(2000); analogWrite(MOT_PIN , 255); // включить на 100% delay(2000); }
И пример с “плавным миганием”:
#define MOT_PIN 3 void setup() { pinMode(MOT_PIN, OUTPUT); } uint32_t tmr; // переменная таймера int val = 0; // переменная яркости int dir = 2; // скорость и направление яркости void loop() { // асинхронный таймер на миллис if (millis() - tmr >= 20) { tmr = millis(); val += dir; // прибавляем скорость if (val >= 255 || val <= 0) dir = -dir; // разворачиваем analogWrite(MOT_PIN, val); // применяем } }
Мотор будет плавно набирать скорость до максимума, а затем плавно сбавлять её до нуля. Расширенное управление мотором при помощи библиотеки GyverMotor мы разбирали в уроке про драйвер.
Домашнее задание
- Попробовать все способы управления мотором
- Прочитать урок по моторам, попробовать схему с двумя реле