电机控制实验报告
void exint0(void) interrupt 0 {
b++;//增大占空比,电机加速 if(b>19) b=19;//占空比等级最大为 19 }
/************************* 外 部 中 断 1 子 程 序 ************************/
void exint1(void) interrupt 0 {
uint x;
//数码管显示的数值
display();
//数码管显示
delays();
//延时函数
key();
//按键检测
/******************************* 主 函 数 *********************************/
void main()
{
IE=0x8f;
TL0=0x18;
}
-4-
/**************************** 数 码 管 显 示 ****************************/
display()
{
uchar i;
gw=x%10;
//求速度个位值,送到个位显示缓冲区
sw=(x/10)%10; //求速度十位值,送到十位显示缓冲区
TR0=1;
//启动 T0
a=0;
b=10;
gw=sw=bw=qw=0; //数码管初始化
P2=0x00;
display();
}
/**************************** T0 定 时 中 断 函 数 ************************/
void t0() interrupt 1 using 2
-6-
ห้องสมุดไป่ตู้ 七、 心得体会
为 期 两 个 星 期 的 课 程 实 践 结 束 ,期 间 有 许 多 困 难 ,遇 到 过 很 多 困 难 。首 先 对 于 电 机 方 面 的 知 识 了 解 的 不 是 很 透 彻 ,在 实 践 原 理 方 面 就 有 诸 多 的 不 理 解 。需 要 反 复 的 查 复 资 料 。其 次 ,最 困 难 的 要 数 焊 接 电 路 了 ,尤 其 是 贴 片 电 容 和 贴 片 电 阻 的 焊 接 。刚 开 始 的 时 候 焊 接 非 常 困 难 ,经 过 老师 的 指 导 ,了 解 了 焊 接 的 方 法 之 后 ,经 过 自 己 的 实 践 ,虽 然前几个焊接还是比较困难,但是熟练之后便感觉不是那么的难焊。 在本次科研实践中学会的贴片的焊接方法使我们在以后的毕业设计 等任务中打下了基础。
五、方案设计
本系统由单片机最小系统、电源模块和 JY01A 驱动 IC 等硬件电 路部分以及相应的软件部分构成。本设计采用单片机作为主控芯片,
用编程的方法来模拟无刷电机的控制逻辑,其特点是使用灵活, 通 过 修 改 程 序 可 适 应 不 同 规 格 的 无 刷 电 机 ,增 加 系 统 功 能 方 便 ,JY01A 驱 动 电 路 ,具 备 调 速 ,正 反 转 ,过 流 保 护 ,短 路 保 护 ,欠 压 保 护 等 功 能 ,工 作 稳 定 ,防 干 扰 能 力 强 等 特 点 。电 源 电 路 给 单 片 机 和 驱 动 电 路 提供 36V 电压。
//允许 INT0、INT1、T0、T1 中断
TMOD=0x11;
//T0、T1 均为定时 Model 1
TCON=0x04;
//INT1 脉冲触发
TH0=0xb1;
//T0 定时 20ms
TL0=0xe0;
TH1=0xfc;
//T10 定时 1ms
TL1=0x18;
-3-
TR1=1;
//启动 T1
{
TH0=0xb1;
//重装 T0
TL0=0xe0;
a++;
if(a==20) a=0;
if(a<b) p30=1;
else p30=0;
l=b/20;
//占空比等级计算
x=300*5*l;
//计算转速
display();
//显示转速
}
/************************ 外 部 中 断 0 子 程 序 **************************/
-1-
注: ● Ha,Hb,Hc 输入端,内有上拉电阻,约 30KΩ左右 ● 电流检测回路,一般应用 Ri =10K,Ci = 104P,电流采样电阻 R 选 值 参 考 R =0.05/( W/V) 式 中 : 0.05 常数,W 电机功率,V 工作电 压 如:工作电压 12V,电机功率 30WR=0.02(20mΩ) ● 在无霍尔驱动中,反电动势信号经过 L339 处理后的相位不能搞 错 ( MA— Ha; MB— Hb; MC— Hc)。 ● 驱 动 门 电 路 ,建 议 使 用 IR2101S 做 为 驱 动 门 ,起 到 隔 离 与 电 平 转 换作用。 ● VCC 电源滤波电容 C,一般按 C=W/V*100 式中:C 单位 uF W 电机 功率 V 工作电 100 常数。
四、直流无刷无霍尔电机原理
无 刷 直 流 电 机 由 电 动 机 主 体 和 驱 动 器 组 成 ,是 一 种 典 型 的 机 电 一 体化产品。 电动机的定子绕组多做成三相对称星形接法,同三相异 步电动机十分相似。电动机的转子上粘有已充磁的永磁体 ,为了检 测 电 动 机 转 子 的 极 性 ,在 电 动 机 内 装 有 位 置 传 感 器 。驱 动 器 由 功 率 电 子器 件 和集 成 电路 等构 成 ,其功 能 是 :接受 电 动机 的 启 动 、停 止 、制 动 信 号 ,以 控 制 电 动 机 的 启 动 、停 止 和 制 动 ;接 受 位 置 传 感 器 信 号 和 正 反 转 信 号 ,用 来 控 制 逆 变 桥 各 功 率 管 的 通 断 ,产 生 连 续 转 矩 ;接 受 速 度 指 令 和 速 度 反 馈 信 号 ,用 来 控 制 和 调 整 转 速 ;提 供 保 护 和 显 示 等 等。普通直流电动机的电枢在转子上,而定子产生固定不动的磁场。 为 了 使 直 流 电 动 机 旋 转 ,需 要 通 过 换 向 器 和 电 刷 不 断 改 变 电 枢 绕 组 中 电 流 的 方 向 ,使 两 个 磁 场 的 方 向 始 终 保 持 相 互 垂 直 ,从 而 产 生 恒 定 的 转矩驱动电动机不断旋转。
-2-
六、程序清单
#include<reg51.h> #include<absacc.h> #include<intrins.h>
#define uint unsigned int #define uchar unsigned char
char gw,sw,bw,qw; uchar j; uchar f=5; sbit p30=P3^0; sbit p31=P3^3; sbit p12=P1^2; sbit p10=P1^0; sbit p11=P1^1; sbit p32=P3^2; sbit p33=P3^3; uchar k; uchar a,b; uchar l; uchar flag=0; uchar t=6;
附录Ⅰ、PCB 图 附录Ⅱ、原理图 附录Ⅲ、元器件清单
一、 设计说明
本 次 科 研 实 践 的 内 容 是 实 现 无 刷 电 机 的 调 速 控 制 ,需 要 实 现 以 下 要求:
能够实时显示速度; 可以手动设置速度; 可以控制正反转; 可以控制电机的启停。
二、 方框图
三、 直流无刷无霍尔电机驱动原理图
//定时次数,每次 20ms //计数次数 //PWM 脉冲 输出信号 //INT1 用于速度脉冲信号检测 //正反转 输出信号 //k1 启动 、停止 //k2 减速 //k3 加速 //k4 正反转
输入信号
//占空比等级 //启停标志,初始为停止状态 //脉冲加减
/***************************** 控 制 位 定 义 ******************************/
delays() {
uchar i; for(i=5000;i>0;i--); }
-5-
/******************************* 按 键 扫 描 ********************************/
key() {
if(p10==0) {
while(!p10)//去抖动 {
delays();
}
else if(i==2)
//显示百位
{
P2=smg[bw];
delays();
}
else if(i==3)
//显示千位
{
P2=smg[qw];
delays();
}
i++;
}
}
/****************************** 延 时 函 数 *********************************/
在 程 序 设 计 的 时 候 ,由 于 需 要 实 现 的 功 能 比 较 多 ,很 多 功 能 的 实 现 没 法 很 协 调 的 实 现 ,进 过 查 阅 课 本 等 资 料 ,网 上 搜 索 等 手 段 ,了 解 了 很 多 功 能 的 实 现 方 法 ,经 过 两 个 人 相 互 讨 论 ,将 问 题 一 个 一 个 的 解 决,最终完成的程序的设计。
b--;//减小占空比,电机减速 if(b<1) b=1;//占空比等级最小为 1 }
/*********************** T1 定 时 中 断 函 数 ************************/