Arduino 读取并数码显示车速传感器数

2023-10-30

材料

介绍

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

车速传感器

自 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 个光级读数。 这样亮度会慢慢变化。

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

晚上的样子,

代码

详情参阅 - 亚图跨际

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Arduino 读取并数码显示车速传感器数 的相关文章

  • 如何返回变量?

    我正在编写一个程序 将字母翻译成摩尔斯电码 然后将它们传输到 LED 并闪烁 我无法返回值 include
  • 使用 Arduino 将serial.read()转换为可用的字符串

    我正在使用两个 Arduino 来相互发送纯文本字符串新软系列 https docs arduino cc learn built in libraries software serial and an RF http en wikiped
  • 将 Arduino RGB LED 从一种颜色渐变为另一种颜色?

    目前 我已成功让 LED 灯循环显示我选择的八种颜色 一切都工作正常 除了我想要一种更自然的感觉 并且想要从一种颜色褪色 过渡到下一种颜色 而不是让它们互相替换 到目前为止 这是我的代码 int redPin 11 int greenPin
  • Arduino 中的字符串比较

    我正在开发基于网络的家庭自动化系统 因此我的Arduino向服务器发送请求并在串行监视器中获得以下响应以及 loneOn 这是由于Serial println r 陈述 HTTP 1 1 200 OK Date Mon 13 Oct 201
  • 批处理文件:从串口接收数据并将其写入txt文件

    我正在尝试通过 USB 串行端口从 Arduino 提取一些数据并将其写入 txt 文件 因此 我使用批处理文件 Windows 7 普通cmd 它发送例如 d 从 Arduino 请求所需的数据 收到 d 后 Arduino 开始向 PC
  • printf 的包装

    我在Arduino下编码 我想开发串行打印格式化功能 所以我尝试使用sprintf未知大小的缓冲区 基本上 我们可以避免谈论 Arduino 及其串行输出 并考虑将文本写入缓冲区 然后使用printf 我试过这个 include
  • 如何通过蓝牙在Raspberry Pi 4和Arduino Nano BLE之间进行读写?

    我能够通过 Rpi4 的 bluepy 和 Arduino Nano BLE 的 ArduinoBLE h 连接 Raspberry Pi 4 和 Arduino Nano BLE 不幸的是 当我尝试从 Rpi4 写入 Arduino Na
  • Python自动选择串口(适用于Arduino)

    目前 Python 程序必须知道设备 Arduino 位于哪个端口 然后 Python 才能与设备进行通信 Problem 每当设备拔出并重新插入时 其 COM 端口都会发生变化 因此必须再次向 Python 提供正确的串行端口 以便它找到
  • 在Python中快速绘制数据

    我正在尝试使用 arduino 绘制来自 mpu6050 imu 的数据 MPU6050 发送数据的速度比绘图快 Arduino 代码从串口提供 6 个数据 即偏航 俯仰 滚动 轴 ay 和 az 我需要快速情节的建议 Python代码 i
  • 是否有通用 I2C 命令来查看设备是否仍然存在于总线上?

    是否有通用的 I2C 命令来查看设备在初始化一次后是否仍然存在于总线上 例如 OLED 显示器 我问这个的原因是为了避免主程序由于库代码中存在无限循环而冻结 当设备断开连接时 例如 Wire 库 在 MCU 启动时 我想检查设备是否可用 并
  • HM10 ble改变特征值AT命令Arduino

    谁能帮我用AT命令写入特征值 或者如何使用Hm10模块将数据从arduino发送到另一个ble设备 HM10发送AT START后 会通告数据包 并且可以检测服务和特征 但特征值是默认的0x00 如何更改 多次检查数据表 但找不到能够执行相
  • 使用 SPIFFS 加载文件时出现问题 (ERR_CONTENT_LENGTH_MISMATCH)

    好吧 这两天我一直在研究这个问题 但我仍然觉得我一无所获 我最近开始使用SPIFFS 文件系统 for Arduino开发于呼扎 ESP8266像FSBrowser ino例如 虽然它在分离代码方面非常出色 但随着我的代码不断增长 它在稳定
  • 使用 Java 控制 Arduino

    我正在寻找一个LED http en wikipedia org wiki Light emitting diode用Java程序打开和关闭 我用 C 完成了这个项目大约 5 分钟 但用 Java 似乎更具挑战性 我让 Arduino 等待
  • 在 Arduino 上将整数/小数转换为十六进制?

    如何将整数或小数变量转换为十六进制字符串 我可以做相反的事情 将十六进制转换为整数 但我无法找出其他方法 这是为了Serial print 数组中的十六进制值 查看 Arduino 字符串教程here http arduino cc en
  • 使用 Ardulink 命令 Arduino Uno

    我试图在我的 JAVA 应用程序中使用 Ardulink 库来命令我的 Arduino Uno 但没有成功 我不知道我错过了什么 这是我的代码 Link link Link getDefaultInstance boolean connec
  • 在声明对象之前在全局函数中使用类的成员函数

    我有一个事件处理函数 在该函数中调用了类的成员函数 事件处理函数在类 cpp 文件中声明 但不是类的一部分 它不是成员函数 当我编译代码时 编译器表示该函数在范围内 因为它正在调用全局事件处理函数中的成员函数 我的问题如下 有没有办法在全局
  • Arduino C++ 代码:可以使用虚函数和异常吗?

    跟进这条评论 https stackoverflow com questions 452139 writing firmware assembly or high level 452401从问题中编写固件 汇编还是高级 https stac
  • 如何在 Arduino 中将 char 变量作为数字打印到串行端口?

    我正在使用 Arduino Uno 我正在从 EEPROM 读取一个字节值并将该值存储在类型变量中char 1 字节 我想将变量的值作为数字 而不是相应的 ASCII 代码 打印到串行监视器 例如考虑char val 5 我想查看串行监视器
  • 如何使用基于HM-10蓝牙模块的BLE Shield?

    我是 arduino 项目的新手 我想请你帮忙 我从 http imall iteadstudio com development platform arduino shields im130704001 html http imall i
  • Arduino 高低

    我有一个 Arduino 我想知道到底是什么HIGH and LOW意思是 就实际值而言 它们是否有符号ints unsigned ints unsigned char是 他们的价值观是什么 我猜HIGH and LOW可能是unsigne

