Arduino自行车车速表:16步(带图片)

Arduino自行车车速表:16步(带图片)

目录:

Anonim

使用Arduino监控您的行驶速度。该项目使用磁性开关(也称为簧片开关)来测量其中一个自行车车轮的速度。 Arduino计算mph,并在您骑行时将此信息发送到车把上的LCD屏幕。它与任何类型的自行车/车轮兼容,只需在固件中输入车轮半径即可校准设备以进行设置。

零件清单:

(1x)Arduino Uno REV 3 Radioshack 276-128

(1x)Switch-Magnetic Reed Radioshack 55050593

(1x)10K欧姆1/4瓦碳膜电阻Radioshack#271-1335

(1x)9V碱性电池Radioshack#23-866

(1x)重载9V快速连接器Radioshack#270-324

(1x)带有Radioshack的电路板#276-147

(1x)Parallax 27977-RT串行背光LCD Radioshack 276-120

(x2)SPST可安装PC的Submini拨动开关Radioshack#275-645

(2x)男性标头针Jameco 103393

(1x)母针插座Jameco 308567

附加材料:

22 Gauge Wire Radioshack#278-1224

Solder Radioshack#64-013

砂纸

合板

木胶

热胶

螺丝

拉链链条

sugru

下载Arduino IDE

供应:

第1步:原理图

该项目的原理图如上所示。

它由三个开关组成:

- 连接到9V电源

- 打开和关闭LCD的背光

- 磁力开关(称为簧片开关),每当车轮完成一次完整旋转时关闭。

Parallex LCD设计用于仅使用三个引脚连接到arduino(忽略其原理图中的标签和其他引脚)。 arduino上的一到5V,一对地和三分之一串行输出(TX) - 串行输出是数字引脚1。

10kOhm电阻连接到簧片和背光开关,以防止5V和地之间的过电流(你不应该直接连接arduino上的5V和地!)

第2步:Protoboard

在protoboard上焊接三排插头引脚,这样arduino就可以抓住它,如上图所示。

第3步:簧片开关

簧片开关由两部分组成,一个开关和一个磁铁。开关有两条从它伸出的导线,当磁铁靠近开关时,它会导致一个小的机械部件瞬间移动和关闭开关。

在主板上的A0和地之间焊接一个10kOhm(限流)电阻。将长绞线连接到A0和5V-这些电线将缠绕在自行车上并连接到簧片开关。

第4步:将簧片开关安装在车轮上

用电工胶带将磁铁和簧片开关固定在你的自行车轮上(轮子很好)。如上图所示,磁铁连接到其中一个轮胎辐条,并且簧片开关连接到自行车的车架。这样,每次自行车车轮转动时,磁铁就会移过开关。将引线从簧片开关连接到你的protoboard的长导线(这里的方向无关紧要 - 它只是一个开关)

使用以下代码测试您的簧片开关。当车轮上的磁铁移过开关时,arduino应打印~1023,否则打印~0。在Arduino IDE中打开串行监视器(工具>>串行监视器)以测试您自己的设置。如果磁铁似乎没有影响簧片开关,请尝试重新定位,或者如果有磁铁,甚至可以添加更强的磁铁。

第5步:测试开关

将下面的代码加载到Arduino上。打开串行监视器。它应该输出0.00。开始转动自行车轮,你应该看到每秒当前mph的打印。

第6步:LCD

在原型板的铜侧焊接一排母头插座 - 其中三个用于连接液晶显示屏。液晶显示器应该很好地贴合在原型板上。

第7步:安装Parallax LCD Library

将Arduino 5V,接地和TX(Arduino数字引脚1)连接到LCD插座。读取LCD引脚上的标签,确保所有方向都正确。

第8步:视差LCD

Parallax LCD的底部有两个开关和一个电位计。电位器控制显示器的对比度 - 您可以根据需要调整它。必须如上图所示设置开关才能正常工作。

第9步:测试LCD

测试以下代码。出于某种原因,当我第一次上传时,我的LCD开始发出噪音并显示随机字符,但是一旦我拔下并重新连接usb连接,它就能正常工作。我认为这可能有一些事情需要干扰arduino在上传过程中通过数字引脚1(TX)与计算机通信。

LCD打开时应显示“Hello World”。

第10步:背光开关

如上图所示连接一个开关。将10kOhm电阻和绿线连接到一根导线,将红线连接到另一根导线。

将红线连接到Arduino 5V,将电阻的另一端连接到地,将绿线连接到D2。

第11步:最终车速表代码

将以下代码上传到Arduino。测试以确保背光开关工作并且速度正确显示。 (同样,您可能必须在加载固件后拔下电路板,然后再将其重新插入以使其正常工作。)

