当前位置: 首页 > news >正文

STM32驱动步进电机

前言

(1)本章介绍用stm32驱动42步进电机,将介绍需要准备的硬件器材、所需芯片资源以及怎么编程及源代码等等。

(2)实验效果:按下按键,步进电机顺时针或逆时针旋转90度。

(3)参考资料:

【入门教程】STM32驱动步进电机_哔哩哔哩_bilibili

硬件准备

在这里插入图片描述

购买链接:

【淘宝】https://m.tb.cn/h.5TEAcrO?tk=Quv6W01YhgP CZ3457 「42步进电机42BYGH34S扭矩0.28N.M长34mm丝杆滑台3D打印机配件马达」
点击链接直接打开 或者 淘宝搜索直接打开

在这里插入图片描述

接线

1、接控制器三个普通的GPIO即可,用作普通推挽输出模式

2、步进电机有四个引脚,接到驱动器上的A、B相即可

3、12V供电

在这里插入图片描述

步进电机驱动设置

由驱动器旁边的拨码开关进行设置

在这里插入图片描述

代码讲解

在这里插入图片描述
在这里插入图片描述
见代码注释

main.c

#include "stm32f10x.h"
#include "bsp_key.h"
#include "bsp_stepmotor.h"void Delay(__IO uint32_t nCount){for (; nCount != 0; nCount--);
};void Step_90_Degrees(){// NC = 1600, 800 toggles means 90 degree motor rotationfor (int i = 0; i < 800; i++){	MOTOR_PUL_Toggle;  //翻转800次// The delay time determines the motor speedDelay(0xfff);  //delay时间的长短决定电机旋转的速度,这个延时是不准确的,若需要精准的延时,可采用定时器}
}
//
int main(void)
{Key_GPIO_Config();   //按键的配置,初始化Stepper_Pin_Init();  //步进电机配置Delay(0xfffff);      //进行延时,单片机更好初始化// Keep detecting the Key statuswhile(1){if (Key_Scan(KEY1_GPIO_PORT, KEY1_GPIO_PIN) == KEY_ON){// Counter Clock Wise for KEy1MOTOR_DIR_CCW;     //设置步进电机为逆时针旋转方向Step_90_Degrees(); //控制脉冲端口,使步进电机旋转90度}if (Key_Scan(KEY2_GPIO_PORT, KEY2_GPIO_PIN) == KEY_ON){// Counter Clock Wise for KEy2MOTOR_DIR_CW;       //设置步进电机为顺时针旋转方向Step_90_Degrees();}}
}

代码开源链接(这是up主的代码,主控不是c8t6。但是可以参考驱动程序)
https://github.com/Fiercewill/STM32-42StepMotor

http://www.lryc.cn/news/182208.html

相关文章:

  • 计算机视觉——飞桨深度学习实战-深度学习网络模型
  • 用c动态数组(不用c++vector)实现手撸神经网咯230901
  • 视频讲解|基于DistFlow潮流的配电网故障重构代码
  • Ultralytics(YoloV8)开发环境配置,训练,模型转换,部署全流程测试记录
  • springboot之@ImportResource:导入Spring配置文件~
  • 阿里云服务器免费申请入口_注册阿里云免费领4台服务器
  • ES6中的async、await函数
  • 代码随想录算法训练营第五十六天 | 动态规划 part 14 | 1143.最长公共子序列、1035.不相交的线、53. 最大子序和(dp)
  • 【数据挖掘】2021年 Quiz 1-3 整理 带答案
  • 【软件设计师-中级——刷题记录6(纯干货)】
  • 微信小程序点单左右联动的效果实现
  • Socket通信
  • TCP 如何保证有效传输及拥塞控制
  • PyQt5+Qt设计师初探
  • rust cargo
  • CANoe.Diva生成测试用例
  • openGauss学习笔记-89 openGauss 数据库管理-内存优化表MOT管理-内存表特性-使用MOT-MOT使用查询原生编译
  • python获取时间戳
  • 2023年山东省安全员C证证考试题库及山东省安全员C证试题解析
  • Java中的Unicode字符编码与占用比特位解析
  • 分布式事务-TCC案例分析流程图
  • 究竟是什么样的讲解数组算法的博客让我写了三小时???
  • Day-05 CentOS7.5 安装docker
  • Makefile
  • c语言练习77:公因⼦的数⽬
  • 【C++】C++11——右值引用和移动语义、左值引用和右值引用、右值引用使用场景和意义、完美转发、新的类功能
  • Spring Boot的创建和使用(JavaEE进阶系列2)
  • 【OLSR路由协议】链路状态路由(OLSR)协议中选择多点中继节点算法研究(Matlab代码实现)
  • 双重差分模型(DID)论文写作指南与操作手册
  • ping 的工作原理