目录

  • 一、硬件介绍
    • 1、磁编码器说明
    • 2、硬件连接
  • 二、程序演示
    • 1、模拟电压获取角度
    • 2、I2C通信获取角度
  • 三、程序拓展

SimpleFOC的教程比较多,做了一个总的链接,欢迎点击阅读:SimpleFOC教程链接汇总

一、硬件介绍

1、磁编码器说明

  ◆AS5600与两极磁铁配对,可以输出12位分辨率的磁性旋转位置,支持IIC通信,还可以输出模拟电压和PWM信号。官方例程中主要演示了模拟电压和IIC通信两种角度获取方式。

   电机购买链接:淘宝购买

  ◆模拟电压模式,Aout引脚输出0—5V对应0°—360°,

  ◆I2C模式,读取0x0C/0x0D两个寄存器,获取12bits的角度值,0—4096对应0°—360°,

2、硬件连接

  ◆simpleFOC背面跳线如果用模拟信号,需按下图短接,保证A1的信号可以被单片机采样到;如果是I2C接口可以不用管。

   V2.0.3驱动板购买链接:淘宝购买
  

二、程序演示

1、模拟电压获取角度

  ⑴、编码器接GND/VCC/Aout对应simpleFOC的GND/5V/A1

  ⑵、电机编码器与simpleFOC的连接,本节实验并不驱动电机,可以不接电机相线和电源线。

  ⑶、打开例程,

  ⑷、查看 工具—>端口 确认连接端口正确,然后 上传,

  ⑸、打开 串口监视器,

  ⑹、串口源源不断的上传当前角度和瞬时转动速度,即使电机不动速度也会波动,说明有误差。

  ⑺、用手转动电机,角度和速度随之变化。角度和速度为弧度值,正转一圈角度增加6.28,反转一圈角度减小6.28。
  

2、I2C通信获取角度

  ⑴、编码器接GND/VCC/SCL/SDA对应simpleFOC的GND/5V/SCL/SDA,

  ⑵、电机编码器与simpleFOC的连接,本节实验并不驱动电机,可以不接电机相线和电源线,

  ⑶、打开例程,

  ⑷、查看 工具—>端口 确认连接端口正确,然后 上传,

  ⑸、打开 串口监视器,

  ⑹、串口源源不断的上传当前角度和瞬时转动速度,

  ⑺、用手转动电机,角度和速度随之变化。角度和速度为弧度值,正转一圈角度增加6.28,反转一圈角度减小6.28。
  

三、程序拓展

  ◆SimpleFOC的例程采用弧度制并且用角度累加方式显示角度,与我们平时的习惯不符,非常不直观,本人写了一个可以直接读出角度并显示的程序,加深对磁编码器的理解:

