找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 498|回复: 9
收起左侧

关于电机往复控制程序

[复制链接]
ID:1104510 发表于 2024-6-30 17:56 | 显示全部楼层 |阅读模式
求教各位大佬,我写了一个自动寻膜系统,就是用电机做往复运动,搭配一个光电开关做启停信号。
整个过程大概如下:(在光电开关没有被遮挡时)
1.启动信号产生时,电机正转;
2.正转到正转限位开关处时,限位开关被触发,立即反转;
3.反转到反转限位开关处时,限位开关被触发,立即正转;(如此往复运动)。
4.如果在正转过程中,光电开关被遮挡,电机停止转动;
5.在4的基础上,如果光电开关失去遮挡,则电机正转(进入往复状态);
6.如果在反转过程中,光电开关被遮挡,电机停止转动;
7.在6的基础上,如果光电开关失去遮挡,则电机反转(进入往复状态);


程序我发图了

现在有一个问题,就是状态在7的时候,电机无法反转(进入往复状态)


请各位大佬指教一下   应该怎么写;
拜托拜托了!
3.png
2.png
1.png
回复

使用道具 举报

ID:161164 发表于 2024-6-30 22:08 | 显示全部楼层
  1. bit dir = 0;//0=ZZ, 1=FZ
  2. while(1)
  3. {
  4.         if(IN4==0)dir=1;
  5.         if(IN2==0)dir=0;
  6.         if(IN1==0 && IN3==1)
  7.         {
  8.                 if(dir)
  9.                 {
  10.                         fz();
  11.                 }else{
  12.                         zz();
  13.                 }
  14.         }else{
  15.                 tz();
  16.         }
  17. }
复制代码
回复

使用道具 举报

ID:1109793 发表于 2024-7-1 09:49 | 显示全部楼层

简洁高效!!!
回复

使用道具 举报

ID:1104510 发表于 2024-7-1 10:04 | 显示全部楼层

谢谢大佬   这段代码有用   但是有一个问题  就是IN1=1时   我想要回原点  也就是反转   到IN4=0时  停止
回复

使用道具 举报

ID:1104510 发表于 2024-7-1 10:48 | 显示全部楼层

是的    确实简洁高效   比我之前写的那个好太多了
回复

使用道具 举报

ID:161164 发表于 2024-7-1 11:49 | 显示全部楼层
郑效桂 发表于 2024-7-1 10:04
谢谢大佬   这段代码有用   但是有一个问题  就是IN1=1时   我想要回原点  也就是反转   到IN4=0时  停止

IN1=1不是停止状态吗?
回复

使用道具 举报

ID:34149 发表于 2024-7-1 23:16 | 显示全部楼层
lkc8210 发表于 2024-7-1 11:49
IN1=1不是停止状态吗?

他的意思是发出停止指令时,不管正转还是反转,都达到原点,即运行到正转极限位置时停止。
建议楼主设计时考虑极限开关,最好用常闭触点。
回复

使用道具 举报

ID:1104510 发表于 2024-7-2 07:31 | 显示全部楼层
lkc8210 发表于 2024-7-1 11:49
IN1=1不是停止状态吗?

已经搞好了谢谢你  非常感谢
回复

使用道具 举报

ID:1104510 发表于 2024-7-5 09:25 | 显示全部楼层
dyx811 发表于 2024-7-1 23:16
他的意思是发出停止指令时,不管正转还是反转,都达到原点,即运行到正转极限位置时停止。
建议楼主设计 ...

对的   就是这个意思  现在已经弄好了  谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表