Arduino Stepper库驱动28BYJ-48步进电机测试程序

Arduino Stepper库驱动28BYJ-48步进电机测试程序


  • Proteus仿真
    在这里插入图片描述

步进电机28BYJ-48相关参数

步进电机28BYJ-48,步进角:5.625度,就是1个脉冲信号转5.625度,64个信号转360度。减速比:1/64,电机壳里边的电机转64圈,电机壳外边的部分转1圈。

Stepper库说明

库源代码的驱动的相序是不一样的,为了驱动28BYJ-48步进电机

  • 方式一:定义方式:Stepper myStepper(motorSteps, 8,10,9,11);
  • 方式二:对调电机电机线序。(本例采用对调线序)
  • 方式三: 修改相关代码如下:

文件位置:C:\Users\Administrator\Documents\Arduino\libraries\Stepper\src,中的Stepper.cpp源文件,第257行-278行,修改如下,就是调整引脚高低电平顺序。

在这里插入图片描述

步进电机相关参数

Step Angle该参数决定了,程序运行时,步进电机能否转一圈。

在这里插入图片描述

测试功能说明

运行仿真后,步进电机转一圈停止。

示例代码

/*
  Arduino控制28BYJ-48步进电机测试程序
*/
 
//本示例程序使用Stepper库
#include <Stepper.h>//点击这里会自动打开管理库页面: http://librarymanager/All#Stepper
  
// 电机外部输出轴旋转一周步数
const int stepsPerRevolution = 64;
 
// 建立步进电机对象
// 定义电机控制引脚以及电机基本信息。
// 电机控制引脚为 8,9,10,11 
// 以上引脚依次连接在ULN2803 驱动板 In1, In2, In3, In4 
 
Stepper steppermotor(stepsPerRevolution, 8, 9, 10, 11); 
 
void setup()
{
    
    
  Serial.begin(9600);
    // set the speed at 60 rpm:
    delay(1000);
    Serial.println("Start...");
  steppermotor.setSpeed(60);   
  steppermotor.step(128);
    Serial.println("Stop...");
  delay(1000);
}
 
void loop()
{
    
     
   // 慢速顺时针旋转一圈
//  steppermotor.setSpeed(60);   
//  steppermotor.step(128);
//  delay(1000);
  
  // 快速逆时针旋转一圈  
//  steppermotor.setSpeed(60);  
//  steppermotor.step(128);
//  delay(2000);
 
}

程序源码和仿真资源

本示例基于Proteus8.12平台。

链接:https://pan.baidu.com/s/10_t4Z3nn6_e_Twm1NHcSpw 
提取码:up7u

鸟鸣涧 唐朝·王维
人闲桂花落,夜静春山空。
月出惊山鸟,时鸣春涧中。

猜你喜欢

转载自blog.csdn.net/weixin_42880082/article/details/125561348