完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
您好,
,我通过 Arduino IDE 将无刷直流电机屏蔽 TLE9879 与 Arduino 结合使用,以 HALL 模式简单地驱动无刷直流电机。 能否通过 arduino 访问 TLE9879 的速度/电流测量值? 我应该通过 J-link 使用 Keil 来修改 TLE9879 吗? 或者类似的东西? |
|
相关推荐
1个回答
|
|
是的,您可以通过Arduino访问TLE9879的速度/电流测量值。以下是实现此目的的步骤:
1. 首先,您需要确保TLE9879与Arduino正确连接。根据TLE9879的数据手册,将TLE9879的引脚与Arduino的相应引脚连接。 2. 接下来,您需要编写一个Arduino程序来读取TLE9879的速度和电流测量值。这通常涉及到读取TLE9879的寄存器值。您可以在TLE9879的数据手册中找到有关寄存器的详细信息。 3. 为了读取寄存器值,您需要使用Arduino的I2C库。TLE9879使用I2C通信协议与Arduino通信。首先,您需要在Arduino程序中包含Wire库: ```cpp #include ``` 4. 初始化Wire库并设置TLE9879的I2C地址。根据TLE9879的数据手册,设置I2C地址: ```cpp #define TLE9879_ADDRESS 0x00 // 将此值更改为TLE9879的实际I2C地址 ``` 5. 初始化I2C通信: ```cpp void setup() { Wire.begin(); } ``` 6. 编写一个函数来读取TLE9879的寄存器值。例如,要读取速度寄存器,您可以编写如下函数: ```cpp uint16_t readSpeedRegister() { Wire.beginTransmission(TLE9879_ADDRESS); Wire.write(SPEED_REGISTER); // 将SPEED_REGISTER替换为TLE9879速度寄存器的实际地址 Wire.endTransmission(); Wire.requestFrom(TLE9879_ADDRESS, 2); uint16_t speed = Wire.read() << 8 | Wire.read(); return speed; } ``` 7. 在主循环中调用此函数以读取速度和电流测量值: ```cpp void loop() { uint16_t speed = readSpeedRegister(); uint16_t current = readCurrentRegister(); // 您需要为电流测量编写类似的函数 // 根据需要处理速度和电流值 } ``` 8. 将编写好的Arduino程序上传到Arduino板上。 通过以上步骤,您应该能够通过Arduino访问TLE9879的速度/电流测量值。您不需要使用J-link或Keil来修改TLE9879,因为您可以通过I2C通信协议直接从Arduino读取寄存器值。 |
|
|
|
只有小组成员才能发言,加入小组>>
请教个XMC1404调试串口接收时为什么一直无法接收数据的问题
276 浏览 0 评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5756 浏览 2 评论
4090 浏览 9 评论
请问TLE5012B_E1000 启动后为什么位置不能正确获取
3612 浏览 9 评论
1215 浏览 8 评论
432浏览 2评论
257浏览 2评论
366浏览 2评论
TLE9879_BLDC电机启动需要用手拨一下才能转动,怎么解决?
5764浏览 2评论
如果是打开已有的dave工程,怎么查看这个工程选择的mcu型号?
435浏览 2评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-5 11:43 , Processed in 0.697290 second(s), Total 77, Slave 60 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号