Ⅰ 单片机pwm控制电机转速
单片机控制电机转速:
如果只有一个转向的话就比较容易了,如果要有正反两个转向,就需要一个H桥,并且两个I/O口输出高低电频控制。
比如用P1口的P1.0,P1.1,P1.2三个I/O口接按键,P3.4口接电频输出,编个定时程序及按键程序,如果是快(全速运行),那就P3.4口直接输出高电频“1”;中(50%),那就让P3.4口0—50ms输出高电频“1”,50ms—100ms输出低电频“0”,后面就一直以50ms进行一次取反;慢(就用10%吧),0—40ns输出高电频“1”,41ns—400ns输出低电频“0”,这样为一个周期,后面就一直循环吧。
如果按键P1.0按下,执行方式1,全速运行,否则以默认方式运行;按键P1.1按下,执行方式2,改变占空比,以50%的速度运行,否则,不作改变;按键P1.2按下,执行方式3,改变占空比,以10%的速度运行,否则,不作改变。
Ⅱ 求教:如何用单片机控制发动机的转速
单片机控制发动机转速,首先要由单片机系统对发动机转速进行测量,测量得到的转速进行PID运算,再输出控制信号,通过执行机构控制发动机油门,转速高于目标转速时,减油门,低于目标转速时加油门,从而实现对发动机转速的控制。
Ⅲ 怎样用单片机控制步进电机转速
那我们让电机正转一圈,反转半圈,在正传1/4圈,反转一圈,试试。
#include <reg51.h>
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
#define P_DIR 0
#define N_DIR 1
code uint8 FFW[8]={0xF1,0xF3,0xF2,0xF6,0xF4,0xFc,0xF8,0xF9};
void delay(uint16 i)
{
while (i--);
}
void motor_turn(uint16 angle, uint8 dir)
{
uint32 n=4096;
uint8 i;
n /= 360; //1度所需指令数
n *= angle; //angle度所需指令数
if (dir == P_DIR) //正转
{
i = 7;
while (n--) //循环n次指令数
{
P1 = FFW[i];
if (i == 0)
i = 7;
else
i--;
delay(200);
}
}
else if (dir == N_DIR) //反转
{
i = 0;
while (n--)
{
P1 = FFW[i];
if (i == 7)
i = 0;
else
i++;
delay(200);///调节转速快慢
}
}
}
main()
{
while (1)
{
motor_turn(360, P_DIR);
motor_turn(180, N_DIR);
motor_turn(90, P_DIR);
motor_turn(360, N_DIR);
}
}
这个程序主要讲一下motor_turn里面的数据处理部分,不晓得大家是否看懂了。由于电机的旋转一周需要的指令个数是8*8*64=4096,所以旋转一度需要的指令数为4096/360,那么我要旋转N度,要发送的指令数为N*4096/360,看看是不是和程序里写的一样呢。当然,如果你约分的话,N将会容纳更多角度而不溢出。
Ⅳ 怎样用单片机控制电机转速
在这里我只说说一般的直流电机。你可以使单片机一个引脚输出一个可调占空比的方波,用三极管将这个方波(数字信号)转成一个稳定的直流(模拟信号)电压,通过调节占空比,就可以调节这个直流电压的大小,就可以控制直流电机的转速了。
Ⅳ 怎样使用单片机控制直流电机转速,并外接一个LED屏上显示其转速。
首先在电机轴上安装个光电传感器检测转数给单片机。单片机采用PWM输出脉冲宽度调制,通过放大电路控制直流电机的转速。通过LED显示,达到精确控制转速的目的。
Ⅵ 单片机pwm控制电机转速
单片机控制电机转速:
如果只有一个转向的话就比较容易了,如果要有正反两个转向,就需要一个H桥,并且两个I/O口输出高低电频控制。
比如用P1口的P1.0,P1.1,P1.2三个I/O口接按键,P3.4口接电频输出,编个定时程序及按键程序,如果是快(全速运行),那就P3.4口直接输出高电频“1”;中(50%),那就让P3.4口0—50ms输出高电频“1”,50ms—100ms输出低电频“0”,后面就一直以50ms进行一次取反;慢(就用10%吧),0—40ns输出高电频“1”,41ns—400ns输出低电频“0”,这样为一个周期,后面就一直循环吧。
如果按键P1.0按下,执行方式1,全速运行,否则以默认方式运行;按键P1.1按下,执行方式2,改变占空比,以50%的速度运行,否则,不作改变;按键P1.2按下,执行方式3,改变占空比,以10%的速度运行,否则,不作改变。
Ⅶ 单片机是怎样控制电机的
单片机只输出信号,经过隔离电路,再经过功率开关电路驱动电机。
控制普通的三项异步电机可以单片机输出信号经三极管后驱动一个小功率继电器,由继电器来驱动交流接触器,进而控制电机,也可以单片机信号经三极管放大后直接驱动功率继电器。 方法有很多很多。至于驱动伺服,单片机端口的信号经过光耦隔离后可以直接驱动,伺服驱动器本身需要的驱动信号都是弱电信号。
单片机注意事项
一般在单片机的数据手册(Datasheet)中都会提到该单片机需要的复位信号的要求。一般复位信号的宽度应为。复位电平的宽度和幅度都应满足芯片的要求,并且要求保持稳定。还有特别重要的一点就是复位电平应与电源上电在同一时刻发生,即芯片一上电,复位信号就已产生。
不然,由于没有经过复位,单片机中的寄存器的值为随机值,上电时就会按PC寄存器中的随机内容开始运行程序,这样很容易进行误操作或进入死机状态。
Ⅷ 如何用单片机控制直流电机
1、通过设置PWM波的占空比来控制直流电机的转速,占空比越大,转速越快,越小转速越低。
2、当然单片机的I/O口是不能直接驱动电机的,所以你还需要用一个马达驱动芯片。像LG9110、CMO825等。马达驱动友烂IC可以将单片机I/O输出信号放大,这样电机中流过的电流足够大,电机才能转起来。
3、你要是不清除PWM是怎么回事呢,可以塌告李先作一些了解,再来知道有征对性地团迟提问就好了。