网站基础知识最新网站模板
网站基础知识,最新网站模板,年报申报入口,国内二级域名免费申请文章目录 一、介绍直流电机介绍电机驱动电路大功率器件直接驱动H桥驱动集成电路线路图 PWM介绍产生PWM的方法 二、实例1.呼吸灯案例2.直流电机调速 一、介绍直流电机
介绍 电机驱动电路 点击的负载较大#xff0c;直接接在单片机I/O口上无法驱动#xff0c;所以需要驱动电路… 文章目录 一、介绍直流电机介绍电机驱动电路大功率器件直接驱动H桥驱动集成电路线路图 PWM介绍产生PWM的方法 二、实例1.呼吸灯案例2.直流电机调速 一、介绍直流电机
介绍 电机驱动电路 点击的负载较大直接接在单片机I/O口上无法驱动所以需要驱动电路 大功率器件直接驱动 续流二极管的作用 由于电机是感应器件是电感在线路断开时会是电压缓慢降下而此时没有电流电感就会感应出高电压来产生电流这样就可能会导致电路损坏。而这个二极管的作用就是在电路断开时与电机形成回路延续电流使电机电压缓慢降低。 H桥驱动 IN1与IN4、IN2与IN3形成通路来达到改变方向的效果不过这种结构无法添加续流二极管对硬件的耐电性要求较高 集成电路线路图
51单片机采用的是大功率器件直接驱动 IN控制开关
PWM介绍 用于控制电机的速度通过改变供电、断电利用电感特性来控制速度。 注意 不能使用滑动变阻器来实现长时间的高电流会导致电位器烧毁使用小电阻也会因为高电流发热烧毁。 产生PWM的方法 使用定时器每隔一段时间中断一次 周期间的间隔时间时间需要短一点 在中断函数中设定循环即供电与不供电占比也就是设置的周期值然后自己设置比较值 模型结构 与波形对比图
二、实例
1.呼吸灯案例 通过改变供电占比实现设定一个固定周期通过改变在这个周期里的供电占比即可实现。不过使用延时函数比较占用CPU #include REGX52.Hsbit LED P2^0;
// 快速延时函数
void Delay(t){while(t--);
}void main(){unsigned char Time,i;while(1){// 增大低电平周期占比增加亮度for(Time 0;Time 100;Time){// 延缓变化速度for(i 0;i 20;i){LED 0;Delay(Time);LED 1;Delay(100-Time); // 一次周期定位为100}}// 降低低电平周期占比降低亮度for(Time 100;Time 0;Time--){// 延缓变化速度for(i 0;i 20;i){LED 0;Delay(Time);LED 1;Delay(100-Time); // 一次周期定位为100}}}
}
2.直流电机调速 注意由于单片机默认高电平所以打开开关的一瞬间电机是通电状态会转一会 #include REGX52.H
#include Delay.h
#include Key.h
#include Time0Init.h
#include Nixie.hsbit Motor P1^0; // 开关引脚unsigned char Counter,Compare; // 周期、比较值
unsigned char KeyNum,Speed;
void main(){Time0_Init();while(1){KeyNum Key();// 以Speed控制挡位按键1控制Speedif(KeyNum 1){Speed;Speed % 4; // 大于等于4变为0// 改变挡位比较值if(Speed 0){Compare 0;}if(Speed 1){Compare 40; // 太小会导致电压太小不足以驱动电机}if(Speed 2){Compare 60;}if(Speed 3){Compare 100;}}Nixie_show(1,Speed);}
}// 中断函数
void Timer0_Routine() interrupt 1
{ TL0 0xA4; //设置定时初始值TH0 0xFF; //设置定时初始值Counter;// 设置周期if(Counter100){Counter 0;} // 与比较值进行比较if(CounterCompare){Motor 1; // 给电}else{Motor 0; // 不给电}
}补充本案例使用的按键、数码管都不是采用定时器扫描数码管只需要静态显示不用消影操作
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/pingmian/88784.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!