51单片机对直流电机的控制(使用proteus仿真)
一、直流电机及其控制
(一)直流电机:输出或输入为直流电能得旋转电机,能实现直流电能和机械能互相转换的电机。当它作电动机运行时是直流电动机,将电能转换为机械能;作发电机运行时是直流发电机,将机械能转换为电能。
(二)直流电机的控制
1.方向控制:直流电机只有正负极,只需交换正负极就可以调节正反转。
2.转速控制:在负载变化不大的时候,加在直流电动机两端的电压大小与其速度近似成正比。
二、PWM技术
在一里,我们大概了解电机是通过电压控制转速,正负极控制方向,可到底是怎么控制电压和正负极的呢?不得不说PWM啦。
但在说之前,还得了解一下占空比:D为PWM信号的占空比:D=t1/T(即高电平持续时间比整个周期的值)
则电动机的电枢组两端电压平均值U为:U = (t1/T)*Us=D*Us
三、使用L298驱动直流电机范例
原理图如下:
原理图需要的器件如下:
其中主要是电机,电机选MOTOR或MOTOR-DC都可,剩下的电机就不要选啦,这个之所以有这么多电机,是因为我之前试错来着,当然也可以自己康康每一个电机运行起来是什么样子的,
#include <reg52.h>#define uint unsigned int
#define uchar unsigned charsbit 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<n;i++){for(j=0;j<120;j++);}
}void Timer0_init()//100us
{TMOD &= 0xF0; //设置定时器模式TMOD |= 0x01; //设置定时器模式TL0 = 0x9C; //设置定时初值TH0 = 0xFF; //设置定时初值ET0=1;EA=1; TR0=1;
}void main()
{ENA=0;IN1=0;IN2=0;//一开始让电机停止Timer0_init();Compare=50;while(1){if(k0==0)//正转{delay(100);while(!k0);ENA=1;IN1=1;IN2=0;}else if(k1==0)//反转{delay(100);while(!k1);ENA=1;IN1=0;IN2=1;}else if(k2==0)//加速{delay(100);while(!k2);Compare=Compare+20;}else if(k3==0)//减速{delay(100);while(!k3);Compare=Compare-20;}if(k4==0)//停止{delay(100);while(!k4);ENA=0;TR0=0;IN1=0;IN2=0; } }
}void Timer0() interrupt 1
{TL0 = 0x9C; //设置定时初值TH0 = 0xFF; //设置定时初值Counter++;Counter%=100;if(Counter<Compare)//如果小于占空比{IN1=1;}else{IN1=0;}
}
这个代码应该是能实现效果,如果不能实现,欢迎私我讨论。
51单片机对直流电机的控制(使用proteus仿真)相关推荐
- 基于51单片机的室内温度可燃气体检测报警系统Proteus仿真(源码+仿真+全套资料)
资料编号:133 讲解视频: 133-基于51单片机的室内温度可燃气体检测报警系统Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为主控,LCD1602显示当前温度和可燃气体浓 ...
- 基于51单片机的全自动智能洗衣机控制系统Proteus仿真(仿真+源码+全套资料)
资料编号:108 设计功能: 1.对水温实时显示 2.显示滚筒转速 3.显示运行倒计时 4.能通过按钮分别设置洗涤时间和脱水时间 5.运行过程为:加热--洗涤--脱水 具体功能请看下方演示视频 10 ...
- 基于51单片机的简易电子数字计算器Proteus仿真
资料编号:089 采用51单片机,使用矩阵键盘,可以计算加减乘除,进行简易计算: 全套资料齐全:具体功能请看下面演示视频 89-基于51单片机的简易电子数字计算器Proteus仿真 单片机最小系统介绍 ...
- 基于51单片机水位检测自动抽水系统Proteus仿真
资料编号:168 下面是相关功能视频演示: 168-基于51单片机水位检测自动抽水系统Proteus仿真(源码+仿真+全套资料) 功能讲解: 采用51单片机作为控制CPU,采用ADC0832采集水 ...
- 基于51单片机有害气体浓度检测超限报警Proteus仿真
资料编号:157 下面是相关功能视频演示: 157-基于51单片机有害气体浓度检测超限报警Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为CPU,ADC0832作为AD转换 ...
- 51单片机 74HC154译码器制作流水灯+Proteus仿真
51单片机 74HC154译码器制作流水灯+Proteus仿真 Proteus仿真 实例代码 #include <reg52.h> #define uint unsigned int #d ...
- 51单片机应用开发25例—基于Proteus仿真(电路图+程序)
51单片机应用开发25例-基于Proteus仿真(电路图+程序) 分享的51单片机应用开发25例-基于Proteus仿真非常全面,里面仿真工程文件和源程序都有. 目录: 应用实例1 呼吸灯\ 应用实 ...
- 【036】基于51单片机的电子时钟与秒表Proteus仿真设计
一.压缩包资料内容 (1).基于51单片机的电子时钟与秒表proteus仿真设计一份: (2).基于51单片机的电子时钟与秒表proteus仿真设计keli源代码一份: (3).基于51单片机的电子时 ...
- 51单片机+LCD12864驱动显示汉字模板+Proteus仿真
51单片机+LCD12864驱动显示汉字模板+Proteus仿真 Proteus仿真效果 汉字显示方法 汉字通过取模软件取模. 取模软件:pctolcd2002 取模方式: 工程文件架构 主程序代码 ...
- 基于51单片机酒精浓度检测仪超限报警Proteus仿真
资料编号:162 下面是功能演示视频: 162-基于51单片机酒精浓度检测超限报警Proteus仿真(源码+仿真+全套资料) 功能介绍: 采用51单片机作为CPU,ADC0832作为AD转换模块 ...
最新文章
- 【重磅】斯坦福李飞飞《注意力与Transformer》总结,84页ppt开放下载!
- 农产品流通信息化及农超对接体系的现状
- (转)用JQuery实现Fix表头表格
- python11-28笔记(1.6-1.7)
- android笔记之在WebView中显示ProgressBar的两种方法
- android super this区别
- 如何设置Active Directory域控制器
- 关于将vrep和matlab或者python结合的两种方法的比较
- java static关键字_Java基础:static关键字作用总结
- 心理正常与异常的区分_正常心理与异常心理的区分
- NeurIPS'21|MixSeq:从微观数据到宏观时序预测的桥梁
- android华为状态栏字体颜色,Flutter修改状态栏颜色以及字体颜色
- java中如何实现货币兑换_java货币转换
- 百度迁徙数据的快捷采集方法分析总结
- 国密SM2非对称算法与实现
- Oracle minus用法详解及应用实例
- android屏幕亮度自动调节解析
- 漫话:什么是DevOps?
- 和菲利普•科特勒的《营销管理》一样,这些都是比较好的市场营销书籍
- 【解决问题】在jupyter notebook上用 pandas_datareader 获取 yahoo 数据
热门文章
- 分布式之CAP原则详解
- 已知均数及标准差,如何生成模拟原始数据?
- 鸽笼原理 c语言,抽屉原理的三个公式,抽屉问题经典例题10道
- 74HC595移位寄存器的使用
- 恶意代码分析实战_实验练习
- t430服务器查看raid状态,dell t430 raid1教程
- 大数据学习之hadoop——09一次完整的edits、fsimage、edits_inprogress、chkpoint、NameNode运行原理分析
- 爬虫精进(六) ------ 项目实操
- 【算法专题】高精度之压位
- 人体神经元细胞分布图片,神经元人体分布大图