51单片机对直流电机的控制(使用proteus仿真)

一、直流电机及其控制

(一)直流电机:输出或输入为直流电能得旋转电机,能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。

(二)直流电机的控制

1.方向控制:直流电机只有正负极,只需交换正负极就可以调节正反转。

2.转速控制:在负载变化不大的时候,加在直流电动机两端的电压大小与其速度近似成正比。


二、PWM技术

51单片机对直流电机的控制(使用proteus仿真)_第1张图片

在一里,我们大概了解电机是通过电压控制转速,正负极控制方向,可到底是怎么控制电压和正负极的呢?不得不说PWM啦。

但在说之前,还得了解一下占空比:D为PWM信号的占空比:D=t1/T(即高电平持续时间比整个周期的值)

则电动机的电枢组两端电压平均值U为:U = (t1/T)*Us=D*Us

三、使用L298驱动直流电机范例

原理图如下:

51单片机对直流电机的控制(使用proteus仿真)_第2张图片
 

 原理图需要的器件如下:

51单片机对直流电机的控制(使用proteus仿真)_第3张图片

 其中主要是电机,电机选MOTOR或MOTOR-DC都可,剩下的电机就不要选啦,这个之所以有这么多电机,是因为我之前试错来着,当然也可以自己康康每一个电机运行起来是什么样子的,

#include 

#define uint  unsigned int
#define uchar unsigned char

sbit IN1=P1^0;
sbit IN2=P1^1;
sbit ENA=P1^2; 

sbit k0=P2^0;//正转
sbit k1=P2^1;//反转
sbit k2=P2^2;//加速
sbit k3=P2^3;//减速
sbit k4=P2^4;//停止

uchar Counter=0,Compare=0;

void delay(uint n)
{
	uint i=0,j=0;
	for(i=0;i

这个代码应该是能实现效果,如果不能实现,欢迎私我讨论。

你可能感兴趣的:(学习,51单片机)