0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

怎样用测力计自行车产生电压

454398 来源:网络整理 作者:佚名 2019-11-07 10:51 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第1步:材料:

1 Raspberry Pi 3;

1 Arduino Mega 2560;

1个带10个继电器12 V的继电器护罩;

10盏白炽灯127 V;

1个测力计自行车;

1电机(发电机)12 V;

电阻器(1x1kΩ,2x10kΩ);

1电解电容10μF;

1齐纳二极管5.3 V;

1.5毫米电缆(红色,黑色,棕色);

1支持10盏灯的MDF塔。

步骤2:系统框图:

怎样用测力计自行车产生电压

步骤3:系统操作:

该系统基于电动自行车骑行时产生的动能的转换,该电能负责启动将打开灯的继电器。

发生器产生的电压由Arduino的模拟引脚读取,并通过RX-TX发送到Raspberry Pi。继电器的激活与产生的电压成正比 - 电压越高,触发的继电器就越多,灯就会点亮。

步骤4:力学方面

为了将直流发电机机械地连接到自行车上,皮带系统必须由普通自行车上使用的系统(由表冠,链条和小齿轮组成)代替。将金属板焊接到自行车车架上,以便可以通过螺钉固定发动机。之后,将小齿轮焊接到发电机轴上,以便可以放置链条,将踏板系统与发电机互连。

步骤5:电压读数:

要使用Arduino读取发电机的电压,需要将电机的正极连接到控制器的A0引脚,将负极连接到GND - 以避免发电机的最大电压大于在控制器和发生器之间构建了5 V的Arduino引脚,一个使用10μF电容的电压滤波器,一个1kΩ的电阻和一个5.3 V的齐纳二极管。 Arduino中加载的固件非常简单,仅包括读取模拟端口,将读取的值乘以常数0.0048828125(5/1024,即Arduino的GPIO电压除以其模拟端口的位数)并发送变量到串行 - 代码将在文章中提供。

在Raspberry Pi中启用RX-TX通信的过程有点复杂,您必须按照链接中描述的过程进行操作。简而言之,您需要编辑名为“inittab”的文件 - 位于“/etc/inittab” - ,注释行“T0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100”(如果文件不是在Raspberry的操作系统中创建,您必须输入命令:“sudo leafpad/boot/config.txt”并将“enable_uart = 1”行附加到文件末尾。完成此操作后,必须重新打开LX终端并使用命令“sudo systemctl stop serial-getty@ttyS0.service”和“sudo systemctl disable serial-getty@ttyS0.service”禁用Serial。之后你必须执行命令“sudo leafpad/boot/cmdline.txt”,删除“console = serial0,115200”行,保存文件并重启设备。为了能够进行RX-TX通信,必须使用命令“sudo apt-get install -f python-serial”在Raspberry Pi上安装串行库,并通过插入“import serial”行将库导入代码中,通过插入行“ser = serial.Serial(”/dev/ttyS0“,9600)”来初始化串行,并使用命令“ser.readline()”读取Arduino发送的电压 - 使用的完整代码Raspberry中的内容将在本文末尾提供。

按照上述步骤,读取和发送电压步骤完成。

步骤6:Arduino编程

如前所述,负责读取循环时产生的电压的代码非常简单。

首先,有必要选择A0引脚作为负责读取电压。

在“void setup()”功能中,需要通过“pinMode(sensor,INPUT)”命令将引脚A0设置为INPUT并选择串口传输离子速度使用“Serial.begin(9600)”命令。

在“void loop()”中,“Serial.flush()”函数用于在每次终止发送时清除缓冲区信息通过串口;电压读数由“analogRead(sensor)”函数执行 - 记住有必要将模拟端口读取的值转换为Volts - 文章“读取电压”部分中引用的过程。

另外,在“void loop()”函数中,有必要将变量x从float转换为string,因为这是通过RX-TX发送变量的唯一方法。循环函数的最后一步是在串行端口中打印字符串,以便将其发送到Raspberry - 为此,您必须使用“Serial.println(y)”函数。 “delay(100)”行仅添加到代码中,以便以100 ms的间隔发送变量 - 如果不遵守此时间,将发生串行过载,从而在程序中生成可能的崩溃。

voltage_read.ino

float sensor = A0;

void setup (){

pinMode (sensor,INPUT);

Serial。 begin ( 9600 );

}

void loop (){

Serial。 flush ();

float x = analogRead (传感器)* 0.0048828125 * 16.67 ;

字符串y = ” “ ;

y + = x;

Serial。 println (y);

delay ( 100 》;

}

查看由GitHub托管的rawvoltage_read.ino

第7步:Raspberry Pi 3编程:

lamps_bike.py

import os #导入操作系统库(用于在必要时清除屏幕)

import RPi。 GPIO as gpio #导入库用于控制Raspnerry的GPIO

导入串行 #导入库负责串行通信

import 时间 #导入库,可以使用延迟功能

导入子进程 #导入库负责播放歌曲

# start serial

ser = serial.Serial( “/dev/ttyS0 “ , 9600 ) #定义设备名称和波特率

# clear screen

clear = lambda :os.system( ‘ clear ’ )

#设置引脚用于继电器控制

gpio.setmode(gpio。 BOARD )

gpio.setup( 11 ,gpio。 OUT ) #灯10

gpio .setup( 12 ,gpio。 OUT ) #指示灯9

gpio.setup( 13 ,gpio。 OUT ) #指示灯8

gpio.setup( 15 ,gpio。 OUT ) #灯7

gpio。设置( 16 ,gpio。 OUT ) #指示灯6

gpio.setup( 18 ,gpio。 OUT ) #指示灯5

gpio.setup ( 19 ,gpio。 OUT ) #指示灯4

gpio.setup( 21 ,gpio。 OUT ) #灯3

gpio.setup( 22 ,gpio。 OUT ) #指示灯2

gpio.setup( 23 ,gpio。 OUT ) #灯1

#开始记录

name = [ “无”] * 10

电压 = [ 0.00 ] * 10

#读取记录文件

f = 打开( ‘记录’ , ‘ r ’ )

i 范围( 10 ): #列表中出现10个最佳分数

name [i] = f.readline()

name [i] = name [i] [: len (name [i]) - 1 ]

voltage [ i] = f.readline()

电压[i] = 浮动(电压[i] [: len (电压[i]) - 1 ])

f.close()

clear()

#设置最大电压

max = 50.00

#关灯

for i in 范围( 11 , 24 , 1 ):

if i != 14 和 i != 17 和 i != 20 :

gpio.output(i,gpio。 HIGH ) #设置为HIGH,继电器关闭

# start

while True :

#初始屏幕

print ”记录: n “

i 范围( 10 ):

print name [i] , “:” ,电压[I], “ V ”

current_name = raw_input ( “将您的名字写下来开始:” )

clear()

#更改最大值

if current_name == “ max ” :

max = 输入( ”写下最大电压:( 2位小数)“ )

clear()

else :

#启动警告

for i in 范围( 11 , 24 , 1 ): #循环在PIN 11中启动并在PIN 24中停止

if i != 14 和 i != 17 和 i != 20 : # PIN 14和20是GND引脚,20是3.3 V引脚

gpio.output(i, gpio。低) #打开灯

time.sleep( 0.5 )

k = 10

for i in 范围( 23 , 10 , - 1 ):

clear()

if i != 14 和 i != 17 和 i != 20 :

subprocess.Popen ([ 的 aplay 的 , 的音像/的 + STR (k)的 + 的的.wav 的 ])

时间。睡眠( 0.03 )

clear()

打印 “准备《!跨度》 n ” ,k

时间。睡眠( 1 )

k - = 1

gpio.output(i,gpio。 HIGH ) #关灯(逐个)

subprocess.Popen( [ 的 aplay 的 , 的音像/go.wav 的 ]) #播放开始音乐

time.sleep( 0.03 )

clear()

打印 ” GO!“

time.sleep( 1 )

clear()

#电压读数

current_voltage = 0.00

voltage1 = 0.00

i 范围( 200 ):

ser.flushInput()

previous = voltage1

voltage1 = float (ser.readline()) #收集由RX-TX传输的Arduino数据

clear()

打印 voltage1, ” V “

if voltage1 》 current_voltage:

current_voltage = voltage1

#取决于产生的电压,更多灯点亮。

如果 voltage1 《 max / 10 :

for i 范围( 11 , 24 , 1 ):

if i != 14 和 i != 17 和 i != 20 :

gpio.output(i,gpio。 HIGH )

如果 voltage1 》 = max / 10 :

gpio.output( 11 ,gpio。 LOW )

i 范围( 12 , 24 , 1 ):

if i != 14 和 i != 17 和 i != 20 :

gpio.output(i,gpio。 HIGH )

if voltage1 》 = 2 * 最大 / 10 :

《 范围( 11 , 13 , 1 ):

gpio。输出(i,gpio。低)

for i 范围( 13 , 24 , 1 ):

如果 i != 14 和 i != 17 和 i != 20 :

gpio.output(i,gpio。 HIGH )

如果 voltage1 》 = 3 * max / 10 :

i 范围( 11 , 14 , 1 ):

gpio.output(i,gpio。 LOW )

i 范围( 15 , 24 , 1 ):

如果 i != 17 和 i != 20 :

gpio.output(i,gpio。 HIGH )

if voltage1 》 = 4 * max / 10 :

for i in 范围 ( 11 , 16 , 1 ):

if i != 14 :

gpio.output(i,gpio。 LOW )

for i 范围( 16 , 24 , 1 ):

if i != 17 和 i != 20 :

gpio.output(i,gpio。 HIGH )

if voltage1 》 = 5 * max / 10 :

范围 span》 11 , 17 , 1 ):

如果 i != 14 :

gpio.output(i,gpio。 LOW )

for i 范围( 18 , 24 , 1 ):

如果 i != 20 :

gpio.output(i,gpio。 HIGH )

如果 voltage1 》 = 6 * max / 10 :

for i 范围( 11 , 19 , 1 ):

if i != 14 和 i != 17 :

gpio.output(i,gpio。 LOW )

i 范围( 19 , 24 , 1 ):

如果 i != 20 :

gpio.output(i,gpio。 HIGH )

if voltage1 》 = 7 * 最大 / 10 :

for i in 范围( 11 , 20 , 1 ):

if i != 14 和 i != 17 :
责任编辑:wv

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

    关注

    133

    文章

    5531

    浏览量

    153792
  • 电机
    +关注

    关注

    143

    文章

    9486

    浏览量

    153185
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195975
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    锚索测力计测值突然漂移10%,如何快速定位是仪器还是电缆故障?

    在岩土工程与结构安全监测中,锚索测力计的稳定性至关重要。当监测数据显示测值突然漂移10%或更大时,迅速判断问题根源是保障工程安全的第一步。这通常意味着我们需要快速定位故障点:是测力计仪器本身损坏
    的头像 发表于 11-27 16:49 263次阅读
    锚索<b class='flag-5'>测力计</b>测值突然漂移10%,如何快速定位是仪器还是电缆故障?

    新国标电动自行车实施,BMS 静电浪涌风险与对策

    2025年9月1日,新国标电动自行车标准正式实施,对电动自行车的安全性、性能等方面提出了更高要求。在电动自行车的设计中,电池管理系统(BMS)至关重要,而静电浪涌问题对BMS的可靠性和稳定性构成严重威胁。作为上海雷卯电子的FAE
    的头像 发表于 09-05 17:17 3443次阅读
    新国标电动<b class='flag-5'>自行车</b>实施,BMS 静电浪涌风险与对策

    锚索测力计安装时如何确保测力计轴线与锚索100%同轴?

    在桥梁、大坝、边坡等重大工程的预应力锚固监测中,锚索测力计的数据准确性直接关系到结构安全。而实现精准监测的首要条件,是确保测力计轴线与锚索100%同轴。轴线偏差会导致仪器受力不均,轻则数据失真,重则
    的头像 发表于 08-20 11:08 524次阅读
    锚索<b class='flag-5'>测力计</b>安装时如何确保<b class='flag-5'>测力计</b>轴线与锚索100%同轴?

    锚索测力计取基准值时温度波动如何应对?

    锚索测力计取基准值时温度波动如何应对?南京峟思生产的VWA型测力计具备温度自动补偿功能(修正系数b极小,通常无需手动修正),但温度剧烈变化仍会通过热胀冷缩效应影响钢筒及应变,干扰基准值获取。那么
    的头像 发表于 08-18 11:26 432次阅读
    锚索<b class='flag-5'>测力计</b>取基准值时温度波动如何应对?

    锚索测力计基准值测量为何取3次?

    在锚索测力计的安装和使用中,基准值的准确性直接影响后续荷载监测结果的可靠性。规范要求选取相同时间、稳定气温下3次相近读数取平均作为基准值,其核心原因如下:消除随机误差:单次测量易受读数仪瞬时波动
    的头像 发表于 08-15 15:29 344次阅读
    锚索<b class='flag-5'>测力计</b>基准值测量为何取3次?

    电动自行车充电桩消防数据监管平台优势解析

    近年来,电动自行车因其便捷、环保等特点,成为众多居民日常出行的首选交通工具。然而,电动自行车充电引发的火灾事故却屡见不鲜。在某老旧小区,居民将电动自行车推至楼道内充电,充电过程中电池突然起火,火势
    的头像 发表于 06-11 15:36 524次阅读

    充电桩安全用电消防系统:为电动自行车保驾护航

    在绿色低碳出行的浪潮下,电动自行车以其便捷、环保的特点,成为了许多人短途出行的首选。然而,随着电动自行车数量的激增,充电问题也日益凸显,特别是充电桩的安全用电和消防问题,更是成为了社会关注的焦点
    的头像 发表于 04-01 14:11 583次阅读

    GB17761-2024 电动自行车测速测距试验装置

    一、概述:JB-2300A系列电动自行车测速测距装置,是上海久滨仪器有限公司自主开发研制的以高性能单片机为核心的智能化测试仪器,配合实时多任务操作系统,用以测试电动自行车的行驶车速、车速限值、提示音
    的头像 发表于 03-31 16:34 755次阅读
    GB17761-2024 电动<b class='flag-5'>自行车</b>测速测距试验装置

    自行车遇上了树莓派

    随着Brompton折叠自行车的知名度飙升,RaspberryPi帮助该公司在伦敦的制造工厂实现了具有挑战性的生产目标。解决方案树莓派4及更早型号企业规模大型企业行业自行车制造Brompton折叠
    的头像 发表于 03-25 09:39 436次阅读
    当<b class='flag-5'>自行车</b>遇上了树莓派

    锚索测力计安装及后续维护全指南

    在结构工程中,锚索测力计作为一种重要的监测设备,被广泛应用于桥梁、建筑、隧道等大型工程的锚索张力监测中。其安装过程不仅关乎数据的准确性,还直接影响到工程的安全性和稳定性。南京峟思将详细介绍锚索测力计
    的头像 发表于 02-25 13:41 882次阅读
    锚索<b class='flag-5'>测力计</b>安装及后续维护全指南

    电动自行车充电桩:便捷充电,安全出行新选择

    在城市的大街小巷,电动自行车以其灵活便捷、环保节能的特点,成为众多居民日常出行的首选交通工具。然而,随着电动自行车保有量的不断增加,充电难、充电不安全等问题也日益凸显。电动自行车充电桩应运而生,为
    的头像 发表于 02-20 14:13 1163次阅读

    振弦式锚索测力计测量出来的数据表示什么意思?

    在广袤的山川之间,桥梁飞架、隧道穿行,各类大型建筑拔地而起。而在这些工程背后,有一类毫不起眼却身负重任的“安全卫士”——振弦式锚索测力计,时刻监测着工程结构的稳定状况,为我们的安全保驾护航。振弦式
    的头像 发表于 02-14 16:06 628次阅读
    振弦式锚索<b class='flag-5'>测力计</b>测量出来的数据表示什么意思?

    振弦式锚索测力计:解读工程安全的“弦外之音”

    在桥梁、基坑、边坡、隧道和建筑等复杂多变的工程结构中,如何精准地监测锚索、钢缆、锚杆等张拉结构的张力或压力,是确保工程安全稳定的关键。振弦式锚索测力计,作为一种高精度、高可靠性的测力仪器,正扮演着
    的头像 发表于 02-13 14:45 736次阅读
    振弦式锚索<b class='flag-5'>测力计</b>:解读工程安全的“弦外之音”

    电动自行车充电桩智慧消防监管平台:守护安全,智领未来

    在城市化进程不断加速的今天,电动自行车以其便捷、环保的特点,成为了众多市民出行的首选。然而,随着电动自行车数量的激增,其充电安全问题也日益凸显。为了有效应对电动自行车充电引发的火灾风险,智慧消防监管
    的头像 发表于 12-25 11:43 1096次阅读

    充电桩消防数据监管平台在街道电动自行车棚的解决方案

    随着电动自行车的普及,街道电动自行车棚的数量不断增加,为居民提供了便利的充电服务。然而,电动自行车棚的消防安全问题也日益凸显,火灾事故时有发生,给人们的生命财产安全带来了严重威胁。为了加强电动
    的头像 发表于 12-10 16:06 908次阅读