1
完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
求高手能给出双极性两相步进电机的原理图,或者解释下,下面一段程序表面意思看的懂,但是疑问很大
/************************************************************************************* *; 单相四拍通电驱动时序: * *; 正转: A/ B A B/ * UDN2916电流控制真值表: * I0 I1 输出电流 * L L 最大 * H L 最大*2/3 * L H 最大*1/3 * H H 0 * #include "reg52.h" #define speed 2 //Motor ***it PH1 = P1^0; //定义管脚 ***it PH2 = P1^1; ***it I01 = P1^2; ***it I11 = P1^3; ***it I02 = P1^4; ***it I12 = P1^5; void delay(int time); /*************************************** 函数功能:产生单相四拍脉冲控制步进机 **************************************/ void Go() { //A PH1 = 0; //PH1为0 则A线圈为反向电流 I01 = 0; I11 = 0; //以最大电流输出 PH2 = 0; //PH2为0 则B线圈为反向电流 I02 = 1; I12 = 1; //输出0 delay(speed); //0 PH1 = 0; //PH1为0 则A线圈为反向电流 I01 = 1; //输出0 I11 = 1; PH2 = 1; //PH2为1 则B线圈为正电流 I02 = 0; //以最大电流输出 I12 = 0; delay(speed); //B PH1 = 1; //PH1为1 则A线圈为正向电流 I01 = 0; //以最大电流输出 I11 = 0; PH2 = 1; //PH2为1 则B线圈为正向电流 I02 = 1; //输出0 I12 = 1; //// delay(speed); //0 PH1 = 1; //PH1为1 则A线圈为正向电流 I01 = 1; I11 = 1; PH2 = 0; //PH2为0 则B线圈为反向电流 I02 = 0; I12 = 0; delay(speed); } /*******************延时函数****************************/ void delay(int time) { int i,j; for(j=0; j <= time; j++) for(i =0 ; i <= 120; i++); } void main() { while(1) { Go(); //步进电机运行 } } 在运行程序时电机会正常运转,但是如果我把第一个PH2=0改成PH2=1的话电机就不转了,这是为什么啊!!!我的修改原因是既然B线圈输出的电流为零,那无论是正向还是反向都应该不会有影响啊(PH2的值就是控制B线圈的方向,为1时是正向,0代表反向),看了半天没理解,希望有高手能解答下 |
|
相关推荐 |
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十五章 摄像头实验
846 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
820 浏览 0 评论
910 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
1693 浏览 0 评论
1307 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12070 浏览 31 评论
小黑屋| 手机版| Archiver| 德赢Vwin官网 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-30 19:41 , Processed in 0.493257 second(s), Total 68, Slave 52 queries .
Powered by 德赢Vwin官网 网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
德赢Vwin官网 观察
版权所有 © 湖南华秋数字科技有限公司
德赢Vwin官网 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号