电机控制原理图如下所示;
电机控制是指,对电机的启动、加速、运转、减速及停止进行的控制。根据不同电机的类型及电机的使用场合有不同的要求及目的。对于电动机,通过电机控制,达到电机快速启动、快速响应、高效率、高转矩输出及高过载能力的目的。
这个很简单,我教你怎么玩,下面是思路和方式思路:有三个输入,分别是一个按钮、两个霍尔传感器(也就是接近开关),我用p0.0到p0.2来代替;输出2个或以上(这看你接什么显示器,如果是pc的话,就不用数字量输出,直接串口就可以了)控制正反转的继电器管脚用p1.0、p1.1;
ps:显示那块我不知道你怎么处理,但是需要与一个全局变量转动次数k连接起来,另外两个输入接近开关选用npn传感器或用光电隔离,总之有效信号能把管脚电压拉低就可以了,具体硬件要注意什么,有需要就问我
现在我们来写程序:
#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
(ii>0i--)
for(j=46078j>0j--)
}
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++
//外部中断控制圈数加一
//这个位置可以加你显示程序
}
程序已经通过测试,放上去就能用,很好玩哟,呵呵
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)