-
2021-11-06 12:24:14
这里使用的电机是市面上常见的 28BYJ-48驱动是2003模块,五线四相,需要使用的修改引脚即可
这里附上.c代码#include "motor.h" #include "delay.h" //IN4: PF4 d //IN3: PF3 c //IN2: PF2 b //IN1: PF1 a u8 forward[4] = {0x03,0x06,0x0c,0x09}; // 正转 u8 reverse[4]= {0x03,0x09,0x0c,0x06}; // 反转 //引脚初始化 void Step_Motor_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF, ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_3|GPIO_Pin_2|GPIO_Pin_1; GPIO_Init(GPIOF, &GPIO_InitStructure); } //引脚映射 void SetMotor(unsigned char InputData) { if(InputData == 0x03) { GPIO_SetBits(GPIOF,GPIO_Pin_1); GPIO_SetBits(GPIOF,GPIO_Pin_2); GPIO_ResetBits(GPIOF,GPIO_Pin_3); GPIO_ResetBits(GPIOF,GPIO_Pin_4); } else if(InputData == 0x06) { GPIO_ResetBits(GPIOF,GPIO_Pin_1); GPIO_SetBits(GPIOF,GPIO_Pin_2); GPIO_SetBits(GPIOF,GPIO_Pin_3); GPIO_ResetBits(GPIOF,GPIO_Pin_4); } else if(InputData == 0x09) { GPIO_SetBits(GPIOF,GPIO_Pin_1); GPIO_ResetBits(GPIOF,GPIO_Pin_2); GPIO_ResetBits(GPIOF,GPIO_Pin_3); GPIO_SetBits(GPIOF,GPIO_Pin_4); } else if(InputData == 0x0c) { GPIO_ResetBits(GPIOF,GPIO_Pin_1); GPIO_ResetBits(GPIOF,GPIO_Pin_2); GPIO_SetBits(GPIOF,GPIO_Pin_3); GPIO_SetBits(GPIOF,GPIO_Pin_4); } else if(InputData == 0x00) { GPIO_ResetBits(GPIOF,GPIO_Pin_1); GPIO_ResetBits(GPIOF,GPIO_Pin_2); GPIO_ResetBits(GPIOF,GPIO_Pin_3); GPIO_ResetBits(GPIOF,GPIO_Pin_4); } } /* 功能:转1/64圈 步距角5.625 360/5.625=64 减速比1/64 故64*64个脉冲转一圈 n 圈数 direction 方向 1正转 非1反转 delay delay时长ms >= 2 */ void motor_circle(int n, int direction, int delay) { int i, j; for(i = 0; i < n * 8; i++) { for(j = 0; j < 4; j++) { if(1 == direction) { SetMotor(0x00); SetMotor(forward[j]); } else { SetMotor(0x00); SetMotor(reverse[j]); } delay_ms(delay > 2 ? delay : 2); } } }
里面的延时使用的是正点原子写的延时函数
附上.h文件
#ifndef __motor_H__ #define __motor_H__ #include "stm32f10x.h" void Step_Motor_GPIO_Init(void); void motor_circle(int n, int direction, int delay); #endif
在主函数中初始化后直接使用
void motor_circle(int n, int direction, int delay);n代表步数, 一圈是64步,direction代表正转反转,给1正转,给其他值反转,delay代表速度,默认给2为最优
如正转一圈,则写为(64,1,2);反转一圈(64,0,2);更多相关内容 -
STM32步进电机H桥驱动控制原理图+源代码-电路方案
2021-04-22 03:06:04附件内容分享的是STM32F103VCT6+步进电机 L6205 H桥驱动控制开源资料。 STM32步进电机驱动程序中你能学到什么? 1.基本的程序架构 什么应该放在MAIN 什么应该放在中断 2.STM32 + DMX512 接收程序 或(RS485) 3.光电... -
STM32步进电机高效S型T梯形曲线SpTA加减速控制算法.rar
2020-11-24 17:22:19步进电机电机S型曲线控制算法以及国外比较流行的SpTA算法 步进电机电机S型曲线控制算法以及国外比较流行的SpTA算法 -
基于STM32步进电机加减速控制查表法
2021-01-20 11:07:39步进电机加减速查表法 1.流程图 2,代码段 1.码盘 const UNBIT16 CarAccelerationList[CAR_ACCELERATION_STEP_MAX + 1] = { 1897,786,603,508,448,405,372,347,326,308, 293,280,268,258,249,241,234,227,221,... -
STM32步进电机H桥驱动控制原理图+源代码.zip
2019-07-08 10:00:24STM32步进电机H桥驱动控制原理图+源代码 -
stm32步进电机三轴联动控制带插补加减速
2019-03-29 10:28:33基于stm32的步进电机三轴联动控制,带插补和加减速控制。 -
STM32步进电机三轴控制程序
2018-03-29 17:01:13基于stm32控制三轴步进电机的程序 实现步进电机同步正反转 -
步进电机驱动器测试例程_stm32步进电机_stm32步进电机
2020-11-28 20:41:44基于stm32开发板的步进电机的控制程序源码 -
STM32步进电机S型T梯形曲线SpTA加减速控制算法-源码&模拟器.zip
2020-03-01 16:25:20内包含STM32电机S/Spta算法控制源码例程(PWM/定时器基准,已亲测应用),附带加减速效果曲线加速器和步进伺服电机曲线计算参数表,以及核心算法说明。 -
STM32步进电机程序
2016-12-02 09:35:16STM32步进电机 -
stm32步进电机控制程序
2018-08-22 09:31:39STM32单片机控制步进电机,利用延时产生PWM波形进行步进电机控制 -
STM32步进电机控制S型加减速源代码.zip
2020-05-22 09:49:29STM32步进电机控制S型加减速,亲测好用,可以实现步进电机的控制,有需要的朋友欢迎下载好用 -
步进电机PID12_stm32位置pid_pid_stm32步进电机_PID步进_PID控制步进电机
2021-09-10 15:00:11利用stm32,对步进电机进行PID速度及位置调节。 -
stm32_stm32_secretcu3_stm32步进电机_stm32步进电机_
2021-09-30 13:49:39stm32控制步进电机,嵌入式C语言,UV4,驱动 -
STM32stepper:STM32步进电机驱动器
2021-07-02 22:15:13STM32步进器 STM32步进电机驱动器 -
基于STM32步进电机多细分控制的设计
2021-01-20 01:36:46本文主要介绍了一种基于STM32的混合式步进电机控制方案,STM32产生PWM(脉宽调制信号),利用PWM完成DAC转换,通过PWMDAC的输出电压实现对步进电机的多细分控制。该设计相比利用DAC数模转换芯片的设计方案具有电路... -
STM32步进电机高效S型T梯形曲线SpTA加减速控制算法
2019-04-09 19:50:15内包含STM32电机S/Spta算法控制源码例程(PWM/定时器基准,已亲测应用),附带加减速效果曲线加速器和步进伺服电机曲线计算参数表,以及核心算法说明。 -
【stm32程序】基于stm32f1的步进电机驱动程序
2021-08-17 15:00:44基于stm32f103ze的步进电机驱动程序,基于整点原子精英版例程修改。ADC+DMA+StepMotor底层程序。本产品包含步进电机驱动程序,ADC和DMA采集。 -
Master_Slave_步进电机_Master/Slave_stm32步进电机_stm32步进电机_
2021-10-03 02:05:49STM32 -
STM32F1步进电机S加减速源代码,stm32控制步进电机调速,C,C++
2021-09-10 15:53:13stm32单片机控制步进电机,控制步进电机加减速算法 -
基于STM32的步进电机控制系统.pdf
2021-03-04 21:07:11基于STM32的步进电机控制系统 -
STM32步进电机自动返回小车
2019-08-03 20:38:45STM32步进电机自动返回小车 -
STM32驱动编码器+步进电机
2022-01-19 10:54:06STM32F103ZET6使用定时器3驱动步进电机,使用定时器4驱动编码器,并将编码器的值通过串口传到电脑上 -
基于STM32的一种步进电机系统的设计
2021-04-16 14:50:36文中介绍了一种基于STM32控制器的步进电机控制系统,该系统对步进电机的加速和减速运动采用了S型函数模型,有效的避免了系统在高速运动时出现的失步和过冲现象。在系统中通过调节分频系数保证了系统在高频和低频运动... -
基于stm32的步进电机控制源码
2019-03-24 15:53:24这个代码是基于stm32的步进电机控制程序,使用的驱动是TB6560,应该一看就能懂,实现的功能是打开电源步进电机转动,按下按键会改变转动方向,使用的IO口是LED灯的,这个要注意。 -
STM32的步进电机细分成程序
2018-08-18 11:24:17STM32的步进电机细分成程序,详细讲解STM32控制步进电机的步骤及程序编写 -
STM32 HAL库 四轴步进电机导轨控制,步进电机梯形加减速.
2021-08-14 09:25:12STM32 HAL库 四轴步进电机导轨控制,步进电机梯形加减速. -
stm32控制步进电机转动一定角度
2017-09-01 14:29:37可以通过stm32控制步进电机旋转固定的角度,速度也可以设定,方便日常使用,直接操作旋转角度即可,无需计算步进电机的步数,符合人类的使用习惯。 -
基于STM32的步进电机S形加减速控制曲线的快速实现方法.pdf
2021-06-29 20:35:21基于STM32的步进电机S形加减速控制曲线的快速实现方法.pdf