完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
程序如下,不大,但是就是调试不好,帮忙看下,谢谢
//控制程序,控制时序说明:按下电源键,系统供电,按下供膜,夹持电磁铁得电,延时500ms后电机启动,膜送至指定位置 //后传感器1发出信号,固定电磁铁吸合,电机自锁,夹持松开,500ms延时后电机反转,反转回指定位置时传感器2发出信号, //电机停转,蜂鸣器提示待装入微孔板;微孔板装入后按下热封键,热封机启动热封,定时6s后固定电磁铁失电松开,热封结束 //后取出微孔板,此为一个工作循环。 #include #define uint unsigned int #define uchar unsigned char ***it supply= P3^7; ***it sealer= P3^6; ***it power= P3^5; ***it in1= P0^0; ***it in2= P0^1; ***it in3= P0^2; ***it in4= P0^3; ***it jiachi= P1^4; ***it guding= P2^7; ***it refeng= P2^6; ***it chuangan1= P3^3; ***it chuangan2= P3^2; ***it buzzer= P1^5; uchar code zz[]={0x03,0x06,0x0C,0x09}; //步进电机正转 uchar code fz[]={0x09,0x0A,0x06,0x03}; //步进电机反转 void delay(uint ms) //毫秒延时函数 { uint t; while(ms--) for(t=0;t<120;t++); } void motor_zz() //步进电机正转 { while(1) { uint i; for(i=0;i<4;i++) { P0=zz[i]; delay(5); } } } void motor_fz() //步进电机反转 { while(1) { uint j; for(j=0;j<4;j++) { P0=fz[j]; delay(5); } } } void main() { while(1) //工作循环 { supply=1; //清零操作 sealer=1; power= 1; jiachi= 1; buzzer= 1; guding=1; chuangan1= 1; chuangan2=1; refeng= 1; if(supply==0) //供膜检查 delay(10); //按键防抖 if(supply==0) { jiachi=0; delay(20); while(chuangan1==1) { motor_zz(); if(chuangan1==0) break; } guding=0; delay(20); jiachi=1; while(chuangan2==1) { motor_fz(); if(chuangan2==0) break; } buzzer=0; delay(20); buzzer=1; } if(sealer==0) //热封检查 delay(20); if(sealer==0) { refeng=0; } } } |
|
相关推荐
5个回答
|
|
|
|
|
|
你的程序缺少电机停转的控制,当传送到位后应该有停止电机转动的控制。
另外,电机的两个方向转动的程序,都是用的while(1)的无限死循环方式,循环中间也没有判断电机何时该停止的判断,最终应该是电机只会朝一个方向不停的转动。 在程序里,非必要情况下,应该尽量少用while(1)这类无限循环的方式,即使要用,循环体内也应该有如何退出循环的判断,来退出循环。 |
|
|
|
正如楼上所说,你在电机转动的过程中,使用的是while(1)这种方式写的,不过最好在里面加一个超时机制,这样增加程序的稳定性,另外,你的流程里每一步对电机都有控制,而你程序里, 类似 if(chuangan1==0)之后,并没有对电机进行操作,这边首先就不对了,先把这部分改了,后续再调
|
|
|
|
统一回复了,哈哈,已调试成功,谢谢
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
《DNESP32S3使用指南-IDF版_V1.6》第三十五章 摄像头实验
219 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
574 浏览 0 评论
684 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
1074 浏览 0 评论
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12048 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 20:28 , Processed in 0.722380 second(s), Total 80, Slave 63 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号