Как подключить и управлять шаговым двигателем с ИК-пульта дистанционного управления
Легкий способ управлять шаговым двигателем на расстоянии, используя пульт дистанционного управления.
Для работы шагового двигателя используем драйвер который легко подключается к UNO .
Для питания используется собственный источник питания на макетной плате .
Датчик ИК подключен к UNO непосредственно, поскольку он мало потребляет питания .
![]() |
Схема подключения |
Мы используем 4 контакта для управления шаговым и 1 контакт для ИК-датчик.
Pin 8-11 контролируют шаговым двигателем и Pin 6 в получении информации ИК.
Мы подключить 5V к драйверу шагового двигателя так как двигатель потребляет большой ток, что может привестик повреждению UNO
В программе используется две библиотеки : “IRremote” and “Stepper”.
Библиотека “Stepper” включена по умолчанию с установкой программного обеспечения Arduino .
Вам нужно будет скачать библиотеку "IRremote" и извлечь ее в папку библиотеки .
Приведенный ниже код распознавать только 2 значения с пульта дистанционного управления ИК: вверх и вниз.
При нажатии ВВЕРХ на пульте дистанционного управления мотор сделает полный оборот по часовой стрелке.
При нажатии ВНИЗ сделает полный оборот против часовой стрелки.
![]() |
Схема подключения |
Sketch code
//Stepper with IR remote
#include "Stepper.h"
#include "IRremote.h"
/*----- Variables, Pins -----*/
#define STEPS 32 // Number of steps per revolution of Internal shaft
int Steps2Take; // 2048 = 1 Revolution
int receiver = 6; // Signal Pin of IR receiver to Arduino Digital Pin 6
/*-----( Declare objects )-----*/
// Setup of proper sequencing for Motor Driver Pins
// In1, In2, In3, In4 in the sequence 1-3-2-4
Stepper small_stepper(STEPS, 8, 10, 9, 11);
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results; // create instance of 'decode_results'
void setup()
{
irrecv.enableIRIn(); // Start the receiver
}
void loop()
{
if (irrecv.decode(&results)) // have we received an IR signal?
{
switch(results.value)
{
case 0xFF629D: // UP button pressed
small_stepper.setSpeed(500); //Max seems to be 700
Steps2Take = 2048; // Rotate CW
small_stepper.step(Steps2Take);
delay(2000);
break;
case 0xFFA857: // DOWN button pressed
small_stepper.setSpeed(500);
Steps2Take = -2048; // Rotate CCW
small_stepper.step(Steps2Take);
delay(2000);
break;
}
irrecv.resume(); // receive the next value
}
}
Скачать библиотеку: IRremote_Library.zip
Скачать программу: Stepper_IRremote_Sketch.zip
Рекомендуем:
Отображения результатов на LCD-дисплее
Управление шаговым двигателем с помощью джойстика
Подключение и использование модуля реле с инфракрасным датчиком движения HC-SR501
Запись с Arduino времени и даты события на MicroSD
Использование модуля DS1307 RTC
Использование пульта дистанционного управления в Arduino проекте