600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 玩转物联网外设之步进电机

玩转物联网外设之步进电机

时间:2024-04-10 14:53:49

相关推荐

玩转物联网外设之步进电机

1.电机简介

电机是在IoT领域经常用到的一个重要模块,大到使用在农业中的水泵、电动大棚,小到机器人、甚至镜头中的微型马达,都需要使用到电机,可以说电机是为设备提供机械动力的重要来源之一。

而步进电机又是电机中较为复杂的一类,它是基于最基本的电磁铁原理,它接收外部的电脉冲信号,通过其内部的逻辑电路,控制步进电机的绕组以一定的时序正向或反向通电,从而产生电磁场,使得电机正向/反向旋转,或者锁定。步进电机的角位移量与输入的脉冲个数严格成正比,而且在时间上与脉冲同步。因而只要控制脉冲的数量、频率和电机绕组的相序,即可获得所需的转角、速度和方向。

本文就以时下最火的HaaS100开发板为例,描述一下如何控制步进电机。

2.核心模块

HaaS100核心板

HaaS100是一款物联网场景中的标准硬件,并配套嵌入到硬件中的软件驱动及功能模块,为用户提供物联网设备高效开发服务。

HaaS100核心板有着丰富的外设接口,如下所示,足够用来控制电机,以及驱动器了。

步进电机

电机型号:42BYGH39-401A

电流:1.5A 输出力矩:0.4Nm(牛米)

机身长度:39mm 出轴长度:21mm

出轴轴径:5mm

出轴方式:单/双出轴(默认发单轴)

出线方式: 二相四根引出线 (黑色A+绿色A-红色B+蓝色B-)

电机驱动器

驱动器型号:TB6600升级版

脉冲信号:3.3v/5V/24V兼容,不需要窜电阻

输入电压: DC(直流)9~42V 适应恶劣的电网环境

电流:4A 的速度自适应电路,电流自动寻优

细分数:6400细分

3.硬件接线方法

电机和驱动器有两种接法,本文采用共阴极接法

HaaS100和驱动器接线如下:

4.软件开发

4.1 首先根据/document_detail/184184.html?spm=a2c4g.11186623.6.701.d706566froCbj8的快速开始搭建好HaaS100的软件开发环境。

4.2 在solution/helloworld_demo.c中添加gpio和pwm的依赖:

## 第二部分:依赖信息depends:- cli: dev_aos- osal_aos: dev_aos- haas100: dev_aos- gpio: dev_aos- pwm: dev_aos

4.3.在components/drivers/peripheral/gpio/gpio_example.c中增加电机相关控制代码

int vfs_gpio_motor_test(){int ret = 0;int fd = 0;int i=0;int val=0;char buffer[16];struct gpio_io_config config;fd = open("/dev/gpio", 0);ddkc_info("open gpio %s, fd:%d\r\n", fd >= 0 ? "success" : "fail", fd);if (fd >= 0) {//驱动器是能端ENA+config.id = 18; //GPIO2_2config.config = GPIO_IO_OUTPUT | GPIO_IO_OUTPUT_PP;config.data = 0;ret = ioctl(fd, IOC_GPIO_SET, (unsigned long)&config);ddkc_info("gpio write %d return %d\r\n", config.data, ret);usleep(1000000);//驱动器是能端DIR+config.id = 19; //GPIO2_3config.config = GPIO_IO_OUTPUT | GPIO_IO_OUTPUT_PP;config.data = 1;ret = ioctl(fd, IOC_GPIO_SET, (unsigned long)&config);ddkc_info("gpio write %d return %d\r\n", config.data, ret);usleep(1000000);}}struct cli_command vfs_gpio_cli_cmds[] = {{ "gpiot", "gpio test", vfs_gpio_cli_cmd, },{ "gpio_out_pp", "gpio test output pp", vfs_gpio_motor_test, },};

4.4.在components/drivers/peripheral/gpio/package.yaml中添加example

source_file:- "src/*.c"- "example/gpio_example.c" //要打开注释

4.5.编译和烧录

4.6.启动板子在串口中输入:

#控制gpio口gpio_out_pp#控制pwm脉冲输出,3表示PWM3,100HZ频率,持续输出10spwm 3 100 10

5.结语

至此,步进电机已经可以转动了,通过调节频率以及DIR的高低电平变可以控制电机的转速和方向。另外在开发过程中有任何问题,欢迎在我们的官网:

https://haas./

询问“HaaS百事通”

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。