#include "Wire.h"int _raw_ang_hi = 0x0c;
int _raw_ang_lo = 0x0d;
int _ams5600_Address = 0x36;
int ledtime = 0;void setup() {pinMode(13,OUTPUT);Serial.begin(115200);Wire.begin();Serial.println("AS5600 Ready!");delay(1000);
}void loop() {Serial.println(getRawAngle()*0.08789);LedBlink();delay(10);
}void LedBlink()
{ledtime++;if(ledtime<=50){       //间隔500ms闪烁digitalWrite(13,HIGH);}else {digitalWrite(13,LOW);if(ledtime>=100)ledtime=0;}
}word getRawAngle()
{return readTwoBytes(_raw_ang_hi, _raw_ang_lo);
}word readTwoBytes(int in_adr_hi, int in_adr_lo)
{word retVal = -1;/* Read Low Byte */Wire.beginTransmission(_ams5600_Address);Wire.write(in_adr_lo);Wire.endTransmission();Wire.requestFrom(_ams5600_Address, 1);while(Wire.available() == 0);int low = Wire.read();/* Read High Byte */  Wire.beginTransmission(_ams5600_Address);Wire.write(in_adr_hi);Wire.endTransmission();Wire.requestFrom(_ams5600_Address, 1);while(Wire.available() == 0);int high = Wire.read();retVal = (high << 8) | low;return retVal;
}

  ◆程序采用I2C接口与AS5600连接,读取原始角度,转换为0°—360°后显示,简单直观。
  ◆新建一个Arduino工程,将以上代码复制到工程中,验证无误后上传,

  ◆打开串口监视器,转动电机,可以看到角度在0°—360°之间变化。



(完)

欢迎加入simpleFOC技术交流群:923734429 群已满根据提示添加新群 (入群申请写:CSDN)

请继续阅读相关文章:
SimpleFOC(一)—— 简介(附有文件下载链接)
SimpleFOC(二)—— 快速入门 (开环控制)
SimpleFOC(四)—— 闭环控制
SimpleFOC(五)—— 双电机控制
SimpleFOC(六)—— PowerShield和AS5047P
SimpleFOC(七)——STM32(Bluepill)的应用
SimpleFOC(八)—— 理论+实践 深度分析SVPWM
SimpleFOC(九)—— 霍尔电机控制

SimpleFOC(三)—— AS5600角度读取相关推荐

  1. SimpleFOC移植STM32(三)—— 角度读取 (AS5600、AS5047P、TLE5012B、MA730、MT6701、ABZ)

    目录 说明 一.硬件介绍 1.1.硬件准备 1.1.1.SimpleMotor方案 1.1.2.STM32方案 1.2.硬件连接 1.2.1.原理图 1.2.2.接线 二.代码编译下载 2.1.代码解 ...

  2. 基于ESP32 IDF开发FOC(1)-AS5600角度读取

    AS5600角度读取 1.相关定义 #define As5600_Addr 0x36 #define RawAngle_Addr 0x0C#define I2C_WRITE_MODE 0 #defin ...

  3. 对于STM32F103三轴机械臂控制器进行基本功能测试-关节角度读取

    ➤01 机械臂调试 1.简介 对 基于STM32对于三轴机械臂控制器设计 中对应的控制电路读取肩部和肘部两个 角度编码器 ST-3806-15-RS 数据进行调试. 2.接口电路1 ▲ 角度读取的相关 ...

  4. RT Thread Studio 配置IIC并读取AS5600角度

    RT Thread Studio 配置IIC并读取AS5600角度 一.RT Thread Studio 配置IIC 1.在RT Thread Seting 中开启IIC功能 并保存 一定要保存才能更 ...

  5. 梅特勒杯创新大赛(二):Android姿态传感器-三轴角度

    这一部分我们讨论Android的姿态传感器中对于三轴角度的数据读取与应用. 1.初始化 //初始化姿态传感器private void init_sensor(){sensorManager = (Se ...

  6. navicat premium 链接postgresql 无法加载表_POSTGRESQL 数据库结构体系 ||| 东来西去 三个角度看...

    POSTGRESQL 的数据库体系结构是了解POSTGRESQL 数据库的整体概念的一个开始,而数据库的结构体系这个词有点大,所以这里从三个角度出发来看POSTGRESQL 结构 1  从数据库的使用 ...

  7. 三种方式读取项目属性文件

    三种方式读取项目属性文件 在Maven项目里往往有数据库属性文件jdbc.properties,本文提供三种方式读取属性文件. 1.利用ResourceBundle读取属性文件 运行程序,查看结果: ...

  8. 三个角度细谈:如何发挥朋友圈广告的威力

    加入腾讯理财通一年以来,我已经亲自操刀投过9个朋友圈广告,单次广告多则2000万,少则300万均有涉猎.此文,是我对于过去一年投放的总结与沉淀,回顾过去投放历史,沉淀做好朋友圈广告的方法.从广告主的角 ...

  9. 自动驾驶汽车如何识别红绿灯?三个角度告诉你答案丨曼孚科技

    过马路是参与交通路权的重要交通场景之一.车辆驾驶员和行人之前通常使用非语言交流来相互判断协商人行横道是否可以通行,而没有驾驶员的自动驾驶汽车很难将车辆的驾驶意图传达给十字路口的行人,这可能会使行人和其 ...

最新文章

  1. 工作组环境下WPAD部署的另类解决--WINS解析
  2. Arrays.sort和Collection.sort分别使用什么排序来实现的
  3. 双指针算法(三):力扣【167.两数之和 | 经典例题
  4. python 去除字符串两端字符串
  5. python在mac上_在Mac上Python多版本切换
  6. xadmin入门使用
  7. 百度分享代码_网销侠:网络营销百问百答之51,百度小程序是什么
  8. 网站静态化与mysql优化
  9. 自定义控件2.第一个自定义view
  10. 大数据知识点汇总---Redis,Spark,Kafka,Hive,Mysql,Hbase,Hadoop...
  11. SQLite数据库导出Excel教程
  12. Android 属性动画 常用方法 与 插值器 Interpolator
  13. Unity 3D安装教程
  14. JAVA基础之Http协议
  15. SharePoint上面搜索不到内容
  16. Android制作logo
  17. 图像处理学习2,边缘检测1(sobel算子,kirsch算子)
  18. 精品慕课资源推荐 计算机网络
  19. Nginx学习笔记02——安装部署Nginx
  20. 【06月19日】A股滚动市盈率PE最低排名

热门文章

  1. 我的JavaScript学习笔记续
  2. Linux社区遭遇黑天鹅事件
  3. 平稳过程之均值遍历性定理 - 随机过程
  4. 最小的语言符号是A词B语素C音素D义素,2018年10月自考《语言学概论》模拟试题(8)...
  5. minecraft服务器搭建教程_我的世界服务器创建教程
  6. 做好防雷检测的重要意义和作用
  7. 100行matlab,中国大学MOOC: Matlab中可以产生100行100列元素全是1的正确的命令是() 答案:ones(100)...
  8. 上计算机课如何摆脱桌面控制,计算机课如何摆脱老师的控制
  9. Yahoo! 搜索引擎顶级使用技巧
  10. 微信分享[WXApi sendReq:req]失败原因