当前位置: 首页 > news >正文

51单片机直流电机控制

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、pwm波形?
    • 1.1高低电平交互,LED亮灭。
    • 1.2 驱动电机时?
    • 1.3 怎么调节电机的速度?
  • 二、怎么用51单片机产生PWM波形
    • 2.1 t 怎么来?
    • 2.2 t0怎么来?
    • 2.3 t1怎么来?
    • 2.4 如何更好的写程序,只用一个时间基准1ms
    • 2.5参考程序
  • 三、电路连接图
    • 3.1电机连接图
    • 3.2 ULN2003 逻辑图
    • 3.3 按键连接图
  • 四、 电机开机、关机
  • 五、思考
    • 5.1 如何控制电机正反转?
    • 5.2 如何控制多个电机?
  • 六 、手把手教学视频 直流电机+定时器+按键
  • 总结

前言

提示:这里可以添加本文要记录的大概内容:

我们学习了51单片机的定时器之后,已经定时1s,用按键控制定时的时间。
之前产生的波形都是方波,就是高电平、低电平一样的波形。PWM


提示:以下是本篇文章正文内容,下面案例可供参考

一个学期都没搞懂的直流电机工作原理,一分钟讲解清楚!

https://www.bilibili.com/video/BV1yV4y1o7Nd/?spm_id_from=333.337.search-card.all.click

基于51单片机直流电机调速实验

https://www.bilibili.com/video/BV1Eo4y1m774/?spm_id_from=333.337.search-card.all.click

一、pwm波形?

1.1高低电平交互,LED亮灭。

接通电机会有效果?

1.2 驱动电机时?

电压越高,电机转得越快

1.3 怎么调节电机的速度?


二、怎么用51单片机产生PWM波形

2.1 t 怎么来?

t=t0+t1;=50+10=60
D=10/60%100

2.2 t0怎么来?

sbit motor=P1^0;

t0=50ms ,motor=0;
定时50ms,

TH0=( 65536-50000)/256;
TL0=( 65536-50000)%256;

2.3 t1怎么来?

t1=10ms
定时10ms,motor=1;
TH0=( 65536-10000)/256;
TL0=( 65536-10000)%256;

2.4 如何更好的写程序,只用一个时间基准1ms

TH0=( 65536-1000)/256;
TL0=( 65536-1000)%256;
t0=1* 50
t1=1* 10

进一次中断要num++

50 10
->num
num<10 motor=1 //高电平 10ms
num>=10 motor=0 //低电平 50ms
num=60 num=0 // 周期清零 60ms

10 设定一个变量

num++;if(num<10){motor=1;}elseif(num>=10){motor=;}elseif(num=60){num=0;}
set_d// 占空比 10set_t//设置周期 60num++;if(num<set_d){motor=1;}elseif(num>=set_d){motor=;}elseif(num=set_t){num=0;}

2.5参考程序

代码如下(示例):

#include<reg51.h>voidmain(){//初始化定时器while(1){if(key0){10}if(key1){60}}}voidtimer0()interrupt1{TH0=(65536-1000)/256;TL0=(65536-1000)%256;num++;if(num<10){motor=1;}elseif(num<60){motor=0;}else{num=0;}/* t0=1*50 t1=1*10 50 10 ->num num<10 motor=1 num>=10 motor=0 num=60 num=0*/}

#include<reg51.h>sbit motor=P1^0;sbit key0=P3^0;sbit key1=P3^1;sbit led0=P2^0;unsignedintnum=0;intd=0;//占空比//unsigned int t=0;#definet1000voiddelay(unsignedintms){unsignedintx,y;for(x=0;x<ms;x++){for(y=0;y<100;y++);}}voidtimer_init(){TMOD=0X01;//方式1 16位TH0=(65536-1000)/256;TL0=(65536-1000)%256;EA=1;ET0=1;TR0=1;}voidmain(){//初始化定时器timer_init();key0=1;key1=1;while(1){if(!key0){delay(5);if(!key0){while(!key0);d=d+100;if(d>t){d=t;}}}if(!key1){delay(5);if(!key1){while(!key1);d=d-100;if(d<0){d=0;}}}}}voidtimer0()interrupt1{TH0=(65536-1000)/256;TL0=(65536-1000)%256;num++;if(num<d){motor=1;}elseif(num<t){motor=0;}else{num=0;led0=~led0;}/* t0=1*50 t1=1*10 50 10 ->num num<10 motor=1 num>=10 motor=0 num=60 num=0*/}

三、电路连接图

3.1电机连接图

3.2 ULN2003 逻辑图

3.3 按键连接图

四、 电机开机、关机

//开机: TR0=1;if(!key2){TR0=1;}//关机:TR0=0;if(!key3){TR0=0;}

