上图中所示为一个典型的直流电机控制电路。电路得名于“H桥驱动电路”是因为它的形状酷似字母H。4个三极管组成H的4条垂直腿,而电机就是H中的横杠(注意:图只是示意图,而不是完整的电路图,其中三极管的驱动电路没有画出来)。
H桥式电机驱动电路包括4个三极管和一个电机。要使电机运转,必须导通对角线上的一对三极管。根据不同三极管对的导通情况,电流可能会从左至右或从右至左流过电机,从而控制电机的转向。
要使电机运转,必须使对角线上的一对三极管导通。例如,如下图所示,当Q1管和Q4管导通时,电流就从电源正极经Q1从左至右穿过电机,然后再经 Q4回到电源负极。按图中电流箭头所示,该流向的电流将驱动电机顺时针转动。当三极管Q1和Q4导通时,电流将从左至右流过电机,从而驱动电机按特定方向转动(电机周围的箭头指示为顺时针方向)。
上图所示为另一对三极管Q2和Q3导通的情况,电流将从右至左流过电机。当三极管Q2和Q3导通时,电流将从右至左流过电机,从而驱动电机沿另一方向转动(电机周围的箭头表示为逆时针方向)。
典型的H桥驱动电路如下:
PWM1为1,PWM2为1时,Q1和Q2导通,节点1和2都是低电平,Q15和Q16导通,电机不工作
PWM1为0,PWM2为0时,Q1和Q2导通,节点1和2都是高电平,Q13和Q14导通,电机不工作
PWM1为1,PWM2为0时,Q1导通而Q2不导通,节点1是低电平而2是高电平,Q14和Q15导通,电机逆时针旋转
PWM1为0,PWM2为1时,Q1不导通而Q2导通,节点1是高电平而2是低电平,Q13和Q16导通,电机顺时针旋转
C语言代码:
功能:能是电机正转,逆转,停止。
#include
#define uchar unsigned char
#define uint unsigned int
sbit Key_UP=P3^2; //正转按键
sbit Key_DOWN=P3^3; //反转按键
sbit Key_STOP=P3^4; //停止按键
sbit ZZ=P1^0; //控制端,用单片机的P1.0口
sbit FZ=P1^1; //控制端,用单片机的P1.1口
sbit FMQ=P3^6;
uchar KeyV;
uchar TempKeyV;
void delaynms(uint aa)
{
uchar bb;
while(aa--)
{
for(bb=0;bb<115;bb++) //1ms基准延时程序
{
;
}
}
}
void delay500us(void)
{
int j;
for(j=0;j<57;j++)
{
;
}
}
void beep(void)
{
uchar t;
for(t=0;t<100;t++)
{
delay500us();
FMQ=!FMQ; //产生脉冲
}
FMQ=1; //关闭蜂鸣器
delaynms(300);
}
void main(void)
{
ZZ=1;
FZ=1; //使直流电机停止运转
while(1)
{
if(!Key_UP)
KeyV=1;
if(!Key_DOWN)
KeyV=2;
if(!Key_STOP)
KeyV=3;
if(KeyV!=0)
{
delaynms(10);
if(!Key_UP)
TempKeyV=1;
if(!Key_DOWN)
TempKeyV=2;
if(!Key_STOP)
TempKeyV=3;
if(KeyV==TempKeyV)
{
if(KeyV==1)
{
beep();
ZZ=1;
FZ=0;
}
if(KeyV==2)
{
beep();
ZZ=0;
FZ=1;
}
if(KeyV==3)
{
beep();
ZZ=1;
FZ=1;
}
}
}
KeyV=0;
TempKeyV=0;
}
}
关键字:H桥电路 直流电机 驱动编程
引用地址:
H桥电路原理及直流电机驱动编程
推荐阅读最新更新时间:2024-03-16 14:37
用PIC12F675实现直流电机控制
引言 当前小型要求不太高的调速装置,如晒图机,用可控硅相位控制,供给直流电机。还使用双基极管,以产生脉冲。用一片单片机取代上述控制现在成为可能。生产中不用调试,增加许多功能,如零位起动(去掉了外部硬件连锁)、可选速度上升时间等功能。使系统操作维修方便,运行可靠。 直接电机控制电路示于图1。PIC12F675有6个I/O,现用4个。设定GP1为A/D输入,作为速度给定口,现用电位器0—5V输入。设零中断输入口,接到产生过零脉冲A定GP2为电压过处。设定GP3和GP5为一般I/O,GP3为开停机输入口,接到开关上。GP5为脉冲输出口,经电阻接到触发三极管基极上。 触发的控制方法: 在全波整流器输出端,电容滤波前,用三极管取出过零
[工业控制]
直流电机驱动电路的设计
驱动电路的性能很大程度上影响整个系统的工作性能。有许多问题需要慎重设计,例如,导通延时、泵升保护、过压过流保护、开关频率、附加电感的选择等。
1.开关频率和主回路附加电感的选择
力矩波动也即电流波动,由系统设计给定的力矩波动指标为ΔI/IN,对有刷直流电动机而言,通常在(5~10)%左右。为了便于分析可认为
ΔI/IN=ΔI/(Us/Rd) (1)
式中Rd为电枢回路总电阻。代入前面各种驱动控制方式的ΔI表达式中,消去Us,可求出:
对于单极性控制
&nbs
p; Ld/Rd≥5T~2.5T(可逆或不可逆) (2)
对于双极性控制
[电源管理]
瑞萨电子面向无刷直流电机应用的全新可编程智能栅极驱器
瑞萨电子面向无刷直流电机应用推出全新可编程智能栅极驱动器,具有多种驱动配置并集成模拟电源器件,可节约BOM成本和电路板空间 RAA227063可与各种MCU搭配,以更小尺寸实现高效、灵活的电机控制;全新成功产品组合展示了该产品与瑞萨新型RA6T2 MCU的卓越组合 2021 年 12 月 9 日,日本东京讯 - 全球半导体解决方案供应商瑞萨电子集团今日宣布,推出用于无刷直流(BLDC)电机应用的智能栅极驱动器IC——RAA227063。该产品可通过SPI接口进行编程,从而支持带有转子位置传感器的电机和无传感器应用。其提供的可编程栅极驱动电压可支持通常用于电机变频器设计的N沟道MOSFET,以及用于需要高功率密度的GaN F
[电源管理]
EM78P447S单片机及其在直流电机红外遥控系统中的应用
1 EM78P447S的主要特点 EM78系列单片机是台湾义隆电子股份有限公司采用CMOS工艺制造的8位高性价比单片机。该系列单片机一般都内置看门狗计数器(WDT)、RAM、ROM、可编程定时/计数器、预分频器以及5层堆栈。该系列器件的绝大部分指令只需两个振荡周期,同时具有内外部中断、低电压检测复位、可编程I/0、内部上拉电阻和集电极开路输出、SLEEP方式等功能。另外,EM78P447S单片机还具有编程简单、速度快、功耗小、成本低等优点,能广泛应用于玩具、家电、工业控制等方面。 EM78P447S的主要性能特点如下: ●工作电压范围:2.5-5.5V; ●允许温度范围:0-70°C; ●工作频率范围: 石英振荡型:5
[单片机]
无刷直流电机控制系统的优势是什么
无刷直流电机控制系统 无刷直流电机(BLDC)又被称为电子换向电机,相比传统有刷电机,其内部转子由电线绕组改为永磁体,碳刷由电子换向器取代,外部直流电通过电子换向器产生交流电,进而驱动电机。伴随着机械与电子的科技发展,无刷直流电动机在社会生产生活中占据着越来越重要的地位,本着可塑性宽,工作稳定的特点,无刷直流电动机的使用也日益壮大。本设计是基于有位传感器的无刷直流电机控制系统,通过无刷直流电机的工作原理,采用三相全桥驱动电路,设计成闭环控制系统,其能实现电机转速可调和转速可显示。整个设计通过仿真软件实现,分析了无刷直流电机的转速,定子电流,线电压等。 无刷直流电机结构简单、出力大和效率高,在机器人、家用电器等场景中使用非常广泛
[嵌入式]
51单片机控制直流电机正反转程序
本程序能通过按键控制直流电流的的正反转,按键的端口定义直接看程序的定义部分。 /=========自动调压控制程序========================================= #include reg52.h //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 sbit KEY1=P3^3;//高端行程开关自定义 sbit KEY2=P3^4;//低端行程开关自定义 sbit LED1=P1^0;//定义电机正转驱动端口 sbit LED2=P1^1;//定义电机反转驱动端口 //*-----------------------------------------
[单片机]
恩智浦LPC1100实现低成本无电刷直流电机控制
无刷直流和无刷交流等先进的电机控制技术已广泛用于各种工业应用之中,这种技术与通用交流电机控制技术相比具有多种优势:效率更高、耐用性更佳、电机成本更低。另一方面,用于驱动电机的电子组件变得日益复杂,结果提高了系统总成本。 白电市场作为价格驱动特征十分明显的细分市场,在洗衣机、洗碗机等家电中应用“新型”电机控制方式显得尤为谨慎。目前,广为人知的传统控制仍是市场的首选,但是近几年来,尤其是在半导体价格逐年下降的背景下,该市场所使用的技术已悄然发生变化。 恩智浦作为一家工业应用半导体供应商,其产品覆盖面十分广泛,包括通用应用产品(整流器、齐纳二极管等)、逻辑和电源产品(双向可控硅、电源IC)以及接口和微控制器产品等。
[工业控制]
直流电机调速C51程序
直流电机调速C51程序 #include reg52.h unsigned char code f_rotation ={0x02,0x04,0x08,0x10};//正转表格 unsigned char code b_rotation ={0x10,0x08,0x040,0x02};//反转表格 void delay(unsigned int i)//延时 { while(--i); } main() { unsigned char i; while(1) { for(i=0;i 4;i++) //4相 { p1=f_rotation ; //输出对应的相 可以自行换成反转表格 delay(10
[单片机]