SparkFun DEV-13712 粒子光子,带孔,用于焊接

规格
- 产品名称:OpenLog数据记录器
- 型号:DEV-13712
- 电源输入:3.3V-12V(建议3.3V-5V)
- RXI输入电压tage:2.0V-3.8V
- TXO输出电压tag电子:3.3V
- 空闲电流消耗:~2mA-5mA(无 microSD 卡),~5mA-6mA(有 microSD 卡)
- 主动写入电流消耗:~20-23mA(使用 microSD 卡)
产品使用说明
所需材料:
- Arduino Pro Mini 328 – 3.3V/8MHz
- SparkFun FTDI 基本分线盒 – 3.3V
- SparkFun Cerberus USB 数据线 – 6 英尺
- 带适配器的 microSD 卡 – 16GB(Class 10)
- microSD USB 读卡器
- 母头
- 跳线优质 6 M/M 10 包
- 分离式公头 – 直角
推荐阅读:
硬件结束view:
OpenLog 在以下设置下运行:
| VCC输入 | RXI输入 | TXO输出 | 空闲电流消耗 | 主动写入电流消耗 |
|---|---|---|---|---|
| 3.3V-12V(建议3.3V-5V) | 2.0V-3.8V | 3.3伏 | ~2mA-5mA(无 microSD 卡),~5mA-6mA(有 microSD 卡) | ~20- 23mA(带 microSD 卡) |
介绍
注意!本教程适用于串行UART的Open Log[DEV-13712]。如果您正在使用Qwiic OpenLog for I15164C[DEV-XNUMX],请参阅Qwiic OpenLog连接指南。
OpenLog 数据记录器是一款简单易用的开源解决方案,用于记录项目中的串行数据。OpenLog 提供了一个简单的串行接口,可将项目中的数据记录到 microSD 卡中。
SparkFun OpenLog
DEV-13712

带标题的SparkFun OpenLog
DEV-13955
未找到产品
所需材料
为了完整完成本教程,您需要以下零件。不过,根据您现有的零件,您可能不需要所有零件。将其添加到购物车,阅读指南,并根据需要调整购物车。
OpenLog连接指南
SparkFun愿望清单


推荐阅读
如果您不熟悉或不熟悉以下概念,我们建议您在继续阅读 OpenLog 连接指南之前先通读这些内容。
- 如何焊接: 通孔焊接。本教程涵盖了有关通孔焊接的所有知识。
- 串行通信 异步串行通信概念:数据包、信号电平、波特率、UART 等等!
- 串行外设接口 (SPI) SPI 通常用于将微控制器连接到传感器、移位寄存器和 SD 卡等外围设备。
- 串行终端基础知识 本教程将向您展示如何使用各种终端仿真器应用程序与串行设备通信。
硬件结束view
力量
OpenLog 在以下设置下运行:
OpenLog 功率等级

写入microSD时,OpenLog的电流消耗约为20mA至23mA。根据microSD卡的大小及其制造商,当OpenLog写入存储卡时,有效电流消耗可能会有所不同。增加波特率也会增加电流。
微控制器
OpenLog 由板载 ATmega328 运行,运行频率为 16MHz,这要归功于板载晶体。ATmega328 已加载 Optiboot 引导加载程序,这使得 OpenLog 能够与
Arduino IDE 中的“Arduino Uno”板设置。

界面
串行UART
与OpenLog的主要接口是板边缘的FTDI头。此接头设计用于直接插入Arduino Pro或Pro Mini,这允许微控制器通过串行连接将数据发送到OpenLog。

警告! 由于引脚顺序使其与 Arduinos 兼容,因此它不能直接插入 FTDI 分线板。

