为什么我用stm32的vcc(3.2V)可以驱动直流电机,而用它的GPIO推挽输出却无法驱动电机呢,电压几乎是相同

如题所述

驱动电流的问题,你可以选择以下做法:
1,STM32的GPIO管脚接到三极管(NPN)的B端,三极管的E端接地,三极管的C端接电机的负端,电机的正端接VCC(3.2v)。
2,通过对STM32的GPIO初始化,设置为输出,当输出高电平时,电机工作;当输出低电平时,电机停机。
3,有问题,可以继续问。。。追问

您好,真是非常感谢您的回答。这里我还是有几个疑问:1。stm32的GPIO是推挽输出,就是图腾柱电路的输出,它的导通状态应该是会让晶体管达到饱和状态的吧,也就是说输出电压应该是接近于vcc的一个恒压源吧,我不知道能不能这样理解,如果这样的电压直接加到电机上应该能够驱动电机啊。2。您的采用开关电路来放大pwm信号的方法,我已经试过了,由于字数限制,我没法打出所有字,加我的QQ可以吗?2606726980,我再向您请教!

追答

我们上班时间不能上QQ,不好意思!
1,你的第一个回答是正确的:如果stm32的工作电压=VCC,当GPIO=1;该引脚悬空测量就是VCC。
2,我不知你的直流电机,是不是通上电压就会转动。如果是的话,我的方法:接个三极管肯定会转动的。如果不转动,你可能要串联一个5-20欧姆的电阻,和加一个10-1000UF的退耦电容。

追问

那么当stm32的GPIO加入负载后(假如不是直接接地),还能保证GPIO的输出电压为恒定的VCC或略小于VCC的电压吗?如果不能的话我就无法知道GPIO的具体输出电压啊,也就没法相应计算接入开关电路的电阻大小,使电路工作在截止区和饱和区或放大区啊!如果可以输出确定的电压,那麻烦您看看我的电路图是否正确吧,(R1=10欧,R2=10欧,将R1,R2取小些使电路工作在饱和区)通过我的计算,在GPIO为高时,截止;取低时,管子饱和。

追答

图错了,我给你画一个图,肯定OK。

追问

是吗,那就拜托了,您可以发到我的邮箱吗,[email protected],真是非常感谢!!!

追答

1,图我已经发在这上面了,你看一下啥?
2,你的邮箱有问题,发送错误。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2011-12-06
好好看看拉电流和灌电流吧。芯片中的晶体管再怎么导通,电流还是有限。要不还要驱动电路做什么啊。呵呵,
第2个回答  2011-12-05
电压相同,但是功率达不到啊
第3个回答  2011-12-05
电流达不到啊
相似回答