随机推荐

  • 高德地图 – 1.问题集锦

    1 自动加载文本框的坐标 并在地图标注点 2 点击地图时 并且 逆地理编码 解析出地址方在文本框 js var lnglatXY var marker 初始化地图对象 加载地图 var map new AMap Map mapContain
  • 【PB】动态添加数据窗口列中下拉列表的内容

    1 设置数据窗口某个列 dept id 的style type为DropDownListBox dw 1 Modify dept id ddlb case any 2 为下拉列表框添加数据 boolean lb flag false str
  • 剖析C++标准库智能指针(std::auto_ptr)

    1 Do you Smart Pointer Smart Pointer 中文名 智能指针 舶来品 不可否认 资源泄露 resource leak 曾经是C 程序的一大噩梦 垃圾回收 机制 Garbage Collection 一时颇受注目
  • 测开笔记九:线程&TestNG

    1 线程 1 1 线程概念 线程 程序执行流的最小执行单位 是行程中的实际运作单位 经常容易和进程这个概念混淆 那么 线程和进程究竟有什么区别呢 首先 进程是一个动态的过程 是一个活动的实体 简单来说 一个应用程序的运行就可以被看做是一个进
  • 机器学习——核函数

    问 已知三维空间中的两个样本点分别为 2 4 5 和 1 2 3 定义核函数表达式为 试计算这两个样本点映射到十维空间后的 答 首先计算两个样本点的平方内积 2 1 4 2 5 3 25 然后代入核函数表达式 25 5 6 131 1 核函
  • 如何修改element.style的样式

    我们通常在用组件库或者调试web样式时 发现有 element style这样的类名 这种样式其实是行内样式导致的 但是像element这种框架 没法修改行内样式
  • Cookie和Session的区别与联系

    1 前言 http的无状态和无连接 无连接 限制每次连接只处理一个请求 服务端处理完客户端的请求 并收到客户端的响应后 就断开连接 无状态 没有记录用户的登录状态 在淘宝上点击添加购物车 点击收藏 点击我的订单每一步就必须得重新登录 非常麻
  • 零相位,线性相位与非线性相位

    零相位 如图所示 如果一个信号关于第0个抽样点左右对称 则称这个信号具有零相位 线性相位 如果一个信号左右对称 但对称轴所在位置不是第0个采样点 则称这个信号具有线性相位 这就意味着 一个线性相位信号通过简单的左右平移变换便可转换为零相位信
  • unity(界面操作)如何打开模型网格

    就一个简单的操作 想不到网上的文章写的这么不清楚 找了半天才找到 误人子弟 我干脆自己写一个 如何在unity看到下面这个模型网格 如图点击
  • 【设计经验】5、Verilog对数据进行四舍五入(round)与饱和(saturation)截位

    一 软件平台与硬件平台 软件平台 操作系统 Windows 8 1 64 bit 开发套件 Vivado2015 4 2 Matlab2016a 仿真工具 Vivado自带仿真器 二 引言 在利用Verilog写数字信号处理相关算法的过程中
  • 人工智能基础学习笔记:简单神经网络的构建

    文章目录 前言 一 神经网络能够做什么 二 简单神经网络结构介绍 三 反向传播 梯度下降法 总结 前言 author Liu Zhao 作为刚入坑机器学习的一名小白 写这篇文章的初衷是想作为自己的一个学习笔记 防止知识遗忘 同时也希望能够跟
  • JAVA 简易登录界面实现 输入账号密码错误三次自动退出(超简单)

    成果图 输入账号密码错误三次自动退出 步骤 1 声明变量 提示语JLabel 文本输入框JTextField 按钮 JButton 2 设置提示语 文本框并加入JPanel中 3 添加设置按钮 并给按钮添加监听器addActionListe
  • Java学习笔记-多线程实现方式

    Java学习笔记 多线程实现方式 注意 线程开启不一定立即执行 由CPU调度执行 1 继承Thread类 自定义线程类继承Thread类 重写run 方法 编写线程执行体 创建线程对象 调用start 方法启动线程 public class
  • [leetcode 周赛 149] 1157 子数组中占绝大多数的元素

    目录 1157 Online Majority Element In Subarray 子数组中占绝大多数的元素 描述 思路 代码实现 1157 Online Majority Element In Subarray 子数组中占绝大多数的元
  • 第七届蓝桥杯大赛个人赛省赛(软件类 C语言b组)真题 (个人解题思路)

    1 煤球数目 有一堆煤球 堆成三角棱锥形 具体 第一层放1个 第二层3个 排列成三角形 第三层6个 排列成三角形 第四层10个 排列成三角形 如果一共有100层 共有多少个煤球 请填表示煤球总数目的数字 注意 你提交的应该是一个整数 不要填
  • Zabbix基础概念及原理

    Zabbix Zabbix基础概念及原理 什么是zabbix 功能组件 Server 数据库 Web界面 Proxy agent 监控功能 zabbix工作原理 zabbix工作进程 zabbix agentd zabbix get zab
  • LeetCode题解-让所有学生保持开心的分组方法数

    简单说两句 作者 后端小知识 CSDN个人主页 后端小知识 GZH 后端小知识 欢迎关注 点赞 收藏 留言 亲爱的各位友友们 今天来给大家讲解一道力扣中等题 废话不多说 接下面我就浅浅分析下这个题吧 我一定能给你讲明白的 我们先来康康题目的
  • 字符串循环右移

    题目内容 输入一个字符串和一个非负整数N 要求将字符串循环右移N次 输入格式 输入在第1行中给出一个字符串 以 表示结束
  • LVDS接口和LVDS技术

    LVDS接口 目前6 5寸及以上尺寸的液晶屏大多都是LVDS接口的了 而LVDS接口的屏主要是应用于工控行业 如下图就是LVDS接口的使用场景 下图所示为五通道LVDS发送芯片 DS90C385 内部框图 包含了四个数据信号 其中包括RGB
  • Arduino 读取并数码显示车速传感器数

    材料 介绍 7 段显示器上的背板允许它使用 I2C 协议 也称为两线接口 由 Arduino 控制 如果没有 I2C 背板 您将必须直接控制每个数字的所有八个部分 这将耗尽 Arduino 上的所有引脚 或者您必须找出其他一些可能最终与 A