我是想用arduino UNO、舵机和超声波测距器做一个通过PID算法控制小球保持在中间的机器,但是arduino的板子不能提供太大的电流,所以一但小球速度过快,舵机就会过载,我尝试使用外接锂电池,可一但送电,舵机就转动到0度之后锁死,请问大家这是出了什么问题
![](https://profile-avatar.csdnimg.cn/default.jpg!4)
一接电,舵机就转动到固定角度之后锁死不动
我是想用arduino UNO、舵机和超声波测距器做一个通过PID算法控制小球保持在中间的机器,但是arduino的板子不能提供太大的电流,所以一但小球速度过快,舵机就会过载,我尝试使用外接锂电池,可一但送电,舵机就转动到0度之后锁死,请问大家这是出了什么问题
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
4条回答 默认 最新
关注
引自免费微信小程序:皆我百晓生
首先,让我们看看你的代码逻辑,你的程序目前可以实现将舵机角度锁定在一个固定的范围(比如30度)。但是当小球的速度超过这个范围,舵机会自动锁定,这可能是因为舵机的限流器设置不当,或者是舵机本身的固有特性。
为了确定原因并找到解决办法,我们需要检查你的电路图。在这个电路图中,我们可以看到舵机与电池之间的连接以及限流器的位置。
看起来你的限流器设计得非常简单,只考虑了静态电流限制。那么你是否已经确保电机的最大输出电流不会超过电池的能力?如果是这样,可能是由于过度供电导致的舵机过载。
接下来,我们来看看桨叶的角度。考虑到舵机是旋转的,其角应该是随着小球速度的变化而变化。现在来看一下桨叶的角度。你应该能看到,即使你在没有接电的情况下,也没有明显的速度变化。
因此,最有可能的原因是你在接电后没有改变桨叶的角度。那么你需要检查的是如何改变桨叶的角度,以及何时这样做?
一般来说,改变桨叶的角度可以通过控制电机的正向或反向电压来实现。当桨叶角度增大时,电机应逆时针旋转,反之亦然。至于何时改变角度,这就取决于你的系统需求。
这里有一个简单的示例代码,它演示了如何改变桨叶的角度和保持一定的速度:
# 初始化桨叶的角度 舵叶角度 = 30 # 控制电机的正向电压,使桨叶加速 舵机_voltage += 10 # 增加桨叶的角度,使其偏离初始角度 舵叶_angle += 10 # 如果桨叶角度大于设定值,立即停止改变 if舵叶_angle > 60: 舵叶_angle = 60 舵机_voltage -= 10 舵叶_angle -= 10 # 记录新的桨叶角度和速度 new舵叶_angle =舵叶_angle new_speed = speed + 0.1 * new舵叶_angle print("新舵叶角度:", new舵叶_angle) print("新速度:", new_speed)
以上代码仅供参考,实际应用中需要根据你的具体需求进行修改。
再次强调,这个问题最好由专业人士来解决,如果你对电路图不够熟悉,建议你找一个电路设计师帮助你检查和修复。同时,我也建议你在接电之前做一次充分的测试,以确保舵机能在没有外部输入的情况下正常工作。
解决 1无用
悬赏问题
- ¥20 c语言写的8051单片机存储器mt29的模块程序
- ¥60 求直线方程 使平面上n个点在直线同侧并且距离总和最小
- ¥50 java算法,给定试题的难度数量(简单,普通,困难),和试题类型数量(单选,多选,判断),以及题库中各种类型的题有多少道,求能否随机抽题。
- ¥50 rk3588板端推理
- ¥250 opencv怎么去掉 数字0中间的斜杠。
- ¥15 这种情况的伯德图和奈奎斯特曲线怎么分析?
- ¥250 paddleocr带斜线的0很容易识别成9
- ¥15 电子档案元素采集(tiff及PDF扫描图片)
- ¥15 flink-sql-connector-rabbitmq使用
- ¥15 zynq7015,PCIE读写延时偏大