В данном уроке мы будем подключать шаговый двигатель к arduino. Помимо самого ШД и arduino нам в первую очередь понадобится драйвер шагового двигателя. на микросхеме L298. Такой драйвер можно приобрести в зарубежных интернет магазинах за небольшую сумму.
Использую шаговый двигатель можно точно спозиционировать положение вала, поворот вала осуществляется на определенный угол по "шагам". Также ШД может удерживать текущую позицию, даже при наличии обратного крутящего момента на валу. Они бывают 2-х типов: униполярные и биполярные. Лучшими силовыми характеристиками обладают биполярные двигатели. Биполятрные двигатель имеет 4 провода, которые подключены к 2-м наборам внутренних электромагнитных катушек. Направление вращения вала ШД осуществляется путем изменения направления тока в катушках.
Для того чтобы управлять ШД нельзя взять и просто подать постоянное напряжение - он работать не будет. Для его работы необходим модуль или драйвер шагового двигателя. При помощи его можно осуществлять контроль над скоростью вращения и напрявлением вала двигателя. В нашем примере используется модуль на микросхеме L298H. Но существую также и другие варианты драйвера на других микросхемах.
В нашем примере в качестве контроллера выступает Arduino UNO но можно также использовать и другие платы. На шаговом двигателе есть 2 пары проводов, первая пара A,A+ на двигателе подключается к выводам МА,МА+ на контроллере. Аналогично и другая пара B,B+ на двигателе подключается к выводам МB,МB+ на контроллер ШД. Подключение напряжения осуществляется к выводам +12V, GND и +5V. GND - общий минусовой провод, +12V необходимо для питания двигателя а +5V для питания самого драйвера ШД. Управляющие выводы IN1,IN2,IN3,IN4 подключаются к выводам D8,D9,D10,D11 соответственно. По этим проводам передаются управляющие сигналы, которые представляют собой импульсы.
Далее нам необходимо залить саму программу, она есть в готовых примерах среды Arduino и называется stepper_oneRevolution.
#include const int stepsPerRevolution = 200; // steps per revolution of your motor // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8,9,10,11); void setup() { // set the speed at 60 rpm: myStepper.setSpeed(60); // initialize the serial port: Serial.begin(9600); } void loop() { // step one revolution in one direction: Serial.println("clockwise"); myStepper.step(stepsPerRevolution); delay(500); // step one revolution in the other direction: Serial.println("counterclockwise"); myStepper.step(-stepsPerRevolution); delay(500); }