Извините, что беспокою вас, но у меня возникли проблемы с выводом моего массива двигателей в этот код здесь.
// initialise motors
// Motor 1
//int in1 = 4;
//int in2 = 2 ;
// Motor 2
//int in3 = 8;
//int in4 = 7;
// Motor 3
//int in5 = 12;
//int in6 = 13;
// Motor 4
//int in7 = 9;
//int in8 = 10;
// Array of PWM's
int thisPin = 0;
uint8_t pwms[] = {3,5,6,11};
byte numberPwms = 4;
// Array for output channels
// Motor 1 (4 = High, 2 = Low)
// Motor 2 (8 = High, 7 = Low)
// Motor 3 (12 = High, 13 = Low)
// Motor 4 (9 = High, 10 = Low)
int mtrpin = 0;
uint8_t motors[] = {4,2,8,7,12,13,9,10};
byte motorPin = 8;
void setup()
{
// pinMode(in1, OUTPUT);
// pinMode(in2, OUTPUT);
// pinMode(in3, OUTPUT);
// pinMode(in4, OUTPUT);
// pinMode(in5, OUTPUT);
// pinMode(in6, OUTPUT);
// pinMode(in7, OUTPUT);
// pinMode(in8, OUTPUT);
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);
}
Мне удалось заставить первоначальный вызов работать, но теперь я превращаю все это в массивы. Мне удалось заставить его работать с ШИМ, но теперь, после добавления массива двигателей, он перестал работать и выдает это сообщение об ошибке.
В функции «Пустота установки ()»; 41:8: ошибка: 'pwmPin' не был объявлен в этой области 42:11: ошибка: 'mtrPin' не был объявлен в этой области В функции 'void motorLoop()'; 74:8: ошибка: «mtrPin» не был объявлен в этой области.
Я знаю, что ошибка, вероятно, будет очень простой, но я не могу найти, чтобы спасти свою жизнь.
Кроме того, циклы for были вызваны так, как они есть сейчас, и разделены, и я все еще получаю те же ошибки. Вы можете увидеть этот код по адресу https://www.tinkercad.com/things/fFQKRTjhDrb-motor-initial-turn/editel.
Любая помощь по этому вопросу будет принята с благодарностью :)
c++
нет типаbyte
(кромеstd::byte
изc++17
). Возможно, вы захотите использоватьunsigned char
- person Rhathin   schedule 15.11.2019