这里所说的手机马达,主要是指应用到手机上的震动小马达,其主要作用便是让手机产生震动效果。
常用的手机震动马达有三种:
1.圆柱形震动马达
2.扁平纽扣式震动马达
3.线性马达
其中扁平马达尺寸规格如下:(直径+厚度,如08表示直径为8MM,27表示厚度为2.7MM):
0827、0830、0834 1020、1027、1030、1034 1227、1234
圆柱马达尺寸规格如下:(长x宽x高):
11x4.5x3.4mm ; 11x4.3x4.5mm ; 12x4.5x4.5mm ;13x4.4x4.5mm
我们以常用的1027(直径10mm,厚度2.7mm)扁平马达为例,其爆炸图如下:
直流电流通过电刷和换向器之间的滑动接触使得电流流入线圈。通电线圈在定子组件形成的永久磁场中切割磁力线产生电磁力,进而推动转子发生转动:
由于转子上安装了一质量偏心的振子,转子质量的重心偏离轴的中心,转子在转动过程中重心不停的变动,故而产生了震动:
TB上很多店销售扁平手机马达,实物如下:
其参数:
额定电压: 3.0V DC
使用电压范围: 2.5~4.0V DC
旋转方向: 任意方向
使用环境: -20℃~+60℃
保存环境: -30℃~+70℃
额定转速: 12000±2500RPM Min
额定电流: 70mA Max
起动电流: 90mA Max
起动电压: 2.3V DC Max
在实际应用中,我们通过MCU的GPIO管脚(MOTOR_CTRL)来控制外部MOS管,进而驱动该震动马达,参考电路如下:
MOTOR_CTRL = High, 马达转动
MOTOR_CTRL = Low, 马达停止
实现 循环震动1.5s、停止0.5s,示例代码如下:
int cnt = 0;
gpio_pad_select_gpio(23);
gpio_set_direction(23, GPIO_MODE_OUTPUT);
while(1)
{
printf("cnts: %d\n", cnt++);
printf("set GPIO23: 1 \n");
gpio_set_level(23, 1);
vTaskDelay(1500 / portTICK_RATE_MS);
printf("set GPIO23: 0 \n");
gpio_set_level(23, 0);
vTaskDelay(500 / portTICK_RATE_MS);
}