boa Noite amigos, necessito de uma ajuda na minha programação (eis ela abaixo):
meu projeto seria para controlar 2 motores de passo cada um controlado por 1 potenciômetro de b10k. creio que deve ter muitos erros para controlar os motores .. além destes que já identifiquei. alguém pode me ajudar?

/*********************************************
Projeto Guindaste com eletro-imã
controlado por Arduino

UNIP - GO
***********************************************
* Programa para acionar um motor de passo
* Trata-se de um motor de passo unipolar com 5 fios:
*
* - vermelho: alimentação, 5V pareceu-me bem
* - laranja e preto: bobina 1
* - marrom e amarelo: bobina 2

*/

int motorPins[] = {4, 5, 6, 7};
int motorPins2[] = {8, 9, 10, 11};
int count = 0;
int count2 = 0;
int delayTime = 500;
int val = 0;
int analogpin = A0;
int analogpin2 = A1;

void setup() {
for (count = 0; count < 4; count++) {
pinMode(motorPins[count], OUTPUT);
pinMode(motorPins2[count], OUTPUT);
}
}

void moveForward() {
if ((count2 == 0) || (count2 == 1)) {
count2 = 16;
}
count2>>=1;
for (count = 3; count >= 0; count--) {
digitalWrite(motorPins[count], count2>>count&0x01);
digitalWrite(motorPins2[count], count2>>count&0x01);
}
delay(delayTime);
}

void moveBackward() {
if ((count2 == 0) || (count2 == 1)) {
count2 = 16;
}
count2>>=1;
for (count = 3; count >= 0; count--) {
digitalWrite(motorPins[3 - count], count2>>count&0x01);
digitalWrite(motorPins2[3 - count], count2>>count&0x01);
}
delay(delayTime);
}

void loop() {
val = analogRead(analogpin); //le o valor analógico pino A0
val = analogRead(analogpin2); //le o valor analógico pino A1

analogWrite(motorPins[], val); //aciona o motor com o valor analógico lido
analogWrite(motorPins2[], val); //aciona o motor2 com o valor analógico lido

if (val > 540) {
// quanto maior o valor no potenciômetro, mais rápido
delayTime = 2048 - 1024 * val / 512 + 1;
moveForward();
} else if (val < 480) {
// quanto menor o valor no potenciômetro, mais devagar
delayTime = 1024 * val / 512 + 1;
moveBackward();
} else {
delayTime = 1024;
}
}

_____________________________________________________________

só que da um error na parte do VOID LOOP na linha 61/ 62 (abaixo) .
"
analogWrite(motorPins[], val);
analogWrite(motorPins2[], val); "

o error descrito é :

"Arduino: 1.7.7 (Windows 8.1), Placa:"Arduino Uno"

sketch_oct22a.ino: In function 'void loop()':

sketch_oct22a.ino:61:24: error: expected primary-expression before ']' token

sketch_oct22a.ino:62:25: error: expected primary-expression before ']' token

"

no mais pode me ajudar a corrigir este erro?

agradeço a atenção.

imagem de w_blake
w_blake sex, 23/10/2015 - 07:46

Nas linhas :

analogWrite(motorPins[], val); //aciona o motor com o valor analógico lido
analogWrite(motorPins2[], val); //aciona o motor2 com o valor analógico lido

é necessário colocar algum valor dentro das chaves [] , pois se ficar sem definição aparece o erro de compilação