【mps电机研究院】一个可行的原型设计制作和展示方案

一个可行的原型设计制作和展示方案 - ATmega328P + L6234 + BLDC + Arduino IDE

这是整套方案的实物照:

这是电动机:

这是驱动芯片 – L6234 及其外围电路:

参考的例程在这里 - https://simple-circuit.com/arduino-brushless-dc-motor-control-l6234/

但是例程中的示例程序在 Arduino IDE 中能编译通过,电动机却不能正常运行。
于是开始查找原因。

很快发现,设置部分没有开启全局中断,加上这一句
“sei(); //Enable global interrupt” 之后,电动机能转,但是不能连续转,从这段程序中受到启发:
“ i = 50000; // Motor start
while(i > 100) {
delayMicroseconds(i);
bldc_move();
bldc_step++;
bldc_step %= 6;
i = i - 20;
}
”,在主循环中加入两句“delayMicroseconds(500);”和一句“delayMicroseconds(3500);”,电动机依然不能连续运转,于是开始查 MCU – ATmega328P 的数据手册,最终发现,要在检测反向电动势的 6 个函数中的三个下降沿触发中加入“ACSR = 0x02;”,给ACSR(Analog Comparator Control and Status Registe)寄存器一个明确的赋值。现在,电动机能连续运转,但是重启和调速仍然有问题,最终发现针对这套实际的硬件,要修改常量“PWM_MIN_DUTY”,从原来的“50”逐步试出来要改为“100”才行。

项目的演示视频在这里 - 014 - BLDC + L6234 + ATmega328P + avr-libc + Arduino IDE_哔哩哔哩_bilibili

Hello,
Can you kindly reach out to our team members in china?
Chengdu - Contact (monolithicpower.com)

Best,
Nouman

1 Like

Yes, thanks, I found I have posted in the wrong place, should I delete this topic?