Adafruit 1-Wire GPIO Breakout - DS2413 开发板使用指南

电子说

1.4w人已加入

描述

Adafruit 1-Wire GPIO Breakout - DS2413 开发板使用指南

在微控制器的世界里,引脚资源常常十分宝贵。有时候,我们仅仅需要一两个额外的引脚,但又不想更换更大的开发板。Adafruit 的 DS2413 1-Wire GPIO 开发板就是解决这个问题的理想方案。下面就为大家详细介绍这款开发板的相关信息。

文件下载:1551.pdf

一、概述

DS2413 开发板每个板子有 2 个开漏 GPIO 引脚和一个 1-Wire 接口。只用一个 Arduino 引脚,就能控制连接在 1-Wire 总线上的多个 DS2413 开发板。理论上,由于每个芯片有 48 位唯一地址,一个 Arduino 引脚最多可以控制 2 * 2^48 个引脚,但实际中,Arduino 的内存会先耗尽。

二、组装与布线

1. 组装

开发板出厂时已预先组装和测试好,还提供了用于面包板的可选排针。安装排针很简单,先根据需要裁剪排针长度,将其放在面包板上(长引脚朝下),再把开发板对准排针,最后焊接每个引脚以确保良好的电气连接。如果您是焊接新手,可以参考 Adafruit 的焊接指南。

2. 布线

  • 基本布线:将 GND 连接到 Arduino 的 GND,IO 连接到 Arduino 的 GPIO 引脚(示例代码使用引脚 8),然后从 IO 到 5V 连接一个 4.7K 欧姆的上拉电阻(开发板已包含)。
  • 多个 DS2413 开发板布线:如果要添加更多开发板,只需将它们连接到相同的 GND 和 IO 引脚,不需要额外的上拉电阻。

三、使用方法

1. OneWire 库

  • 下载与安装:DS2413 使用 Maxim/Dallas OneWire 协议,可以从 Arduino 库管理器中下载 OneWire 库。打开 Arduino 库管理器,搜索 OneWire 库并安装。
  • 库文档:OneWire 库的详细文档可以在 PJRC 网站找到。
  • DS2413 示例代码:我们可以在 GitHub 上找到使用 OneWire 库与 DS2413 GPIO 引脚通信的示例代码。

2. 开漏 GPIO

DS2413 的输出是“开漏”的,即输出是 N 沟道 FET 的“漏极”,FET 的“源极”内部连接到地,漏极则是开放的。当开关打开时,FET 为电流从输出引脚流到地提供路径。由于没有内部连接到 VCC,开漏输出不像 Arduino GPIO 引脚那样输出电压,必须提供外部上拉电阻。不过,这种配置具有很大的灵活性,因为输出电压不依赖于开发板的工作电压,可以使用各种电源。DS2413 中的 FET 能够切换高达 28V 的电压和 20mA 的电流。

3. 运行示例代码

  • 下载示例代码:从 GitHub 仓库下载示例代码。
  • 布线:将 LED 的阴极(短脚)连接到 GPIO 引脚,阳极(长脚)连接到一个电阻的一端,电阻的另一端连接到 5V。这里使用 1K 电阻作为“安全”值,如果想让 LED 达到最大亮度,可以参考相关指南计算最佳电阻值。
  • 编译与上传:编译并上传示例代码,应该能看到两个 LED 闪烁,亮 1 秒,灭 1 秒。

四、读写操作与算术运算

1. 读写函数

通过 OneWire 库的 read() 和 write() 函数对 DS2413 进行读写操作。这两个函数一次读写一个字节,因此需要使用一些二进制运算来分离对应于 2 个 GPIO 引脚的 2 位。

2. 二进制与十六进制

在示例代码中,通过交替写入 0x0 和 0x3 来闪烁两个 LED。0x3 是二进制数 B00000011 的十六进制表示,在 DS2413 中,低位(最右边的一位)对应 IOA,相邻的一位对应 IOB。写入 0x3 会将两个引脚都置为二进制的 '1',从而打开两个引脚。如果只打开 IOA,可以写入 0x1(B00000001);只打开 IOB,可以写入 0x2(B00000010)。

3. 读取 GPIO 引脚

读取 GPIO 引脚稍微复杂一些,需要从 read() 返回的字节中分离出各个引脚的值。read() 可以返回 5 个值之一:

  • 0x0(B00000000) - 两个引脚都为 LOW
  • 0x1(B00000001) - IOA = HIGH,IOB = LOW
  • 0x2(B00000010) - IOA = LOW,IOB = HIGH
  • 0x3(B00000011) - 两个引脚都为 HIGH
  • 0xFF(B11111111) - 读取失败!

要提取单个引脚的状态,需要使用“按位与”运算符“&”。例如,如果 IOA 为 HIGH,代码会打印“A”;如果 IOB 为 HIGH,会打印“B”。

五、下载资源

  • 文件:包括 DS2413 的数据手册、产品页面、One-Wire 概述、GitHub 上的 EagleCAD PCB 文件以及 Adafruit Fritzing 库中的 Fritzing 对象。
  • 原理图:可以查看开发板的原理图。
  • 制造图纸:提供了制造开发板所需的图纸。

大家在使用这款开发板的过程中,有没有遇到什么有趣的问题或者有什么独特的应用呢?欢迎在评论区分享。

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 相关推荐
  • 热点推荐

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分