测量轮胎半径(以英寸为单位)并将其插入直线:float radius ='''';

我在这段代码中使用了定时器中断来保持变量“timer”在1kHz处递增。有关中断的更多信息以及我如何设置它的说明可以在这里找到。

第12步:电池

按照上图第一张图所示,将电池连接器和开关串联。将读取引线从开关连接到Arduino Vin,将黑色线从电池连接器连接到Arduino接地。

第13步:封闭

我用1/4“厚度切割了一块外壳120Watt激光切割机上的项目外壳。外壳尺寸为3.5”x4“x2”。我在AutoCAD中对该框进行了建模,并在Autodesk 123D Make中生成了激光切割文件(带有手指关节)。然后我为开关添加了两个孔,为LCD屏幕添加了一个矩形开口。我还在机箱底部添加了一些孔,使其更容易安装到自行车上。

我用木胶将项目外壳粘在一起,并将边缘打磨下来。我用一些透明的聚丙烯完成了外壳。

步骤14:在机箱中安装组件

用螺母将交换机固定在机柜上。将液晶显示屏粘贴或拧到前面板的下侧。

将Arduino和Protoboard以及电池安装到外壳中,并用尼龙搭扣或胶水固定。

拧紧或拧紧机箱。

第15步:附加到自行车

将簧片开关绕在自行车车架周围,远离任何移动的自行车部件。我使用sugru和一些拉链将速度计连接到手柄杆上。

第16步:在路上把它拿出来

你应该准备好上路了。不要让新款自行车车速表的强大功能让您远离道路危险!

2个人做了这个项目!

  • Shahid Khattak成功了!

  • ĐìnhTàiN成功了!

你做这个项目了吗?与我们分享!

建议

  • 混合Arduino代码示例

  • Opensource Ornithopter原型。 Arduino供电和远程控制。

  • 物联网类

  • 物联网挑战

  • 粉丝竞赛

  • Arduino Contest 2019

158讨论

0

Ravindran2k

2个月前

嗨,我用自行车车速表电缆使用霍尔效应传感器读取速度,我的车轮每转一圈就有6个峰值。电压从0逐渐增加到4.9并再次减小到0.0并再次增加到4.9,重复6个峰值,就像单次旋转的正弦波一样。在这个程序中要做什么修改来计算速度。请帮忙。尽快

0

亚西斯席尔瓦

问题1年前

任何人 我需要帮助。它工作得很完美,但何时 磁铁在簧片前面没有轮换,它给了一些 40.38 喜欢价值。

1个答案 0

mad_b 亚西斯席尔瓦

回答5个月前

如果磁铁停在传感器上方,你还需要编写一个特殊的代码测试……我发现了类似的情况,但决定使用相同的方法重写几乎所有的代码。

0

mad_b

5个月前

嗨!我尝试了基于1KHz定时器的车速表代码,但我没有使用串口;我在另一个用户界面上显示信息,并通过电压比较器从TTL调节的霍尔传感器读取信号。你在这里写的速度表完全例子似乎没有正常工作,但是一般的中断/轮询想法很棒,我自己也可以编写代码。我把它改为10 KHz以获得更好的精度,因为我计划在摩托车上使用它,我在ISR中添加了一个用于RPM计数的部分和引脚输入。感谢您提供有用的信息。

0

UthayakumarR

问题7个月前的第5步

如果假设我的自行车车轮静止且磁铁朝向簧片开关,那么它将关闭电路并且速度处于高水平。当磁铁面向开关时,当车轮静止速度为零时,是否有任何逻辑?

0

FANTOME0

8个月前

它的最高速度是多少?

0

艾瑞安

问题1年前

为什么你的计时器变量只达到2001?

1个答案 0

亚西斯席尔瓦 艾瑞安

回答1年前

检查天气是否已将电阻器连接到簧片的电源而不是连接到地面。我估计在模拟中5V = 1023

0

puljiun

1年以前

我的簧片开关测试有很多噪音。是因为我没有将开关焊接到电路板上吗?

1回复 0

SivaM20 puljiun

回复1年前

在簧片开关连接到Arduino时,你应该在地上加一个电阻

0

hobbyman

1年以前

非常好的项目。

0

kilimanjaro1029

1年以前

我将Arduino连接到16x2 LCD,但它没有通电。只需连接上面提到的3个引脚,任何16x2 LCD都能打开吗?

0

amandaghassaei

2年前

对于那些询问mph calc的人:

mph =(56.8 * float(周长))/ float(计时器);

“周长”以英寸为单位

车轮每转的时间(“计时器”)以毫秒(0.001s)为单位测量

英里/小时= 1 /(英寸每英里)*(每小时毫秒)*(周长/计时器)

一英里有63360英寸,小时为1000 * 60 * 60 = 3,600,000毫秒:

mph = 1/63360 * 3600000 *周长/计时器

mph = 56.8 *周长/计时器

以km / hr为单位:

km / hr = 1 /(英里/ km)*(每小时毫秒)*(周长/计时器)

km / hr = 1/39370 * 3600000 *周长/计时器

km / hr = 91.4 *周长/计时器

3回复 0

PhremC amandaghassaei

回复1年前

嗨阿曼达,我可以知道你用哪个库进行编码。

0

yerrasandeep PhremC

回复1年前

嗨amanda,像PhremC一样的请求“你使用哪个库进行编码”

它会对我有所帮助。

0

YasirA50 amandaghassaei

回复2年前

你可以使用任何液晶显示器,还是必须具体?

0

ahunkeri

1年以前

嘿。我正在进行肩轮旋转计数项目。在此,患者的轮子旋转总数通过短信发送给医生。为此我在如何计算旋转方面几乎无需帮助。我还想检查患者是否正在移动或旋转多少手。 90度,180度,270度和360度/ 0度。

0

RăzvanN4

1年以前

我可以使用相同的arduino板和相同的面包板制作相同的项目(车速表)并连接一个光敏电阻LED开/关(LED应该在天黑时自动开机)吗?

Photoresistor:http://www.instructables.com/id/Arduino-Photoresis …

0

arduinolife

2年前

嗨,我在显示液晶显示器的速度时遇到了麻烦。你用的是什么代码?

0

Lucaszech

2年前

我该如何测试液晶显示屏?