数组中的调用字段

我一直在为Arduino项目开发一些电机,并想知道是否有人可以帮助我。

我实际上是在尝试为数组中的事物指定HIGH / LOW属性。

这就是我要实现到数组中的内容。

  digitalWrite(in1,HIGH); // Motor 2
  digitalWrite(in2,LOW);  
  digitalWrite(in3,HIGH); // Motor 2
  digitalWrite(in4,LOW);  
  digitalWrite(in5,HIGH); // Motor 3
  digitalWrite(in6,LOW);
  digitalWrite(in7,HIGH); // Motor 4
  digitalWrite(in8,LOW);

我已经通过使用LOW标签使阵列工作,但是这告诉电机根本不旋转。

我希望能够将它们设置为这些值。 在我的代码中,我要编辑的数组使用motorsmtrPinmotorPin属性。

You can see it for reference here.

// Array of PWM's
int pwmPin = 0;
uint8_t pwms[] = {3,5,6,11};
byte numberPwms = 4;

// Array for motors channels
int mtrPin = 0;
uint8_t motors[] = {4,2,8,7,12,13,9,10};
byte motorPin = 8;

void setup()
{

  for (pwmPin = 0; pwmPin < numberPwms; pwmPin++){
      for (mtrPin = 0; mtrPin < motorPin; mtrPin++){
            pinmode(motors[mtrPin],OUTPUT);
        pinmode(pwms[pwmPin],OUTPUT);
        };
    }; 
}

void motorLoop(){
// setting the direction to turn and speed

//  digitalWrite(in1,HIGH); // Motor 2
//  digitalWrite(in2,LOW);  
//  digitalWrite(in3,HIGH); // Motor 2
//  digitalWrite(in4,LOW);  
//  digitalWrite(in5,HIGH); // Motor 3
//  digitalWrite(in6,LOW);
//  digitalWrite(in7,HIGH); // Motor 4
//  digitalWrite(in8,LOW);

// Set the speed for the Motors

  for(int pwmPin = 0; pwmPin < numberPwms; pwmPin++){
      for (mtrPin = 0; mtrPin < motorPin; mtrPin++){
            pinmode(motors[mtrPin],LOW);
        analogWrite(pwms[pwmPin],200);
      };
   };  
};

void loop()
{
  motorLoop();
  delay(500);

}
felixwoo80 回答:数组中的调用字段

如果您有4个电机,每个电机有2个插针,那么由8个元素组成的阵列是错误的。 了解struct或立即转到c ++ class

struct MotorPins {
 const byte DIR;
 const byte ON;
 const byte PWM; } motors[] = {
//DIR  ON PWM 
  {4,2,3 },{8,7,5 },{12,13,6 },{9,10,11}
};   

const byte mCount = sizeof(motors)/sizeof(motors[0]); // use in a classic for-loop

void setup (){
  for (MotorPins mp: motors) {
    pinMode(mp.DIR,OUTPUT);
    pinMode(mp.ON,OUTPUT);
  }
}
...
本文链接:https://www.f2er.com/3084385.html

大家都在问