1. 简述
平时我们会遇到不同种类的电机,主要常见的是步进电机,无刷直流电机,有刷直流电机,其实这几种电机的工作原理类似,都是用电流产生磁场吸引电机里的转子旋转,这也就是为什么我们用一些电机驱动芯片(并不是所有的驱动)可以驱动一个步进电机或者两个直流电机。这篇博客主要是讲什么是步进电机以及如何驱动步进电机,如何设置定时器。如果大家对我的博客有任何疑问,欢迎大家和我讨论。
2. 所需的电子元件
- Arduino
- A4988 电机驱动
- NEMA (17HS16-2004S1)步进电机
- 电压源
电路图如下(摘自Pololu A4988,链接):
我搭出来的电路的模样:
3. 步进电机和电机驱动
3.1 datasheets
首先我们需要研究一下步进电机和它的驱动的datasheet。
3.1.1 步进电机的datasheet
我用第一张图给大家简单地讲解下步进电机是如何工作的:2A和2B是一条“导线”的两端,1A和1B是另外一条“导线”的两端,通过把这两条导线在电机内缠绕,会让他们在通电的时候各自产生磁场。磁场的方向根据洛伦兹法则可以得出,和电流的方向,绕线的方向有关。产生的磁场会吸引电机内部中心的转子旋转。通过两根导线交替产生不同方向的磁场,以此来吸引转子周而复始的旋转。更多的大家可以百度。
下面这张图是NEMA (17HS16-2004S1)的datasheet:
我们注意到在上图的电机datasheet里面额定电压是2V,额定电流是2A每个Phase,这个Phase指的就是上面提到的2A/2B或者是1A/1B的导线。我们应该如何理解这里的额定电压和电流?它们指的是:当我给2A和2B端或1A和1B端加上2V的电压,会有2A的电流流过导线,根据欧姆定律,我们得到导线两端的电阻是1欧(在datasheet上,Resistance/Phase那一行也写着1欧姆)。
所以我们可不可以认为交替地在2A/2B和1A/1B上加上2V的电压就可以让电机转动