找回密码
 立即注册
楼主: 梁***

BLDC, 三相无刷直流电机驱动-STC8/STC32-无HALL, 12万转, 视频讲解

 火.. [复制链接]

该用户从未签到

0

主题

1

回帖

4

积分

新手上路

积分
4
发表于 2023-4-27 16:39:23 | 显示全部楼层
梁工,您好,有个问题质询一下,没有看到过流检测电路

点评

为了简单,我没有测量电压、电流,这个例子是给初学者学习的,力求越简单越好,测量电压、电流与驱动原理没有直接关系的。2015年用STC15W408AS的版本连30度电角度处理都没有,也没有退磁处理,也是为了最简单,现在  详情 回复 发表于 2023-4-28 11:45
回复 支持 反对 送花

使用道具 举报

该用户从未签到

0

主题

5

回帖

30

积分

新手上路

积分
30
发表于 2023-4-27 20:23:19 | 显示全部楼层
能实现正反转、刹车吗

点评

正反转,步骤反过来就可以了。刹车,3个PWM同时输出,可以有踩刹车踏板的刹车效果,或者将3个下管同时导通,100%刹车。  详情 回复 发表于 2023-4-28 11:47
回复 支持 反对 送花

使用道具 举报

该用户从未签到

45

主题

2914

回帖

6550

积分

超级版主

积分
6550
 楼主| 发表于 2023-4-28 11:43:57 | 显示全部楼层
hfei 发表于 2023-4-26 12:54
梁工,你好,对于低速重载且负荷不稳定的应用,24V,9对磁钢,1KW的电机。可有好的启动方法?  ...

用带霍尔的电机。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

45

主题

2914

回帖

6550

积分

超级版主

积分
6550
 楼主| 发表于 2023-4-28 11:45:27 | 显示全部楼层
本帖最后由 梁工 于 2023-4-28 11:51 编辑
lke 发表于 2023-4-27 16:39
梁工,您好,有个问题质询一下,没有看到过流检测电路

为了简单,我没有测量电压、电流,这个例子是给初学者学习的,力求越简单越好,测量电压、电流与驱动原理没有直接关系的。2015年用STC15W408AS的版本连30度电角度处理都没有,也没有退磁处理,也是为了最简单,现在的例子加上了,好多初学者都觉得程序很复杂!

你可以在程序中增加ADC,电机转动时在换相函数中做ADC(参考读电位器的ADC),转换完成切换回比较器输入。

也可以参考本帖我在14楼的回复。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

45

主题

2914

回帖

6550

积分

超级版主

积分
6550
 楼主| 发表于 2023-4-28 11:47:28 | 显示全部楼层
twttwt1 发表于 2023-4-27 20:23
能实现正反转、刹车吗

正反转,步骤反过来就可以了。刹车,3个PWM同时输出,可以有踩刹车踏板的刹车效果,或者将3个下管同时导通,100%刹车。
回复 支持 1 反对 0 送花

使用道具 举报

该用户从未签到

45

主题

2914

回帖

6550

积分

超级版主

积分
6550
 楼主| 发表于 2023-4-28 11:50:19 | 显示全部楼层
hfei 发表于 2023-4-26 18:47
管子电流用大一点,利用比较器做个硬件过流检测,小电机,过流比较基准设小一点,比较器输出触发刹车关断 ...

对的,完善的过流保护,就是电阻采样、运放放大、比较器比较结果直接送到MCU的PWM失效引脚,一旦过流,直接硬件级关闭PWM,也可以用电路同时关闭驱动部分。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

0

主题

5

回帖

30

积分

新手上路

积分
30
发表于 2023-5-2 16:46:50 | 显示全部楼层
梁工 发表于 2023-4-28 11:47
正反转,步骤反过来就可以了。刹车,3个PWM同时输出,可以有踩刹车踏板的刹车效果,或者将3个下管同时导 ...

现在的固件能实现电机运行过程正反转自由切换吗,还是需要自己再改动下程序呢?  如果我要实现电机由正转高速->减速到0->反向转动,现在的程序能达到这个目的吗

点评

例子只是一个方向转动,换相计数step,用倒计数就可以实现翻转,具体的项目使用,自行移植、修改程序。  详情 回复 发表于 2023-5-3 14:04
回复 支持 反对 送花

使用道具 举报

该用户从未签到

45

主题

2914

回帖

6550

积分

超级版主

积分
6550
 楼主| 发表于 2023-5-3 14:04:18 | 显示全部楼层
twttwt1 发表于 2023-5-2 16:46
现在的固件能实现电机运行过程正反转自由切换吗,还是需要自己再改动下程序呢?  如果我要实现电机由正转 ...

例子只是一个方向转动,换相计数step,用倒计数就可以实现翻转,具体的项目使用,自行移植、修改程序。
回复 支持 反对 送花

使用道具 举报

该用户从未签到

3

主题

25

回帖

173

积分

注册会员

积分
173
发表于 2023-5-6 15:01:46 | 显示全部楼层
void ADC_config(void)        //ADC初始化函数(为了使用ADC输入端做比较器信号, 实际没有启动ADC转换)
{

        ADC_CONTR = 0x80 + 6;        //ADC on + channel
电位器是ADC11, P0.3 ,应该是ADC_CONTR = 0x80 + 11?

点评

初始化程序,是移植(拷贝)过来的,初始化时,随便选一个通道都可以,因为这时候并没有启动ADC,所以选择哪个输入口都没关系,通常是选择0: ADC_CONTR = 0x80; //ADC on 实际做ADC的时候,请看换相函数或主函数  详情 回复 发表于 2023-5-6 16:29
回复 支持 反对 送花

使用道具 举报

该用户从未签到

45

主题

2914

回帖

6550

积分

超级版主

积分
6550
 楼主| 发表于 2023-5-6 16:29:15 | 显示全部楼层
fisholive 发表于 2023-5-6 15:01
void ADC_config(void)        //ADC初始化函数(为了使用ADC输入端做比较器信号, 实际没有启动ADC转换)
{

初始化程序,是移植(拷贝)过来的,初始化时,随便选一个通道都可以,因为这时候并没有启动ADC,所以选择哪个输入口都没关系,通常是选择0:
        ADC_CONTR = 0x80;        //ADC on

实际做ADC的时候,请看换相函数或主函数:
启动电机后,在换相函数的case 4中的Get_ADC10bitResult(11)就是读取电位器的:
        case 4:  // CA  PWM3, PWM1_L=1
                        PWMA_ENO = 0x00;        PWM2_L=0;        PWM3_L=0;
                        Delay_500ns();
                        PWMA_ENO = 0x10;                // 打开C相的高端PWM
                        PWM1_L = 1;                                // 打开A相的低端
                        adc11 = ((adc11 *7)>>3) + Get_ADC10bitResult(11);
                        ADC_CONTR = 0x80+9;                // 选择P0.1作为ADC输入 即B相电压
                        CMPCR1 = 0x8c + 0x10;        //比较器下降沿中断
                        break;

电机停转后,在主函数倒数第4行代码读电位器ADC:
                        else
                        {
                                adc11 = ((adc11 *7)>>3) + Get_ADC10bitResult(11);
                        }
                       
                        j = adc11;
                        if(j != adc11)        j = adc11;
                        PWW_Set = (u8)(j >> 5);        //油门是8位的
                }
        }
}
回复 支持 反对 送花

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|深圳国芯人工智能有限公司 ( 粤ICP备2022108929号-2 )

GMT+8, 2024-4-27 22:09 , Processed in 0.068726 second(s), 65 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表