关于步进电机驱动板,tb6560
参考的,淘宝上买来的步进电机S曲线驱动方法,发现
他程序输出的PWM波形全是方波, 占空比为50%
而且他
修改这两个数来输出波形,所以
我打算参考这个来写一个驱动
TIMX_CNT中放置的是当前计数值
即为:
修改计数器的计数值 ARR 和CNT
如下是修改后的 产生一个 50us高电平 100us低电平的程序
the flowing code is the timer3's init pro
1 //通用定时器3中断初始化
2 //这里时钟选择为APB1的2倍,而APB1为36M
3 // Tout =( (arr+1)*(psc+1) )/Ft us
4 //arr:自动重装值。
5 //psc:时钟预分频数
6 //这里使用的是定时器3!
7 void TIM3_Int_Init(u16 arr,u16 psc)
8 {
9 TIM_TimeBaseInitTypeDef TIM_TimeBaseStructure ;
10 NVIC_InitTypeDef NVIC_InitStructure;
11
12 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE); //时钟使能
13
14 //定时器TIM3初始化
15 TIM_TimeBaseStructure.TIM_Period = arr; //设置在下一个更新事件装入活动的自动重装载寄存器周期的值
16 TIM_TimeBaseStructure.TIM_Prescaler =psc; //设置用来作为TIMx时钟频率除数的预分频值
17 TIM_TimeBaseStructure.TIM_ClockDivision = TIM_CKD_DIV1; //设置时钟分割:TDTS = Tck_tim
18 TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up; //TIM向上计数模式
19 TIM_TimeBaseInit(TIM3, &TIM_TimeBaseStructure); //根据指定的参数初始化TIMx的时间基数单位
20
21 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE ); //使能指定的TIM3中断,允许更新中断
22
23 //中断优先级NVIC设置
24 NVIC_InitStructure.NVIC_IRQChannel = TIM3_IRQn; //TIM3中断
25 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0; //先占优先级0级
26 NVIC_InitStructure.NVIC_IRQChannelSubPriority = 3; //从优先级3级
27 NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; //IRQ通道被使能
28 NVIC_Init(&NVIC_InitStructure); //初始化NVIC寄存器
29
30
31 TIM_Cmd(TIM3, ENABLE); //使能TIMx
32 }
the fllowing code is the TIM3_IRQHandler
1 //中断服务程序
2 void TIM3_IRQHandler(void) //TIM3中断
3 {
4 if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET) //检查TIM3更新中断发生与否
5 {
6 TIM_ClearITPendingBit(TIM3, TIM_IT_Update ); //清除TIMx更新中断标志
7 //LED1=!LED1;
8 //LED0=!LED0;
9 //CLK=!CLK;
10 //GPIO_SetBits(GPIOB,GPIO_Pin_5);
11
12 // if(MyPwmChangeFlag==0)// if is 0 do low process
13 // {
14 // GPIO_ResetBits(GPIOB,GPIO_Pin_5);
15 // TIM3_Int_Init(MyPwmPeriod-MyPwmHigh-1,72-1);
16 // TIM_Cmd(TIM3, ENABLE); //使能TIMx
17 // MyPwmChangeFlag=1;
18 // }
19 // else if(MyPwmChangeFlag==1)
20 // {
21 // GPIO_SetBits(GPIOB,GPIO_Pin_5);
22 // TIM3_Int_Init(MyPwmHigh-1,72-1);
23 // TIM_Cmd(TIM3, ENABLE); //使能TIMx
24 // MyPwmChangeFlag=0;
25 // }
26 CLK=~CLK;
27 if(MyPwmChangeFlag)
28 {
29 TIM3->ARR=99;
30 TIM3->CNT=0;
31 MyPwmChangeFlag=0;
32 }
33 else
34 {
35 TIM3->ARR=49;
36 TIM3->CNT=0;
37 MyPwmChangeFlag=1;
38 }
39
40
41 }
42 }
关于步进电机驱动板,tb6560的更多相关文章
- TB6560步进电机驱动板
极客工坊比较好的帖子: 关于驱动板的共阴极和共阳极接法 http://www.geek-workshop.com/thread-12695-1-1.html
- FPGA Verilog HDL 系列实例--------步进电机驱动控制
[连载] FPGA Verilog HDL 系列实例 Verilog HDL 之 步进电机驱动控制 步进电机的用途还是非常广泛的,目前打印机,绘图仪,机器人等等设备都以步进电机为动力核心.那么,下面我 ...
- MOS管、PCB、H桥、步进电机驱动电路、51单片机的IO口驱动能力、灌电流、拉电流、上拉电阻的选择
嵌入式开发PCB设计几点体会(转载):http://bbs.ednchina.com/BLOG_ARTICLE_3021801.HTMCollector-Emitter Saturation Volt ...
- TB6560电机驱动器参数设置
TB6560电机驱动器参数设置 最近接触了一些步进电机的开发,整理了一些参数设置的经验,希望能帮助到有需要的人儿~ 步进电机主要按一定的给电规律,给对应的绕组响应的电信号,电机将按一定的方向运行,而且 ...
- [MicroPython]TurniBit开发板DIY自动窗帘模拟系统
一.准备工作 üTurnipBit 开发板 一块 ü下载数据线 一条 ü微型步进电机(28BYJ-48) 一个 ü步进电机驱动板(ULN2003APG) 一块 ü光敏传感器 一个 üTurnipBit ...
- [Arduino] Arduino猪头笔记
1. 步进电机驱动 今天才发现....原来在不同的步进电机驱动模块里面,循环时钟是不一样的.... 步进电机驱动模块以及电路配置: 驱动代码的主要部分: int sp_param = 16383; d ...
- 简易排水简车的制作 TurnipBit 系列教程
准备工作 ü TurnipBit 开发板 1块 ü 下载数据线 1条 ü 微型步进电机(28BYJ-48) 1个 ü 步进电机驱动板(ULN2003APG) 1块 ü TurnipBit 扩展板 ...
- TPYBoard v102 驱动28BYJ-48步进电机
TPYBoard v102 驱动28BYJ-48步进电机 实验目的 了解步进电机的工作原理 学习步进电机的驱动方法 实验器材 TPYBoard v102 1块 微型步进电机(28BYJ-48) 1个 ...
- RAMPS1.4 3d打印控制板接线与测试
“工欲善其事,必先利其器”,在开始工作之前,你应该准备下面所说的工具(包括软件和硬件). 1.需要下载的软件 1.1 固件上传工具——Arduino IDE 这是上传固件的必备工具,有了这个软件让上传 ...
随机推荐
- django-自定义用户登录(个人笔记)
django自定义用户登录(个人笔记) 函数说明 1. render()函数:对用户请求做出响应 2. path()函数:定义路由 3. create()函数:增加数据表记录 配置settings.p ...
- Chrome扩展开发基础教程(附HelloWorld)
1 概述 Chrome扩展开发的基础教程,代码基于原生JS+H5,教程内容基于谷歌扩展开发官方文档. 2 环境 Chrome 88.0.4324.96 Chromium 87.0.4280.141 B ...
- Django+Vue+Docker搭建接口测试平台实战
一. 开头说两句 大家好,我叫林宗霖,是一位测试工程师,也是全栈测开训练营中的一名学员. 在跟着训练营学习完Docker容器技术系列的课程后,理所应当需要通过实操来进行熟悉巩固.正好接口自动化测试平台 ...
- DDD实践反思
某大型互联网公司于2019年开始在XX中台财务域进行DDD实践.事后回顾,整体并没有达到预期的效果,个人也做了很多的反思和总结,形成此文. 1. 背景 为什么当时要实践DDD?其中的缘由比较复杂,可以 ...
- 进击中的Vue 3——“电动车电池范围计算器”开源项目
转载请注明出处:葡萄城官网,葡萄城为开发者提供专业的开发工具.解决方案和服务,赋能开发者. 原文参考:https://dzone.com/articles/build-a-tesla-battery- ...
- Java类初始化执行流程
测试代码: package com.test.ClassLaoderTest; public class test1 { public static String s_variable = " ...
- hdu 1298 字典树 + DFS (模拟T9文本输入)
题意: 给你一些按键顺序,让你输出每一步中概率最大的那个单词,这里的概率计算方 法好好看看别弄错了,一开始就是因为弄错了,各种wa,比如 abc 1 ,ab 1,那么 ab 的概率就是2 ...
- 病毒木马查杀实战第023篇:MBR病毒之引导区的解析
前言 引导型病毒指寄生在磁盘引导区或主引导区的计算机病毒.这种病毒利用系统引导时,不对主引导区的内容正确与否进行判别的缺点,在引导系统的过程中入侵系统,驻留内存,监视系统运行,伺机传染和破坏.按照引导 ...
- JEET W1S运动蓝牙耳机简评
对于我这种喜欢运动的人来说,很早之前就一直想买个运动蓝牙耳机了.这次正好有此机会可以评测来自JEET的W1S运动蓝牙耳机,真的是非常的幸运! 终于,在期盼中,我的来自深圳的快递隔了四天终于到了!JEE ...
- 推荐算法-聚类-K-MEANS
对于大型的推荐系统,直接上协同过滤或者矩阵分解的话可能存在计算复杂度过高的问题,这个时候可以考虑用聚类做处理,其实聚类本身在机器学习中也常用,属于是非监督学习的应用,我们有的只是一组组数据,最终我们要 ...