arduino-uno - 如何使两个 Helm 机朝相反方向移动?

标签 arduino-uno robotics servo

我正在尝试为 Arduino 项目制作 ARM 肌肉系统的模型,但为了实现这一目标,我需要二头肌三头肌 向相反方向移动。

我目前正在尝试使用电位器并尝试制作两个 servos朝相反的方向移动,但不知怎的,代码似乎没有像我预期的那样工作,因为它们一直朝相同的方向移动。

我的电源是我的笔记本电脑,我还没有使用电池组。至于具体问题, Helm 机没有响应电位计,它们只是抖动

#include <Servo.h>

Servo Bicep;
Servo Tricep;
Servo Extensor;
Servo Flexor;

int pos = 0;
int biceppin = 3;
const int triceppin = 4;
const int extensorpin = 5;
const int flexorpin = 6;
int potpin = 8;
int potval = 0;
int potval2;

void setup() {
  Bicep.attach(biceppin);
  Tricep.attach(triceppin);
  Extensor.attach(extensorpin);
  Flexor.attach(flexorpin);
 }

void loop() {
 potval = analogRead(potpin);
 potval = map(potval, 0, 1023, 0, 180);
 potval2 = 180 - potval;
 Bicep.write(potval);  
 Tricep.write(potval2);
 delay(15);
}
  • 您能告诉我代码有什么问题吗?
  • 是否有更有效的方法来完成相同的任务?

最佳答案

您设置了 potpin = 8,但 analogRead() 仅适用于模拟输入 A0-A5 并且在大多数板上,包括标记的 Arduino Uno 板,引脚 8数字引脚

relevant quote:

[...] you cannot use analogRead() to read a digital pin. A digital pin cannot behave as analog because it isn't connected to the ADC (Analog to Digital Converter).

您可以使用 https://www.arduino.cc/en/Reference/AnalogRead 的示例来测试这一点

关于arduino-uno - 如何使两个 Helm 机朝相反方向移动?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42382184/

相关文章:

javascript - Arduino 上的以太网 Web 服务器,具有动态数据

c - Arduino 连接运算符使字符串为空

rust - 如何使用 html5ever 解析页面、修改 DOM 并序列化它?

c++ - 如何在 Windows Phone 8.1 中通过蓝牙连接发送字符

用于 ADC 的 Arduino 3.3v 引用

c++ - 在 eclipse c/c++ 中使用 winavr gcc 时遇到问题

opencv - 使用 OpenCV SolvePnP 的高架相机姿态估计导致几厘米的高度偏移

filter - 如何确定互补滤波器的参数alpha?

arduino - 在 Arduino 中重新声明为不同类型的符号