【教程】小安派BW21-CBV-Kit——主机模式读取 Arduino UNO 从机

[复制链接]
查看84 | 回复2 | 2025-1-8 17:20:31 | 显示全部楼层 |阅读模式

用料

示例

I2C 简介

在 I2C 的运行中有两种角色,一种是 "主站",另一种是 "从站"。 只允许一个主站连接多个从站。 每个从站都有自己的唯一地址,用于主站和从站之间的通信。 I2C 使用两个引脚,一个用于数据传输(SDA),另一个用于时钟(SCL)。 主站使用 SCL 通知从站即将进行数据传输,数据则通过 SDA 传输。 I2C 示例在 Arduino 示例中被命名为 "Wire"。

前言

在 "I2C - 向 Arduino Uno 发送数据 "示例中,I2C 主设备 Ameba 向 I2C 从设备 Arduino UNO 发送数据。 在本示例中,BW21-CBV-Kit 作为 I2C 主站,从作为 I2C 从站的 Arduino UNO 接收数据。

实现流程

设置 Arduino UN 为 I2C 从机

  • 首先,在 Arduino IDE 的 "工具"->"开发板"->"Arduino Uno "中选择 Arduino:
  • 打开 "文件"->"示例"-> "Wire"-> "slave_sender"

image.png

然后点击 "项目"->"上传",编译并上传示例到 Arduino Uno。

设置 BW21-CBV-Kit 为 I2C 主机

接下来,打开 Arduino IDE 的另一个窗口,确保在 IDE 中选择 BW21-CBV-Kit 开发板:"工具"->"开发板"。

打开 "文件"->"示例"->"AmebaWire"->"MasterReceiveData"。

image.png

点击 "项目"->"上传",编译并上传示例到 BW21-CBV-Kit 。

接线

Arduino 示例将 A4 用作 I2C SDA,将 A5 用作 I2C SCL。

另一件重要的事情是,Arduino 和 BW21-CBV-Kit 的 GND 引脚应相互连接。

image.png

接下来,我们将在串行监视器中观察 BW21-CBV-Kit 接收到的数据。 (注:如果不知道 BW21-CBV-Kit 开发板连接到哪个端口,请先在 Windows 的 "设备管理器 "中查找。 BW21-CBV-Kit 被连接为 "mbed 串行端口"。 例如,找到 mbed Serial Port (COM15) 表示 BW21-CBV-Kit 连接到 COM15 端口)。

image.png

我们在 "工具"->"端口"->"COM15"(与 BW21-CBV-Kit 连接的端口)中选择端口 打开 BW21-CBV-Kit 的 Arduino IDE 窗口,进入 "工具"->"串行监视器 "以显示 BW21-CBV-Kit 打印的信息。 按下 Arduino Uno 上的复位按钮,Arduino Uno 现在等待来自 I2C 主站的连接。

然后按下 BW21-CBV-Kit 上的复位按钮,BW21-CBV-Kit 将开始接收 Arduino Uno 发送的信息。 你可以在串行监视器上看到每半秒打印一次的 "hello "信息。

(注:如果 BW21-CBV-Kit 的串行监视器中未显示信息,请关闭并重新打开串行监视器)。

image.png

代码参考

有关此示例的详细信息,请参阅 Arduino 文档:

https://www.arduino.cc/en/Tutorial/MasterReader

首先使用 Wire.begin() / Wire.begin(address),以主站或从站身份加入 I2C 总线。

https://www.arduino.cc/en/Reference/WireBegin

接下来,主站使用 Wire.requestFrom() 来指定从哪个从站请求数据。

https://www.arduino.cc/en/Reference/WireRequestFrom

用心做好保姆工作
回复

使用道具 举报

HaydenHu | 2025-1-8 20:19:02 | 显示全部楼层
BW21-CBV-Kit关于arduino的通用例子都能运行了吗
回复 支持 反对

使用道具 举报

爱笑 | 2025-1-9 08:40:37 | 显示全部楼层
HaydenHu 发表于 2025-1-8 20:19
BW21-CBV-Kit关于arduino的通用例子都能运行了吗

基本上都可以
用心做好保姆工作
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则