找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2337|回复: 4
打印 上一主题 下一主题
收起左侧

C51单片机直流电机调速,不知道为啥不好使

[复制链接]
跳转到指定楼层
楼主
ID:921432 发表于 2021-7-18 17:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar speed=0,compare,count=0;
sbit key1=P3^4;                                         //独立按键
sbit moter=P1^0;                                 //电机
void delay(uint xms)                   //延时
{
uint i,j;
for(i=xms;i>0;i--)
        for(j=110;j>0;j--);
}
void init()                                                //函数初始化
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
EA=1;
ET0=1;
TR0=1;
}
void keyscan()                                                  //通过key1按键使speed进行增加,通过中断里compare来改变PWM的占空比,不断循环
{
if(key1==0)
{
        delay(50);
        if(key1==0)
        {
        speed++;
        speed%=4;
        if(speed==0)
        {
                compare=0;        
        }
        else if(speed==1)
        {
                compare=50;
        }
        else if(speed==2)
        {
                compare=75;
        }
        else if(speed==3)
        {
                compare=100;
        }
        }
}
}
void main()
{
init();
while(1)
{
keyscan();
}
}
void timer0() interrupt 1                         //设置count与比较值compare比较,小于compare,moter停止,反之。
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
count++;
count%=100;
if(count<compare)
{
moter=1;
}
else
{
moter=0;
}
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:161164 发表于 2021-7-18 18:35 | 只看该作者
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
5000太多了试试50
回复

使用道具 举报

板凳
ID:94031 发表于 2021-7-18 20:34 | 只看该作者
量量电机两端有多少电压,压按键电压变不变,一步步找原因。
回复

使用道具 举报

地板
ID:123289 发表于 2021-7-19 13:49 | 只看该作者
运动的物体是有加速度限制的,调节的速度命令变化不能超过这个限制,不知道你做到了没有。
回复

使用道具 举报

5#
ID:954170 发表于 2021-7-19 18:38 | 只看该作者
能不能驱动是看功率的,而不是只看电压,还要看电流呢,单片机的IO顶多输出20mA左右,远远驱动不了一般的电机,所以要加驱动电路。可以用三极管或者专用驱动IC。如何用单片机控制直流电机方案一:采用电阻网络或数字电位器调整电动机的分压,从而达到调速的目的。但是电阻网络只能实现有级调速,而数字电阻的元器件价格比较昂贵。更主要的问题在于一般电动机的电阻很小,但电流很大;分压不仅会降低效率,而且实现很困难。方案二:采用继电器对电动机的开或关进行控制,通过开关的切换对小车的速度进行调整。这个方案的优点是电路较为简单,缺点是继电器的响应时间慢、机械结构易损坏、寿命较短、可靠性不高。方案三:采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表