玩转物联网外设之步进电机
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和驱动器接线如下:
HaaS100接口 |
驱动器接口 |
功能 |
PIN3(GND) |
ENA- |
接地 |
PIN10(GPIO_P2_2) |
ENA+ |
电机使能 |
PIN4(GND) |
DIR- |
接地 |
PIN12(GPIO_P2_3) |
DIR+ |
电机方向控制 |
PIN7(GND) |
PUL- |
接地 |
PIN9(GPIO_P2_5) |
PUL+ |
PWM脉冲信号输出 |
4.软件开发
4.1 首先根据https://help.aliyun.com/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频率,持续输出10s
pwm 3 100 10
5.结语
至此,步进电机已经可以转动了,通过调节频率以及DIR的高低电平变可以控制电机的转速和方向。另外在开发过程中有任何问题,欢迎在我们的官网:
https://haas.iot.aliyun.com/
询问“HaaS百事通”
玩转物联网外设之步进电机相关推荐
- 开放下载!《深入浅出玩转物联网平台》
简介:一书详解IOT必备要点,云运维工程师不可错过的匠心之作 物联网正在迅速发展.势不可当,企业或创业者该如何面对? 本书从实际需求出发,分为上下两卷,和读者一起从多角度认识物联网.作者从复杂的IoT ...
- 物联网外设学习笔记-摄像头(一)
物联网外设学习笔记-摄像头(一) Camera 简介 摄像头(CAMERA)又称为电脑相机.电脑眼等,它作为一种视频输入设备,在过去被广泛的运用于视频会议.远程医疗及实时监控等方面.近年以来,随着互联 ...
- MicroPython玩转物联网之WIFI通信开发板
互联网+.全民IoT等热词的兴起让物联网逐渐成为新一代信息技术的重要组成部分.思科首席未来学家.首席技术学家戴夫-埃万斯(DaveEvans)称,在未来十年内,物联网.云服务和虚拟人类等十大技术发展趋 ...
- 教你用华为云玩转物联网开发
声明:本篇文章部分资料来自直播HCSD专家讲堂 <一节课玩转物联网开发>,本课程为直播课程 本篇文章将带大家了解物联网数据在华为云loT平台上端到端流转的过程,并指导大家基于华为云IoTD ...
- 玩转物联网:(2)语音控制开关灯
玩转物联网:(2)语音控制开关灯 演示效果 第一步:所需器材及线路连接 所需器材:esp8266开发板1块.舵机1个.杜邦线3根.9V电池1个及供电线1条. 第二步:esp8266开发板程序烧录 ar ...
- 小团队如何玩转物联网开发?
近几年来,物联网发展迅速:据中商产业研究院<2016--2021年中国物联网产业市场研究报告>显示,预计到2020年,中国物联网的整体规模将达2.2万亿元,产业规模比互联网大30倍. 与之 ...
- 为什么运营商玩不转物联网?
为什么说几大运营商搞不了物联网,并非信口开河.很多人都记得09年末,物联网突然风靡,无锡知名度陡升,先是移动.联动.电信入驻,要开展物联网研究,后来广电.电力加入,国内五大网络运营商全来了,声势浩大, ...
- 51单片机怎么显示当前时间_51单片机玩转物联网基础篇06-LCD1602液晶显示器
前言 本节我们开始学习LCD1602,LCD1602是字符型液晶显示屏,在实际项目中应用非常广泛,学完本节就可以逐步开发一些好玩的应用了. 一.基础知识 1.LCD1602简介 LCD1602是字符型 ...
- 干货分享丨玩转物联网IoTDA服务系列四-智能网关
场景简介 已对接存量设备的网关,不用迁移就可以实现对既有设备和新设备的兼容控制. 该场景主要描述的是设备可以通过MQTT协议与物联网平台进行交互,用户可以在控制台产品详情中自定义Topic,通过应用侧 ...
最新文章
- CentOS 6.9下配置安装KVM
- SparkStreaming和Storm的区别
- 怎么在电脑上使用python-开始在 Windows 上使用 Python(初学者)
- linux系统从开机到登录之前的启动流程
- 关于l ibrary not found for -lz.1.2.3 编译错误
- java jstat gc_分析JVM GC及内存情况的方法
- BeetleX实现HTTP协议详解
- 简单的c语言游戏编程打地鼠,少儿创意编程scratch初级游戏--打地鼠
- JS判断数组是否包含某个元素
- Docker 镜像批量导入导出脚本
- java安卓字体_Android中添加外部字体库和竖直排列字体
- 为什么我会性格懦弱?如何改变懦弱的性格?
- mysql 查询字母集合_使用MySQL查询查找所有以字母“ a”,“ b”或“ c”开头的名称?...
- ModuleNotFoundError: No module named ‘kombu.five‘
- android app内部打开word pdf .doc类型文件的两种方式
- 7-7 厘米换算英尺英寸 (10分)
- 基于有源钳位三电平的有源电力滤波器(ANPC-APF)MATLAB仿真,包括自建的DSOGI锁相模块和PQ谐波检测模块
- react生命周期学习
- SeAFusion:首个结合高级视觉任务的图像融合框架
- openGrok手动更新索引的方法
热门文章
- 通过wireshark抓取Lookback数据包
- VSTS for Database Professionals Sql Server Data-tier Application
- mac mysql dmg安装_mac上面MYSQL安装
- Thread地址(IPv6 and RLOC16)
- SA738GrB核电钢板
- aptio2018设置u盘启动_系统重装u盘启动怎么设置_重装系统设置U盘启动的步骤-win7之家...
- JS 是怎样运行起来的
- 谷歌的代码覆盖率最佳实践
- 计算机上的蜘蛛纸牌游戏打不开,win7系统系统笔记本打不开蜘蛛纸牌游戏的解决方法...
- 云上铺智能会员管理系统优惠券的设置及推广