完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
用的42步进电机: 厂家可能不一样,两项四线步进电机,里面有两个线圈。在电机什么电都没有接的情况下,用万用表测量四个管脚;两两短接(或者阻值很小)的为一组,可以分别接A+,a-剩余接B+,B-;顺序可以互换; 经测,我用的17hs4417 黑绿一组,红蓝一组。 建议还是买个步进电机驱动器,五六十一个,相当好用。 贴一下STM32串口控制步进电机的代码: #include "led.h"#include "delay.h"#include "key.h"#include "sys.h"#include "usart.h"#include "timer.h"//#define EN PBout(0)//步进电机使能端口置零停止//#define Dirt PBout(1) //置零反转 ,//en 绿色 pb0//dir- 黄色 正反 pb1//pul— 蓝色 脉冲 pb5 //共阳极 橙色 3.3v int main(void) { u8 t; u8 Rx1; u8 Rx2; u32 n; u16 pwmval=0; delay_init(); //延时函数初始化 NVIC_Configuration(); //设置NVIC中断分组2:2位抢占优先级,2位响应优先级 uart_init(9600); //串口初始化为9600 LED_Init(); TIM3_PWM_Init(750,720); //LED端口初始化 //不分频。PWM频率=72000000/7200=10000hz 10000/100=100hz; //400-1000 EN=0;//开机后,步进电机使能为0,不转 Dirt=0; while(1) { TIM_SetAutoreload(TIM3,n); pwmval=n/2; TIM_SetCompare2(TIM3,pwmval); //n=750; if(USART_RX_STA&0x8000) { Rx1=USART_RX_BUF[0]; Rx2=USART_RX_BUF[1]; USART_RX_STA=0;} switch (Rx1) { // case 'g': TIM3_PWM_Init(720,700);EN=1;Dirt=0;break;// 前进 // case 'b': TIM3_PWM_Init(720,700);EN=1;Dirt=0;break;// 后退:步进电机暂时没有前进后退 case 'l': n=720;EN=1;Dirt=1;break;// 左转 case 'r': n=720;EN=1;Dirt=0;break;// 右转 case 's': EN=0;break;// 停止 case 'a': n=Rx2*6+400;EN=1;Dirt=1;break;// 自动巡航左转 case 'c': n=Rx2*6+400;EN=1;Dirt=0;break;// 自动巡航右转 default:break; } }}关于PWM的使用方法,在博主的其他随笔里有较详细说明。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1614 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1541 浏览 1 评论
970 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
682 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1592 浏览 2 评论
1863浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
644浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
515浏览 3评论
531浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
504浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-21 22:55 , Processed in 0.664896 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号