永发信息网

用c语言编写控制电机运动的程序

答案:4  悬赏:40  手机版
解决时间 2021-11-26 19:48
  • 提问者网友:人生佛魔见
  • 2021-11-25 20:55
用c语言编写控制电机运动的程序
最佳答案
  • 五星知识达人网友:神鬼未生
  • 2021-11-25 22:27
1、有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用P0.0到P0.2来代替;输出2个或以上(这看接什么显示器,如果是PC的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用P1.0、P1.1;需要与一个全局变量转动次数k连接起来,另外两个输入接近开关选用NPN传感器或用光电隔离,总之有效信号能把管脚电压拉低就可以。
2、例程:

#include   //选用晶振11.0592MHz
unsigned char k=0;  //k表示正反转次数
sbit X0=P3^2;     //调节按钮
sbit X1=P1^1;     //上限位接近开关信号
sbit X2=P1^2;     //下限位接近开关信号
sbit Y1=P0^0;     //电机上升(注意:我使用的是管脚输出为0时候,电机运动,这样可以避免启动时候,单片机自复位对电机点动的影响)
sbit Y2=P0^1;     //电机下降
void delay50ms(unsigned int i)

  unsigned int j;
  for (i;i>0;i--)
    for(j=46078;j>0;j--);
}
main()
{
   IT0=1;       //下降沿触发
   EX0=1;       //开P3.2外部中断
   EA=1;        //总中断开  
   while(1)
   while(k)
   {
      Y1=0;        //正转
      while(X1==1);       //等待正转接近开关反应
      Y1=1;          //正转停
      delay50ms(1);     //停止时间50ms
      Y2=0;     //反转
      while(X2==1);     //等待反转接近开关反应
      Y2=1;    //反转停
      k--;     //圈数减一   
   }
}
void  counter0(void) interrupt 0
{
   k++;     //外部中断控制圈数加一
   //这个位置可以加你显示程序
}
全部回答
  • 1楼网友:天凉才是好个秋
  • 2021-11-26 02:00
要看你控制的是什么电机 步进电机最简单 直流电机要难一点 你要是是控制直流电机和交流电机的话 你先要看的书是电机与拖动 看完了以后再看自动控制原理 然后再看 电力拖动自动控制系统 然后在看计算机控制技术 这是我们自动化专业大二和大三的所有学位科 要想控制好电机 这些课程缺一不可 你要设计 反馈的话还学要传感器与检查的知识
  • 2楼网友:不如潦草
  • 2021-11-26 01:13

看看这个就会了!!

  • 3楼网友:醉吻情书
  • 2021-11-25 23:59
用pwm信号改变电机的转速
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