修改后的程序2025.6.6添加 LED显示占空比 ,添加按键控制电机开启和关闭

#include<reg51.h>sbit motor=P1^0;sbit key0=P3^0;sbit key1=P3^1;sbit key3=P3^2;sbit key4=P3^3;sbit led0=P2^0;sbit led1=P2^7;unsignedintnum=0;intd=0;//占空比//unsigned int t=0;#definet1000voiddelay(unsignedintms){unsignedintx,y;for(x=0;x<ms;x++){for(y=0;y<100;y++);}}voidtimer_init(){TMOD=0X01;//方式1 16位TH0=(65536-1000)/256;TL0=(65536-1000)%256;EA=1;ET0=1;TR0=1;}voidmain(){//初始化定时器timer_init();key0=1;key1=1;while(1){if(!key0){delay(5);if(!key0){while(!key0);d=d+100;if(d>t){d=t;}}}if(!key1){delay(5);if(!key1){while(!key1);d=d-100;if(d<0){d=0;}}}if(!key3){delay(5);if(!key3){while(!key3);TR0=1;//motor=1;}}if(!key4){delay(5);if(!key4){while(!key4);TR0=0;motor=0;}}}}voidtimer0()interrupt1{TH0=(65536-1000)/256;TL0=(65536-1000)%256;num++;if(num<d){motor=1;led1=1;}elseif(num<t){motor=0;led1=0;}else{num=0;led0=~led0;}/* t0=1*50 t1=1*10 50 10 ->num num<10 motor=1 num>=10 motor=0 num=60 num=0*/}

五、思考

5.1 如何控制电机正反转?

5.2 如何控制多个电机?

六 、手把手教学视频 直流电机+定时器+按键

20250606_160634直流电机

总结

了解直流电机工作原理,熟悉定时器定时功能,掌握电机调速技术。

http://www.jsqmd.com/news/896097/

相关文章:

  • 前端包管理咋选?我从npm叛逃到pnpm的血泪史(附避坑指南)
  • 毕业论文的加速引擎!常用的AI写作辅助网站,成稿速度超迅速
  • 金华高复学校哪家好?东阳高复中心 30 年铸就浙中复读标杆 - 玖叁鹿
  • 2026优选号卡平台推荐|卡立方号卡平台 创始人邀请码000000顶级代理招募 - 博客万
  • HS2-HF Patch终极指南:3步快速实现HoneySelect2完整汉化与MOD整合
  • 抖音内容采集助手:3步实现高效批量下载的开发利器
  • NVIDIA显卡优化神器:免费解锁200+隐藏设置的完整指南
  • 国家中小学智慧教育平台电子课本下载终极指南:免费获取PDF教材的完整方案
  • Hexo主题缓存清理终极指南:解决hexo-theme-solitude更新后样式不生效问题
  • 10个DrBERT-7GB高效使用技巧:从基础推理到高级医学NLP应用
  • AceGPT-13B:革命性阿拉伯语大语言模型,超越ChatGPT的终极解决方案
  • LinkSwift网盘直链下载助手:九大网盘一站式下载解决方案终极指南
  • 如何计算芯片结温
  • 踩坑之旅:对micro:bit V2功能之稀缺吐槽,无法实现自带扬声器播放音乐音频、无法连接wifi
  • 【WPF】颜色选择
  • 创业踩坑实录:这家口碑好的魔术贴工厂,让我的产品品质显著提升! - 变量人生001
  • Awesome RSS Feeds完整使用指南:分类订阅、国家新闻与个性化配置技巧
  • 2026 年 5 月最新|镇江GEO优化公司排行榜单|技术实力、口碑、案例全维度排名 - GEO排行榜
  • 5个强力功能让宝可梦3DS游戏焕然一新:pk3DS完全指南
  • 2026年推荐一下驾校正规企业 - 品牌推广大师
  • JUC并发编程知识一(待完善)
  • 2026国内江苏宿迁金蝉孵化基地排行推荐5家头部实体实测对比 - 奔跑123
  • RPG Maker MV解密工具终极指南:轻松解密游戏资源文件
  • 无锡婚姻律师事务所口碑排行:专业实力实测对比 - 奔跑123
  • 浙江高考复读学校怎么选?2026靠谱择校指南,优选东阳高复中心 - 玖叁鹿
  • 还在为Windows文件管理烦恼?5个技巧让QTTabBar成为你的效率神器
  • ESP32开发终极指南:从零到精通的完整实战路线
  • 如何突破植物大战僵尸传统玩法限制:PvZ Toolkit完整解决方案
  • 如何快速配置Tsukimi:面向新手的完整Emby客户端指南
  • CANNBot Epilogue后处理模式