材料 | 介绍

7 段显示器上的背板允许它使用 I2C 协议(也称为两线接口)由 Arduino 控制。 如果没有 I2C 背板,您将必须直接控制每个数字的所有八个部分,这将耗尽 Arduino 上的所有引脚,或者您必须找出其他一些可能最终与 Adafruit 所做的非常相似的方法。 每个 Arduino 型号都有用于 I2C 的特定引脚。

https://embed.notionlytics.com/wt/ZXlKd1lXZGxTV1FpT2lKaE5qaGpaRFZsTldFd1l6RTBOakEzT1dRMk56UmtNemd4TW1Fd1l6Z3pPQ0lzSW5kdmNtdHpjR0ZqWlZSeVlXTnJaWEpKWkNJNklsZHNTR2hsVEZSUFdXeHpaVmRhUW1ZNU1YQmxJbjA9

车速传感器

自 1990 年代后期以来,大多数现代计算机控制的汽车都有一个称为 VSS 或车速传感器的传感器。传感器的位置各不相同,但它们都做同样的事情,即计算传动系统某些部分旋转的次数。在我的车上,VSS 在变速器中。 VSS 的输出是 5 伏直流方波信号中,每英里一定数量的脉冲。

本项目的第一步是找出每英里,我的 VSS 发出多少脉冲。这个数字因汽车制造商而异,有时因车型而异。我找到了一家制造售后巡航控制系统的公司,他们的安装手册包含每英里汽车和 VSS 脉冲的列表。每英里脉冲值的范围可以从 2000 一直到 38600。我汽车上的 VSS 输出 4000 ppm,这似乎是一个常见值,但您必须为您的特定车辆找出正确的值,否则读数将不正确。您还可以查阅他们的安装手册以了解 VSS 信号线的位置。注意的是您只能接入 VSS 线而不是完全中断它。发动机和变速箱计算机也使用此信号。

计算公式

现在,我知道我的 VSS 每英里输出 4000 个脉冲。 接下来,我需要弄清楚如何将其转换为每小时英里数。 在查看了一些关于如何测量脉冲的示例代码后,我决定对 VSS 脉冲计数一秒钟。 有了这些信息,我就可以将脉冲计数转换为 mph。 首先,我将一小时(每小时英里数)转换为 3600 秒。然后将每英里脉冲数除以秒数(4000/3600)。然后将传感器上计数的脉冲数除以该值。这是我的最终公式。

原型构建

我从 Arduino Uno 和 Adafruit Protosheild 开始。 我剪了一根旧的 USB 电缆,连接 7 段显示器。 USB 电缆非常适合此操作。 两条线用于 I2C 和两条较大规格的线用于电源和接地。 我剪了 USB 电缆的末端并剥去了每根电线。 我用焊锡给电线镀锡,这样我就可以将它们直接插入面包板,并添加一些热缩管以消除应变。 这是接线的Fritzing图:

这是接线的样子:

我为 7 段显示器制作了一个快速的小纸板外壳,以保护它免受阳光照射。

在晚上测试后,我决定添加一个光电池(光敏电阻)来控制显示器的亮度。 需要进行一些调整才能使亮度变化恰到好处。 最初,显示器的亮度随着我经过的每个路灯而波动。 我更改了代码,使用平均 30 个光级读数。 这样亮度会慢慢变化。

这是白天在我车里的样子。

晚上的样子,

代码