欲了解更多信息,请务必查看硬件连接的下一部分。
串行外设接口
电路板另一端还引出了四个 SPI 测试点。您可以使用它们来重新编程 ATmega328 上的引导加载程序。
最新的 OpenLog (DEV-13712) 将这些引脚引出到较小的镀通孔上。如果您需要使用 ISP 重新编程或将新的引导加载程序上传到 OpenLog,可以使用弹簧针 (pogo pin) 连接到这些测试点。- 与OpenLog通信的最终接口是microSD卡本身。为了进行通信,microSD卡需要SPI引脚。这不仅是OpenLog存储数据的地方,还可以通过config.txt文件更新OpenLog的配置。 file 在 microSD 卡上。
MicroSD卡
OpenLog 记录的所有数据都存储在 microSD 卡上。OpenLog 可与具有以下功能的 microSD 卡配合使用:
- 64MB至32GB
- FAT16 或 FAT32

OpenLog 上有两个状态 LED 可帮助您进行故障排除。
- STAT1 – 此蓝色指示灯 LED 连接到 Arduino D5 (ATmega328 PD5),并在收到新字符时开启/关闭。串行通信正常时,此 LED 闪烁。
- STAT2 – 此绿色 LED 连接到 Arduino D13(SPI 串行时钟线/ATmega328 PB5)。此 LED 仅在 SPI 接口处于活动状态时闪烁。当 OpenLog 将 512 字节记录到 microSD 卡时,您会看到它闪烁。

硬件连接
将OpenLog连接到电路主要有两种方法。您需要一些接头或电线来连接。确保将其焊接到电路板上以确保连接牢固。
基本串行连接
提示:如果 OpenLog 上有一个母接头,FTDI 上有一个母接头,则需要 M/F 跳线进行连接。

如果您需要重新编程电路板或通过基本串行连接记录数据,则此硬件连接专为与 OpenLog 接口而设计。
进行以下连接:
OpenLog→3.3V FTDI基本分接
- 接地 → 接地
- 接地 → 接地
- VCC → 3.3V
- TXO → RXI
- RXI → TXO
- DTR → DTR
请注意,这不是 FTDI 和 OpenLog 之间的直接连接——您必须切换 TXO 和 RXI 引脚连接。
您的连接应如下所示:

一旦建立了OpenLog和FTDI Basic之间的连接,就将FTDI板插入USB电缆和计算机。打开串行终端,连接到FTDI Basic的COM端口,然后去城里!
项目硬件连接
提示: 如果您已在 OpenLog 上焊接了母接头,则可以将公接头焊接到 Arduino Pro Mini 上,这样就可以将电路板插在一起,而无需使用电线。

虽然通过串行连接与OpenLog接口对于重新编程或调试非常重要,OpenLog的亮点在于嵌入式项目。我们建议您通过这个通用电路将OpenLog连接到微控制器(在本例中,Arduino Pro Mini)将串行数据写入OpenLog。
首先,你需要将代码上传到你打算运行的 Pro Mini。请查看 Arduino Sketches 中的一些示例amp您可以使用的代码。
笔记: 如果您不确定如何对 Pro Mini 进行编程,请查看此处的教程。
使用 Arduino Pro Mini 3.3V
- 本教程将指导您全面了解 Arduino Pro Mini。它解释了 Arduino Pro Mini 是什么、它不是什么以及如何开始使用它。
- 一旦你对你的Pro Mini进行了编程,您可以移除FTDI板并将其替换为OpenLog。确保连接Pro Mini和OpenLog上标有BLK的引脚(如果操作正确,两个引脚上标有GRN的引脚也将匹配)。
- 如果您无法将 OpenLog 直接插入 Pro Mini(由于接头不匹配或其他板挡住了路),您可以使用跳线并进行以下连接。
OpenLog → Arduino Pro/Arduino Pro Mini
- 接地 → 接地
- 接地 → 接地
- VCC → VCC
- TXO → RXI
- RXI → TXO
- DTR → DTR
完成后,Arduino Pro Mini 和 Arduino Pro 的连接应该如下所示。Fritzing 图表显示了 OpenLog 接口的镜像。如果您将 microSD 插槽相对于 Arduino 顶部翻转 view,它们应该与 FTDI 之类的编程头相匹配。

请注意,连接是直线的,OpenLog“倒置”(microSD 朝上)。
笔记: 由于OpenLog和Arduino之间的VCC和GND被接头占用,您需要将电源连接到Arduino上其他可用的插脚。否则,你可以将电线焊接到任一板上裸露的电源插脚上。
启动您的系统,您就可以开始记录了!
Arduino草图
有六种不同的情况amp包含 le 草图,当连接到 OpenLog 时您可以在 Arduino 上使用它。
- OpenLog_Benchmarking — 此示例ample 用于测试 OpenLog。它通过多个 files.
- OpenLog_CommandTest — 这个例子ample 展示了如何创建和附加 file 通过 Arduino 的命令行控制。
- OpenLog_ReadExample — 这个前任ample 介绍了如何通过命令行控制 OpenLog。
- OpenLog_ReadExamp大File - 前任amp如何打开大型存储 file 在 OpenLog 上并通过本地蓝牙连接报告。
- OpenLog_Test_Sketch — 用于使用大量串行数据测试 OpenLog。
- OpenLog_Test_Sketch_Binary — 用于使用二进制数据和转义字符测试 OpenLog。
固件
OpenLog 板上有两个主要软件:引导加载程序和固件。
Arduino 引导加载程序
笔记: 如果您使用的是 2012 年 5 月之前购买的 OpenLog,则板载引导加载程序与 Arduino IDE 中的“Arduino Pro 或 Pro Mini 16V/328MHz w/ ATmegaXNUMX”设置兼容。
- 如前所述,OpenLog 板载 Optiboot 串行引导程序。上传 examp代码或新固件到主板。
- 如果您最终弄坏了OpenLog并需要重新安装引导加载程序,您还需要将Optiboot上传到板上。有关更多信息,请查看我们关于安装Arduino引导加载程序的教程。
编译固件并将其加载到OpenLog上
笔记: 如果这是您第一次使用 Arduino,请重新view 我们关于安装 Arduino IDE 的教程。如果您之前没有安装过 Arduino 库,请查看我们的安装指南,了解如何手动安装库。
- 如果由于任何原因您需要更新或重新安装 OpenLog 上的固件,则以下过程将使您的主板启动并运行。
- 首先,请下载 Arduino IDE v1.6.5。其他版本的 IDE 或许可以编译 OpenLog 固件,但我们已验证此版本为已知良好版本。
- 接下来,下载 OpenLog 固件和所需的库包。
下载 OPENLOG 固件包 (ZIP)
- 下载完库和固件后,请将库安装到 Arduino 中。如果您不确定如何在 IDE 中手动安装库,请查看我们的教程:安装 Arduino 库:手动安装库。
笔记:
- 我们正在使用 SdFat 和 SerialPort 库的修改版本,以便任意声明 TX 和 RX 缓冲区的大小。OpenLog 要求 TX 缓冲区非常小(0),而 RX 缓冲区则需要尽可能大。
- 同时使用这两个修改后的库可以提高 OpenLog 的性能。
寻找最新版本?
如果您需要最新版本的库和固件,可以直接从下方链接的 GitHub 代码库下载。SdFatLib 和串口库在 Arduino 开发板管理器中不可见,因此您需要手动安装。
- GitHub:OpenLog > 固件 > OpenLog_Firmware
- Bill Greiman 的 Arduino 库
- SdFatLib-beta
- 串行端口
- 接下来,为了取得进展tag修改库中的e,修改SerialPort.hh file 在 \Arduino\Libraries\SerialPort 目录中找到。将 BUFFERED_TX 更改为 0,将 ENABLE_RX_ERROR_CHECKING 更改为 0。保存 file,然后打开 Arduino IDE。
- 如果您还没有,请通过 FTDI 板将您的 OpenLog 连接到计算机。请仔细检查amp如果您不确定如何正确执行此操作,请参阅电路。
- 在“工具”>“板”菜单下打开您想要上传的 OpenLog 草图,选择“Arduino/Genuino Uno”,然后在“工具”>“端口”下为您的 FTDI 板选择正确的 COM 端口。
- 上传代码。
- 就是这样!您的OpenLog现在已使用新固件进行编程。现在您可以打开串行监视器并与OpenLog交互。通电后,您将看到12>或12<。1表示串行连接已建立,2表示SD卡已成功初始化,<表示OpenLog已准备好记录任何接收到的串行数据,>表示OpenLog已准备好接收命令。
OpenLog固件草图
您可以在 OpenLog 上使用三个包含的草图,具体取决于您的特定应用程序。
- OpenLog – 此固件默认安装在 OpenLog 上。发送“?”命令将显示设备上加载的固件版本。
- OpenLog_Light – 此版本的草图移除了菜单和命令模式,从而允许增加接收缓冲区。这对于高速日志记录来说是一个不错的选择。
- OpenLog_Minimal – 必须在代码中设置波特率并上传。此程序适合经验丰富的用户,但也是实现最高速度记录的最佳选择。
命令集
您可以通过串行终端与OpenLog交互。以下命令将帮助您读取、写入和删除 files,以及更改OpenLog的设置。您需要处于命令模式才能使用以下设置。
当OpenLog处于命令模式时,STAT1将为接收到的每个字符切换开/关。LED将保持亮起,直到接收到下一个字符。
- 新的 File – 创建新的 file 命名 File 在当前目录中。标准 8.3 file支持名称。例如amp例如,“87654321.123”是可以接受的,而“987654321.123”则不可以。
- Example: 新的 file1.txt
- 附加 File – 将文本附加到 File.然后从 UART 读取串行数据流并将其添加到 file。它不会在串行终端上回显。如果 File 调用此函数时不存在, file 将被创建。
- Example:附加新的file.csv
- 写 File OFFSET – 将文本写入 File 从位置 OFFSET 内 file文本从 UART 逐行读取并回显。要退出此状态,请发送一个空行。
- Example:写入 logs.txt 516
- rm File – 删除 File 从当前目录。支持通配符。
- Example: rm README.txt
- 尺寸 File – 输出大小 File 以字节为单位。
- Example: 大小 Log112.csv
- 输出:11
- 读 File + START+ LENGTH TYPE – 输出内容 File 从 START 开始,一直到 LENGTH。如果省略 START,则整个 file 报告。如果省略 LENGTH,则报告从起始点开始的所有内容。如果省略 TYPE,OpenLog 将默认以 ASCII 格式报告。输出类型有三种:
- ASCII = 1
- 十六进制 = 2
- RAW = 3
- 你可以省略一些尾随参数。检查以下示例amp莱斯。
- 基本读取+省略的标志:
- Example:读取LOG00004.txt
- 输出:加速度计 X=12 Y=215 Z=317
- 从开始 0 读取,长度为 5:
- Example:读取LOG00004.txt 0 5
- 输出:加速
- 从位置 1 读取长度为 5 的十六进制数据:
- Example: 读取 LOG00004.txt 1 5 2
- 输出:63 63 65 6C
- 从位置 0 开始读取 RAW 中长度为 50 的数据:
- Example: 读取 LOG00137.txt 0 50 3
- 输出:André– -þ 扩展字符测试
- 猫 File – 写下 file 以十六进制形式发送到串行监视器 viewing。这有时有助于看到 file 无需拔出 SD 卡即可正确录制, view 这 file 在计算机上。
- Examp勒:cat LOG00004.txt
- 输出:00000000:41 63 65 6c 3a 20 31
目录操作
- ls – 列出当前目录的所有内容。支持通配符。
- Example: ls
- 输出:\src
- md 子目录 – 在当前目录中创建一个子目录。
- Example: md Example_Sketches
- cd 子目录 — 更改到子目录。
- Examp例如:cd Hello_World
- cd .. – 切换到目录树中的下一级目录。注意,“cd”和“..”之间有一个空格。这能让字符串解析器识别出 CD 命令。
- Examp乐: cd ..
- rm 子目录 – 删除子目录。该目录必须为空,此命令才能生效。
- Example: rm temps
- rm -rf 目录 – 删除目录和任何 file包含在其中。
- Example:rm -rf 库
低级函数命令
- ?——此命令将拉出 OpenLog 上可用命令的列表。
- 磁盘 – 显示卡制造商 ID、序列号、制造日期和卡尺寸。例如amp输出为:
- 卡类型:SD2 制造商ID:3
- OEM ID: SD
- 产品:SU01G
- 版本:8.0
- 序列号:39723042 制造日期:1/2010 卡大小:965120 KB
- init – 重新初始化系统并重新打开 SD 卡。如果 SD 卡停止响应,此功能很有用。
- 同步 – 将缓冲区的当前内容同步到 SD 卡。如果缓冲区中的字符少于 512 个,并且希望将其记录到 SD 卡上,则此命令非常有用。
- 重置 – 将 OpenLog 跳转到位置 0,重新运行引导加载程序,然后运行初始化代码。如果您需要编辑配置,此命令很有用 file,重置 OpenLog,然后开始使用新配置。电源循环仍然是重置电路板的首选方法,但此选项可用。
系统设置
这些设置可以在 config.txt 中手动更新或编辑 file.
- 回显状态——更改系统状态,并存储在系统内存中。状态可以是开启或关闭。开启时,OpenLog 将在命令提示符下回显接收到的串行数据。关闭时,系统不会读取接收到的字符。
笔记: 正常日志记录期间,回显将被关闭。日志记录期间,回显接收数据的系统资源需求过高。
- 详细状态 – 更改详细错误报告的状态。STATE 可以设置为“开启”或“关闭”。此命令存储在内存中。关闭详细错误报告后,如果出现错误,OpenLog 将仅响应“!”,而不是“未知”命令:C OMMAND.D..T。这些字符比完整错误更容易被嵌入式系统解析。如果您正在使用终端,保持详细状态开启将允许您查看完整的错误消息。
- 波特 – 此命令将打开一个系统菜单,允许用户输入波特率。支持 300bps 到 1Mbps 之间的任何波特率。波特率选择是即时的,OpenLog 需要电源循环才能使设置生效。波特率存储在 EEPROM 中,每次 OpenLog 通电时都会加载。默认值为 9600 8N1 。
记住: 如果电路板的波特率未知,您可以将 RX 连接到 GND 并启动 OpenLog。LED 将来回闪烁 2 秒,然后同时闪烁。关闭 OpenLog,并拆下跳线。OpenLog 现在重置为 9600bps,并连续三次按下转义字符“ctrl-z”。可以通过将紧急覆盖位设置为 1 来覆盖此功能。有关更多信息,请参阅 config.txt。
- 设置 – 此命令打开系统菜单以选择启动模式。这些设置将在下次开机时生效,并存储在非易失性 EEPROM 中。
- 新的 File 记录 – 此模式创建一个新的 file 每次 OpenLog 启动时。OpenLog 将发送 1(UART 处于活动状态)、2(SD 卡已初始化),然后 <(OpenLog 已准备好接收数据)。所有数据都将记录到 LOG#####.txt 文件中。每次 OpenLog 启动时,##### 数字都会增加(最大为 65533 条日志)。该数字存储在 EEPROM 中,可从设置菜单中重置。并非所有接收到的字符都会回显。您可以通过发送 CTRL+z(ASCII 26)退出此模式并进入命令模式。所有缓冲数据都将被存储。
- 笔记: 如果创建的日志过多,OpenLog 将输出错误 **日志过多**,退出此模式并返回命令提示符。串行输出将类似于“12!日志过多!”
- 附加 File 日志记录——也称为顺序模式,此模式创建 file 如果不存在,则调用 SEQLOG.txt,并将所有接收到的数据附加到 fileOpenLog 将传输 12<,此时 OpenLog 已准备好接收数据。字符不会回显。您可以通过发送 CTRL+z (ASCII 26) 退出此模式并进入命令模式。所有缓冲数据都将被存储。
- 命令提示符 – OpenLog 将传输 12>,此时系统已准备好接收命令。请注意,> 符号表示 OpenLog 已准备好接收命令,而不是数据。您可以创建 files 并将数据附加到 files,但这需要一些串行解析(用于错误检查),因此我们默认不设置此模式。
- 重置新 File 数字 – 此模式将重置日志 file 编号到 LOG000.txt 。如果你最近清空了 microSD 卡,并且想要日志 file 数字重新开始。
- 新的转义字符 – 此选项允许用户输入一个字符(例如 CTRL+z 或 $),并将其设置为新的转义字符。紧急重置期间,此设置将重置为 CTRL+z。
- 转义字符数量 – 此选项允许用户输入一个字符(例如 1、3 或 17),更新进入命令模式所需的转义字符数量。例如amp例如,输入 8 将要求用户按 Ctrl+z 八次才能进入命令模式。紧急重置期间,此设置将重置为 3。
- 转义字符说明:OpenLog 要求按三次“CTRL+z”才能进入命令模式,是为了防止在从 Arduino IDE 上传新代码时意外重置开发板。在引导加载过程中,开发板可能会检测到“CTRL+z”字符(我们在早期版本的 OpenLog 固件中发现过这个问题),因此这旨在防止这种情况发生。如果您怀疑您的开发板因此而损坏,您可以随时通过在通电期间将 RX 引脚接地来进行紧急重置。
配置 File
如果您不想使用串行终端修改 OpenLog 上的设置,您还可以通过修改 CONFIG.TXT 来更新设置 file.
笔记: 此功能仅适用于固件版本 1.6 或更高版本。如果您在 2012 年之后购买了 OpenLog,则将运行固件版本 1.6 及以上版本。
- 为此,您需要一个 microSD 读卡器和一个文本编辑器。打开 config.txt file (大写 file 名称无关紧要),然后配置!如果您以前从未使用SD卡启动过OpenLog,您还可以手动创建 file。如果您之前已使用插入的 microSD 卡启动了 OpenLog,则读取 microSD 卡时应该会看到类似以下内容。
OpenLog 创建 config.txt 和 LOG0000.txt file 首次启动时。 - 默认配置 file 有一行设置和一行定义。
默认配置 file 由 OpenLog 编写。 - 请注意,这些是常规可见字符(没有不可见或二进制值),并且每个值都用逗号分隔。
设置定义如下:
- 波特率:通信波特率。默认值为 9600 bps。与 Arduino IDE 兼容的可接受值为 2400、4800、9600、19200、38400、57600 和 115200。您可以使用其他波特率,但您将无法通过 Arduino IDE 串行监视器与 OpenLog 通信。
- Escap:e 转义字符的 ASCII 值(十进制格式)。26 是 CTRL+z,是默认值。36 是 $,是常用的转义字符。
- Esc #:所需的转义字符数量。默认情况下为 0,因此您必须输入 254 次转义字符才能进入命令模式。可接受的值范围为 0 到 XNUMX。将此值设置为 XNUMX 将完全禁用转义字符检查。
- 模式:系统模式。OpenLog 默认以新日志模式(0)启动。可接受的值为:0 = 新日志,1 = 顺序日志,2 = 命令模式。
- Verb:详细模式。默认启用扩展(详细)错误消息。将其设置为 1 会启用详细错误消息(例如,unknown command: remove !)。将其设置为 0 会关闭详细错误消息,但如果出现错误,则会返回 !。如果您尝试处理来自嵌入式系统的错误,关闭详细模式会非常方便。
- Echo:回显模式。在命令模式下,字符默认回显。设置为 0 可关闭字符回显。如果您需要处理错误,并且不希望发送的命令被回显到 OpenLog.II,则关闭此功能会很方便。
- iignoreRXEmergency Override。通常情况下,当 RX 引脚在上电过程中被拉低时,OpenLog 会紧急复位。将其设置为 1 将禁用上电期间对 RX 引脚的检查。这对于由于各种原因将 RX 线保持在低电平的系统非常有用。如果禁用了紧急覆盖,您将无法强制设备恢复到 9600bps,并且配置 file 将是修改波特率的唯一方法。
OpenLog如何修改配置 File
OpenLog修改config.txt有五种不同的情况 file.
- 配置 file 发现:在启动过程中,OpenLog 将查找 config.txt file. 如果 file 发现后,OpenLog 将使用包含的设置并覆盖任何先前存储的系统设置。
- 无需配置 file 找到:如果 OpenLog 找不到 config.txt file 然后,OpenLog 将创建 config.txt 文件,并将当前存储的系统设置记录到其中。这意味着,如果您插入一张新格式化的 microSD 卡,系统将保留其当前设置。
- 配置损坏 file 发现:OpenLog 将删除损坏的 config.txt file,并将重写内部 EEPROM 设置和 config.txt 设置 file 到已知良好状态 9600,26,3,0,1,1,0。
- 配置中的非法值 file:如果 OpenLog 发现任何包含非法值的设置,OpenLog 将覆盖 config.txt 中的损坏值 file 使用当前存储的 EEPROM 系统设置。
- 通过命令提示符进行更改:如果通过命令提示符(通过串行连接或通过微控制器串行命令)更改系统设置,则这些更改将记录到系统 EEPROM 和 config.txt 中 file.
- 紧急复位:如果OpenLog通过RX和GND之间的跳线进行电源循环,并且紧急覆盖位设置为0(允许紧急复位),OpenLog将重写内部EEPROM设置和config.txt设置 file 变为已知良好状态 9600,26,3,0,1,1,0 。
故障排除
有几种不同的选项可用于检查您是否遇到了通过串行监视器连接的问题、日志中丢失字符的问题或与损坏的 OpenLog 作斗争。
检查 STAT1 LED 行为
STAT1 LED 对两种不同的常见错误表现出不同的行为。
- 闪烁3次:microSD卡初始化失败。您可能需要在电脑上将卡格式化为FAT/FAT16格式。
- 5 次闪烁:OpenLog 已更改为新的波特率,需要进行电源循环。
仔细检查子目录结构
- 如果您使用默认的 OpenLog.ino examp例如,OpenLog 仅支持两个子目录。您需要将 FOLDER_TRACK_DEPTH 从 2 更改为您需要支持的子目录数量。完成此操作后,重新编译代码,并上传修改后的固件。
- 验证数量 File根目录中
- OpenLog 最多仅支持 65,534 个日志 file位于根目录中。我们建议重新格式化您的 microSD 卡以提高记录速度。
- 验证修改后的固件的大小
- 如果您正在为 OpenLog 编写自定义代码,请确认代码大小不超过 32,256。如果超过 500,它将切入闪存的高 XNUMX 字节,该内存由 Optiboot 串行引导加载程序使用。
- 再检查 File 名字
- 全部 file 名称应由字母和数字组成。MyLOG1.txt 可以,但 Hi !e _ .txtt 可能不行。
- 使用 9600 波特
- OpenLog 基于 ATmega328 运行,RAM 容量有限(2048 字节)。当您向 OpenLog 发送串行字符时,这些字符会被缓冲。SD 组简化规范允许 SD 卡最多花费 250 毫秒(第 4.6.2.2 节“写入”)将数据块记录到闪存中。
- 在 9600bps 下,即每秒 960 字节(每字节 10 位),即每字节 1.04 毫秒。OpenLog 目前使用 512 字节的接收缓冲区,因此它可以缓冲大约 50 毫秒的字符。这使得 OpenLog 能够成功接收所有以 9600bps 速率传输的字符。随着波特率的增加,缓冲区的持续时间会缩短。
OpenLog缓冲区溢出时间
| 波特率 | 每字节时间 | 缓冲区溢出时间 |
| 9600bps | 1.04毫秒 | 532毫秒 |
| 57600bps | 0.174毫秒 | 88毫秒 |
| 115200bps | 0.087毫秒 | 44毫秒 |
许多 SD 卡的记录时间都快于 250 毫秒。这可能会受到卡的“等级”以及卡上已存储的数据量的影响。解决方案是使用较低的波特率,或增加以较高波特率发送字符之间的时间间隔。
记得使用信用卡 file就在上面。一张 microSD 卡,内含 3.1GB 的 ZIP 文件 files 或 MP3 的响应时间比空卡慢。如果您没有在 Windows 操作系统上格式化 microSD 卡,请重新格式化 microSD 卡并创建一个 DOS fileSD 卡上的系统。
卡的制造商、标签、卡尺寸和卡等级各不相同,并非所有卡都能正常工作。我们通常使用 8GB Class 4 microSD 卡,在 9600bps 下工作良好。如果您需要更高的波特率或更大的存储空间,可以尝试 Class 6 或更高级别的卡。
通过在 Serial.print() 语句之间添加一个小的延迟,您可以让 OpenLog 有机会记录其当前缓冲区。
- 串行.开始(115200);
for(int i = 1 ; i < 10 ; i++) { Serial.print(i, DEC); Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”); }
可能无法正确记录,因为有很多字符是连续发送的。在大字符写入之间插入 15 毫秒的短暂延迟将有助于 OpenLog 记录而不丢失字符。
- 串行.开始(115200);
for(int i = 1 ; i < 10 ; i++) { Serial.print(i, DEC); Serial.println(“:abcdefghijklmnopqrstuvwxyz-!#”); 延迟(15); }
添加 Arduino 串行监视器兼容性
如果您尝试将OpenLog与内置串行库或SoftwareSerial库一起使用,您可能会注意到命令模式存在问题。Serial.println()同时发送换行符和回车符。有两个替代命令可以解决这个问题。
第一种是使用 \r 命令(ASCII 回车符):
串行打印(“TEXT \r”);
或者,您可以发送值 13(十进制回车符):
- 串行打印(“文本”);
- 串行写入(13);
紧急复位
记住,如果您需要将 OpenLog 重置为默认状态,您可以通过将 RX 引脚绑定到 GND、启动 OpenLog、等待 LED 开始同时闪烁,然后关闭 OpenLog 电源并移除跳线来重置电路板。
如果您将紧急覆盖位更改为 1,则需要修改配置 file,因为紧急重置将不起作用。
与社区核实
如果您的OpenLog仍然有问题,请查看我们GitHub存储库中的当前和已关闭的问题。这里有一个大型社区在使用OpenLog,所以很有可能有人已经找到了你所看到的问题的解决方案。
资源和进一步发展
现在您已经成功使用OpenLog记录了数据,您可以设置远程项目并监视所有可能的数据。考虑创建您自己的公民科学项目,或者甚至创建一个宠物追踪器,看看Fluffy在外出时会做什么!
查看这些额外的资源,以获得故障排除、帮助或为您的下一个项目提供灵感。
- OpenLog GitHub
- Illumitune 项目
- LilyPad光传感器连接
- BadgerHack:土壤传感器插件
- OBD-II入门
- 游标光电门
需要更多灵感吗?查看以下相关教程:
- 光子远程水位传感器
了解如何为储水箱构建远程水位传感器以及如何根据读数自动控制泵! - Blynk 板项目指南
您可以在 Blynk 板上设置一系列 Blynk 项目,而无需重新编程。 - 使用 Tessel 2 将数据记录到 Google Sheets
该项目涵盖了如何通过两种方式将数据记录到 Google Sheets:使用 IFTTT 和 web 连接或 USB 驱动器,无需“sneakernet”。 - 使用 Python 和 Matplotlib 绘制传感器数据
使用 matplotlib 创建从连接到 Raspberry Pi 的 TMP102 传感器收集的温度数据的实时图。
如果您有任何教程反馈,请访问评论或联系我们的技术支持团队 TechSupport@sparkfun.com.
常见问题
OpenLog 的推荐电源输入是多少?
OpenLog 的建议电源输入在 3.3V 至 5V 之间。
OpenLog 空闲时消耗多少电流?
当没有 microSD 卡处于空闲状态时,OpenLog 的电流大约为 2mA 到 5mA,当插入 microSD 卡时,OpenLog 的电流大约为 5mA 到 6mA。
microSD USB Reaaboutn 对 OpenLog 的用途是什么?
microSD USB 读取器可轻松将数据从与 OpenLog 一起使用的 microSD 卡传输到计算机。
文件/资源
![]() |
SparkFun DEV-13712 粒子光子,带孔,用于焊接 [pdf] 用户指南 DEV-13712,DEV-13955,DEV-13712 粒子光子带孔用于焊接,DEV-13712,粒子光子带孔用于焊接,用于焊接的孔,用于焊接,用于焊接,焊接 |

