stm32单片机烧掉了怎么办?
如果是新制作的板子,首先要查看原理图和PCB图,看是否是电路板有问题,如果电路板有问题,就要修改电路板。
如果电路板设计没有问题,就要排除是否是焊接的时候有电源和地引脚短路的情况。排除了这些问题后,把烧掉得单片机焊下来,重新焊接一片试试。
单片机是怎么通过pwm波来控制电机运转的,工作原理是什么?
首先,直流电动机的转速和端电压成正比,这是直流电机调速的基本机制。其二,单片机输出PWM波,其平均值和占空比对应,这样就相当于单片机通过调节占空比改变输出电压。其三,单片机输出是弱信号,通过驱动电路比如场效应管H桥驱动直流电机。
PWM 的英文全称是 Pulse Width Modulation 的缩写,翻译成中文就是脉冲宽度调制,PWM是一种利用数字输出来对模拟电路进行控制的技术,它的实质就是使用数字信号达到一个模拟信号的效果。
这个该怎么来理解呢?今天我们就来简单了解一下。
一、PWM的原理
首先从PWM字面的意思来说,前面我们已经说了,PWM就是脉冲宽度调制,其实现过程是通过改变脉冲宽度来实现不同的效果。
我们来看一个例子,下图是三组不同的脉冲信号。
从图中可以看出。这是一个周期是 10ms,即频率是 100Hz 的波形,但是在这个脉冲信号里每个周期内,高低电平脉冲宽度各不相同,这就是 PWM 的本质。
这里面牵涉到了一个概念:就是“占空比”。那么什么是占空比呢?通俗地讲,就是在一个脉冲周期内,高电平的时间占整个周期的比例。比如上面图中:第一个周期内波形的占空比是 40%,第二个周期内波形占空比是 60%,第三个周期内波形占空比是 80%。
脉宽调制的最后结果实际是改变周期内的电压值,例如,占空比为50%的脉冲,其实际输出的电压是原电压的一半。如下图所示。
二、PWM控制电机的原理
pwm控制电机的原理:通过调制器给电机提供一个具有一定频率的脉冲宽度可调的脉冲电。脉冲宽度越大即占空比越大,提供给电机的平均电压越大,电机转速就高。反之脉冲宽度越小,则占空比越越小。提供给电机的平均电压越小,电机转速就低。PWM不管是高电平还是低电平时电机都是转动的,电机的转速取决于平均电压。
三、单片机PWM控制原理
现在很多单片机都有PWM功能,一般情况下,单片机的PWM功能是通过定时器来实现的,在使用时,需要对定时器的寄存器进行PWM功能的设置。
具体应用需要参考相关单片机的数据手册。
作用在惯性环节上,面积相等作用效果一样。因为PWM调制就是给原信号加上高频成分,单片机中只能输出0101不能输出模拟信号,所以运算出来的正弦经过调制输出。电机本身就是个大电感,相当于滤波了,给电机电枢的电压虽然是PWM,但是电流确是正弦波。
先说一下以下都是指的无刷直流电机,不是pwm调成正弦波的那种。
pwm波说白了就是为了取一个任意的平均电压,因为电机就要个直流量去控制,比如5V电平占空比50%相当于平均2.5V,,5V电平80%占空比就相当于4V。如果认为电机空载转速和给它的pwm波平均电压基本成线性关系,那么就可以通过调解占空比控制平均电压进而控制转速了。
再说单片机这块,通常要求的pwm波频率在千赫兹级别,否则电机运作不流畅,单片机内的定时器是最合适不过的选择,通用做法是定时器开启一个中断,中断里计数,比如定时器中断频率10kHz,每次中断计数加一,计数为0-4时管脚高电平,计数5-9管脚低电平,就得到一个1kHz 50%占空比的pwm波了。更常用的是单片机定时器带有pwm功能,以stm32为例,在其通用定时器内有一个比较器,当计数值大于预先设定的比较值时电平就会拉高,低于则拉低,只要对应定时器和通道开启后,不需要中断去手动干预,处理器开销几乎没有,例程可以直接找原子的傻瓜教程吧。还有一种是外置pwm电机驱动芯片,很大部分都是日本那边的产品,搞清楚单片机与芯片的通讯就行了。硬件上注意设计好驱动电路,单片机IO不一定直接驱动得了。
控制电机的转速有两种方式:调电压和斩波。
先说说调电压的方式及缺点:
比如一个12V电机,在电压5~12V时可以实现不同的转速。但是我们并不这么用,因为我们发现在5V电压时,虽然转速低了,但电机没有力量。
因为电机的标定的工作电压就是12V,所以5V时内部也能产生磁场,但非常弱。
这就引出了斩波方式,也就是PWM方式
这种控制方式的工作电压恒定为12V,只不过控制了通过的时间(斩波)。
在微观世界里,由于斩波的存在,电机并不是连续工作,而是一会有能量(工作),一会没有能量(停止工作)。工作的时候是按额定工作电压送电的,所以不会输出无力。又由于PWM的工作频率高,我们肉眼是察觉不到的,但确实慢下来了。同理,LED灯的亮度调节和这一样。
这样就有效避免了转速低了没有动力的问题。
Arduino,C51,STM32和ARM等有什么联系和区别?
我来说,Arduino是开发平台,一类标准,为了方便DIY以及创客实现功能弄出来的,跟PLC类似的搭建搭建小平台就可以实现很多功能。
C51是内核,指的是C51内核的单片机,一般是8位机。常见的AT89C51之类的,单片机就是可以编程去实现很多功能的东西,但是外围旗舰需要自己做线路板,或者用面包板去实现,当然需要一定的电子功底!还要比较基础的C语言功底。
ARM是指架构,这是指代用ARM架构开发的一类单片机或者SOC。例如手机处理器,也比如后面要说的STM32。ARM架构分很多种,比如COTEX A系列也就是高端系列,基本上做多媒体之类的用的就是这个,带MMU内存管理单元,也就是可以上Android或者Ubuntu之类的操作系统。COTEX R系列一般是指车规级的内核,这个不常见,一般像做车规级的厂商会用到,比如赛普拉斯的仪表IC。COTEX M系列,也就是常见的工业级的,也就是你知道的STM32之类的,每家都有。后面这两类不带MMU上不了Linux等操作系统,所以这类也就是高级一点的单片机。
STM32就是COTEX M内核的单片机,目前最高的是COTEX M7内核,主频达到600M,当然STM32最多只做到400M,这类IC要求稳定性极高,所以主频一般不会太高,而且会有丰富的外设,比如UART PWM SPI LTDC等等。STM32F1系列堪称经典,地位堪比C51。32位cotex m3内核的MCU,主频高达72M,价格也很便宜。目前使用量也是最大的。你所见到的市面上的廉价四轴飞行器玩具都是STM32的MCU。且最重要的是STM32有丰富的库函数,以及非常详细的中文教材。非常适合业余玩家捣鼓。