一、单片机引脚为什么无法直接控制电机或风扇?
实际上,单片机的控制引脚,包括51单片机或者STM32的引脚,一般只是作为信号电流,其引脚驱动能力都比较弱,一般都在10-20mA;而查看STM32规格书可知,其引脚的驱动电流最大为25mA。

5V直流电机或者散热风扇工作电流一般都在100mA以上,如果直接接到单片机引脚上,当引脚输出高电平时,引脚的电压可能在1-2V,导致无法驱动电机及风扇。所以为了提高单片机引脚的驱动能力,往往要使用三极管或者MOS管作为驱动元件,单片机通过三极管或MOS管的通断,间接来控制电机或风扇,以此达到增大单片机引脚的驱动能力。
1.51单片机引脚控制
采用51单片机控制来控制+5V直流电机或者风扇时,一般可采用NPN或NMOS和PNP或PMOS两种方式;两种电路的电流驱动能力取决于所使用的三极管或MOS管,而单片机引脚只起到电路开关作用。如下图:

NPN驱动电路

PNP驱动电路
2.STM32单片机引脚控制
如果采用STM32来控制+5V的电路,由于MCU的电平范围为0-3.3V,其控制电路还需要再改造一下。说明一下,STM32引脚只有部分引脚能耐受+5V电压,部分是无法耐受+5V电压。至于如何判断该引脚是否能耐受+5V电压,可查看STM32规格书:引脚标注由“FT”字样,表示该引脚可耐受+5V电压。如图:

为了使单片机引脚能匹配驱动电路的控制电平,需让单片机引脚输出高电平时,电压能达到+5V。其方法主要由两种:
法1:MCU引脚设置为开漏输出,然后引脚使用10k电阻上拉至+5V,这样就可使STM32输出高电平时,电压为+5V。如图:

法2:MCU引脚设置为推挽输出,驱动电路采用NPN+PNP或NPN+NPN电路。MCU引脚使用+3.3V电压控制NPN电路,NPN电路输出+5V电压来控制NPN电路(NPN+PNP模式为单片机输出高电平导通;NPN+NPN模式为单片机输出低电平导通);其控制电路如图:

只要单片机引脚控制电平与驱动电路所要求的控制电压匹配,单片机采用较稳定地控
制驱动电路。
二、手持小风扇的电路原理
电商平台比如拼夕夕上的手持小风扇,几块钱就可以包邮到家:













