我有一个带有罗盘传感器的项目,每秒输出一次以度为单位的航向。值的更改将显示给用户
因此,当传感器从283度旋转到285度时,程序显示“2向上”,当传感器从163度旋转到152度时,程序显示“11向下”
我的问题是旋转超过359度。当compas从358度变为1度时,程序显示“357向下”,但我希望它显示“3向上”。我不知道如何做到这一点
另一方面也是一个问题,即从5到359,返回“354向上”,而不是“6向下”
这是我的密码:
# Input from compas sensor:
oldhdg = 358
newhdg = 1
# Calculating and displaying the value change:
if oldhdg == newhdg:
change = 0
flowdir = 'stay'
elif oldhdg > newhdg:
change = oldhdg-newhdg
flowdir = 'down'
elif newhdg > oldhdg:
change = newhdg-oldhdg
flowdir = 'up'
print(f'{change} {flowdir}')
输出:
357 down
>>>
从整体上考虑。所有三角洲都有两个值:“向上”和“向下”。您希望在所有情况下都返回这两个值中的较小值。编写一个这样做的函数
然后,您可以格式化以使现有值与另一个函数相匹配:
相关问题 更多 >
编程相关推荐