pwm控制直流电机转速流程图_直流电机的PWM速度控制程序

这是一个使用C语言编写的直流电机PWM速度控制程序,通过11.0592MHz晶振产生约91Hz的PWM信号。程序中定义了L298N驱动的使能和输入引脚,并包含两个电机的速度控制,电机速度范围为-100到100,根据速度值的正负决定电机的旋转方向。电机控制函数根据输入的电机号和速度调整PWM占空比,实现电机的调速。
摘要由CSDN通过智能技术生成

/* =======

直流电机的

PWM

速度控制程序

======== */

/*

晶振采用

11.0592M,

产生的

PWM

的频率约为

91Hz */

#include

#include

#define uchar unsigned char

#define uint unsigned int

sbit en1=P2^0;

/* L298

Enable A */

sbit en2=P2^1;

/* L298

Enable B */

sbit s1=P2^2;

/* L298

Input 1 */

sbit s2=P2^3;

/* L298

Input 2 */

sbit s3=P2^4;

/* L298

Input 3 */

sbit s4=P2^5;

/* L298

Input 4 */

uchar t=0;

/*

中断计数器

*/

uchar m1=0;

/*

电机

1

速度值

*/

uchar m2=0;

/*

电机

2

速度值

*/

uchar tmp1,tmp2; /*

电机当前速度值

*/

/*

电机控制函数

index-

电机号

(1,2); speed-

电机速度

(-100

100) */

void motor(uchar index, char speed)

{

if(speed>=-100 && speed<=100)

{

if(index==1) /*

电机

1

的处理

*/

{

m1=abs(speed); /*

取速度的绝对值

*/

if(speed<0) /*

速度值为负则反转

*/

{

s1=0;

s2=1;

}

else /*

不为负数则正转

*/

{

s1=1;

s2=0;

}

}

if(index==2) /*

电机

2

的处理

*/

{

m2=abs(speed); /*

电机

2

的速度控制

*/

if(speed<0) /*

电机

2

的方向控制

*/

{

s3=0;

s4=1;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值