肿瘤康复网,内容丰富有趣,生活中的好帮手!
肿瘤康复网 > 基于STM32F103的步进电机(ULN/28BYJ-48)角度和转速控制详细资料和驱动代码

基于STM32F103的步进电机(ULN/28BYJ-48)角度和转速控制详细资料和驱动代码

时间:2022-09-07 10:46:40

相关推荐

基于STM32F103的步进电机(ULN/28BYJ-48)角度和转速控制详细资料和驱动代码

详细资料

1.技术参数

2.尺寸外形

3.ULN驱动模块电路

驱动代码

1.motor.h

#ifndef __DRV_MOTOR_H__#define __DRV_MOTOR_H__#include "stm32f10x.h"#include "stm32f10x_gpio.h"#include "stm32f10x_rcc.h"#include <stdio.h>#include <string.h>void motor_configuration(void); //初始化引脚void motor_control_F(int n);//反转,参数为控制转速大小void motor_control_Z(int n);//正转,参数为控制转速大小void Motor_Ctrl_Off(void);//关闭电机,防止因接入时间过长而发热void Motor_Ctrl_Angle(int angle,int n);//控制转动角度,参数一:角度值,参数二:控制转速#endif

2.motor.c

#include "drv_motor.h"#include "drv_systick.h" //延时函数采用滴答定时器#define orange_H GPIO_SetBits(GPIOB, GPIO_Pin_15);#define orange_L GPIO_ResetBits(GPIOB, GPIO_Pin_15);#define yellow_H GPIO_SetBits(GPIOB, GPIO_Pin_14);#define yellow_L GPIO_ResetBits(GPIOB, GPIO_Pin_14);#define pink_H GPIO_SetBits(GPIOB, GPIO_Pin_13);#define pink_L GPIO_ResetBits(GPIOB, GPIO_Pin_13);#define blue_H GPIO_SetBits(GPIOB, GPIO_Pin_12);#define blue_L GPIO_ResetBits(GPIOB, GPIO_Pin_12);void motor_configuration(void)//PB12,PB13,PB14,PB15{GPIO_InitTypeDef GPIO_InitStruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);GPIO_InitStruct.GPIO_Mode = GPIO_Mode_Out_PP;GPIO_InitStruct.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;GPIO_InitStruct.GPIO_Speed = GPIO_Speed_50MHz;GPIO_Init(GPIOB,&GPIO_InitStruct);GPIO_ResetBits(GPIOB, GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);}void motor_control_F(int n){orange_H;SYSTICK_DelayUs(n);blue_L;SYSTICK_DelayUs(n);yellow_H;SYSTICK_DelayUs(n);orange_L;SYSTICK_DelayUs(n);pink_H;SYSTICK_DelayUs(n);yellow_L;SYSTICK_DelayUs(n);blue_H;SYSTICK_DelayUs(n);pink_L;SYSTICK_DelayUs(n);}void motor_control_Z(int n){blue_H;SYSTICK_DelayUs(n);orange_L;SYSTICK_DelayUs(n);pink_H;SYSTICK_DelayUs(n);blue_L;SYSTICK_DelayUs(n);yellow_H;SYSTICK_DelayUs(n);pink_L;SYSTICK_DelayUs(n);orange_H;SYSTICK_DelayUs(n);yellow_L;SYSTICK_DelayUs(n);}void Motor_Ctrl_Off(void){GPIO_ResetBits(GPIOB, GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);}void Motor_Ctrl_Angle(int angle,int n){u16 j;for(j=0;j<64*angle/45;j++) {motor_control_F(n);}}

3.main.c

int main(void){SYSTICK_Configuration(72);RCC_Configuration();motor_configuration();Motor_Ctrl_Angle(360,2100);Motor_Ctrl_Off();while(1){ SYSTICK_DelayMs(1000);}}

如果觉得《基于STM32F103的步进电机(ULN/28BYJ-48)角度和转速控制详细资料和驱动代码》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。