Arduino+驱动器驱动2相四线4 步 【步进电机】学习笔记——感受机械的魅力

https://blog.csdn.net/ff_tt/article/details/78397811#commentBox
http://www.geek-workshop.com/thread-4319-1-1.html
这种搭配:
在这里插入图片描述
上来就放程序给你们!!看了太多理论,写不出驱动程序就很抓急,还是驱动起来,听着滋滋的电磁声,才让人颇有成就感~~
在这里插入图片描述

只需三步,三步登天!

第一步,拷贝驱动程序:

#define CLK 7
void setup() {
pinMode(CLK,OUTPUT);
Serial.begin(9600);
}
void loop() {
digitalWrite(CLK,HIGH);
delayMicroseconds(1000);//延迟1毫秒
digitalWrite(CLK,LOW);
delayMicroseconds(1000);
}

第二步,细分数设置,设置为16

在这里插入图片描述

第三步,我的连线方式,请按实际连线:PUL-连接在arduino 7 引脚,哪个都行的

在这里插入图片描述
为什么这样呢?因为:
在这里插入图片描述
再看一下程序,7脉冲信号输出,置高置低置高置低置高置低置高置低~~就是500Hz
在这里插入图片描述

接下来是理论啦

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

我的电机:
在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

void MOTOR_Init(void)
{
  RCC->APB2ENR|=1<<2;
  GPIOA->CRL&=0xffff0000;
  GPIOA->CRL|=0x00003333;
}123456

节拍(8):

//第一拍
  AIN1_1=1;
  AIN1_2=0;
  BIN1_1=0;
  BIN1_2=0;
  delay_us(2500);
  //第二拍
  AIN1_1=1;
  AIN1_2=0;
  BIN1_1=1;
  BIN1_2=0;
  delay_us(2500);
  //第三拍
  AIN1_1=0;
  AIN1_2=0;
  BIN1_1=1;
  BIN1_2=0;
  delay_us(2500);
 //第四拍
  AIN1_1=0;
  AIN1_2=1;
  BIN1_1=1;
  BIN1_2=0;
  delay_us(500);
    //第五拍
  AIN1_1=0;
  AIN1_2=1;
  BIN1_1=0;
  BIN1_2=0;
  delay_us(2500);
  //第六拍
  AIN1_1=0;
  AIN1_2=1;
  BIN1_1=0;
  BIN1_2=1;
  delay_us(2500);
  //第七拍
  AIN1_1=0;
  AIN1_2=0;
  BIN1_1=0;
  BIN1_2=1;
  delay_us(2500);
 //第八拍
  AIN1_1=1;
  AIN1_2=0;
  BIN1_1=0;
  BIN1_2=1;
  delay_us(2500);

---------------------

本文来自 ff_tt 的CSDN 博客 ,全文地址请点击:https://blog.csdn.net/ff_tt/article/details/78397811?utm_source=copy 

猜你喜欢

转载自blog.csdn.net/qq_42807924/article/details/82974497