0

我很不擅长编码(我知道基础知识),我正在尝试在 Arduino 中创建一个伺服器阵列,以通过串行处理进行控制。我隐约记得 Arduino 微控制器的内存非常有限,所以我不确定创建一个伺服对象数组是否可行。这是我到目前为止的代码:

#include <Servo.h>

Servo[] servos = new Servo[6]; //holds the servo objects

int[] servoPos = {90,112,149,45,75,8}; //holds the current position of each servo

char serialVal; //store the serialValue received from serial

void setup()
{
  for(int i = 0; i < servos.length; i++) //attach servos to pins
  {
    servos[i].attach(i+8);
  }

  Serial.begin(115200); //initialize serial
}

Arduino Uno 板是否能够支持该阵列并像在 Java 中一样使用它?在此之前,我一直在单独创建每个对象,这样打字和阅读效率非常低且耗时。

另外,如果有任何事情会阻止此代码执行,请告诉我。我感谢您的帮助。

4

1 回答 1

0

我的建议是启动你的 Arduino IDE 并试一试。首先你会发现你的代码有一些问题:

您的数组语法不正确。例如:

int[] servoPos = {90,112,149,45,75,8}; //holds the current position of each servo

应该写成:

int servoPos[] = {90,112,149,45,75,8}; //holds the current position of each servo

我猜这servos.length是Java的东西?相反,您应该通过以下方式确定该值:

sizeof(servos) / sizeof(servos[0])

编译完成后,您将在 Arduino IDE 窗口底部的黑色控制台窗口中看到一条消息:

Sketch 使用 2408 字节(7%)的程序存储空间。最大值为 32256 字节。全局变量使用 242 字节 (11%) 的动态内存,为局部变量留下 1806 字节。最大值为 2048 字节。

因此,这将使您对内存使用情况有所了解。要在运行时检查可用内存,我使用这个库: https ://github.com/McNeight/MemoryFree

于 2017-01-05T04:50:36.090 回答