ISO C++ forbids comparison between pointer and integer [-fpermissive]

Prezados amigos, bom dia!

O erro descrito no título dessa postagem ocorre quando tento compilar a seguinte função:

//FUNÇÃO 05: OPERAÇÃO NORMAL DO MOTOR.

void operacao(char sentido, char eixo, int passos) {

int giraMotor = {0, 0, 0, 0};
int velOper = 15;

if ((sentido == “clock”) && (eixo == “horizontal”)) {
giraMotor = {19, 21, 22, 23};
}

else if ((sentido == “counterclock”) && (eixo == “horizontal”)) {
giraMotor = {23, 22, 21, 19};
}

else if ((sentido == “clock”) && (eixo == “vertical”)) {
giraMotor = {15, 2, 4, 5};
}

else if ((sentido == “counterclock”) && (eixo == “vertical”)) {
giraMotor = {5, 4, 2, 15};
}

digitalWrite(giraMotor[0], HIGH); //ACIONA BOBINA DO INPUT 1 DO MOTOR 28BJY-48 HORIZONTAL.
delay(velOper); //PAUSA PARA A MOVIMENTAÇÃO DO MOTOR E PROCESSAMENTO DA ESP-32.
digitalWrite(giraMotor[0], LOW); //DESLIGA BOBINA DO INPUT 1 DO MOTOR 28BJY-48 HORIZONTAL.

digitalWrite(giraMotor[1], HIGH); //ACIONA BOBINA DO INPUT 2 DO MOTOR 28BJY-48 HORIZONTAL.
delay(velOper); //PAUSA PARA A MOVIMENTAÇÃO DO MOTOR E PROCESSAMENTO DA ESP-32.
digitalWrite(giraMotor[1], LOW); //DESLIGA BOBINA DO INPUT 2 DO MOTOR 28BJY-48 HORIZONTAL.

digitalWrite(giraMotor[2], HIGH); //ACIONA BOBINA DO INPUT 3 DO MOTOR 28BJY-48 HORIZONTAL.
delay(velOper); //PAUSA PARA A MOVIMENTAÇÃO DO MOTOR E PROCESSAMENTO DA ESP-32.
digitalWrite(giraMotor[2], LOW); //DESLIGA BOBINA DO INPUT 3 DO MOTOR 28BJY-48 HORIZONTAL.

digitalWrite(giraMotor[3], HIGH); //ACIONA BOBINA DO INPUT 4 MOTOR 28BJY-48 HORIZONTAL.
delay(velOper); //PAUSA PARA A MOVIMENTAÇÃO DO MOTOR E PROCESSAMENTO DA ESP-32.
digitalWrite(giraMotor[3], LOW); //DESLIGA BOBINA DO INPUT 4 DO MOTOR 28BJY-48 HORIZONTAL.

}

Alguém sabe do que se trata?
Muito obrigado!

Só dá pra usar sinal de igualdade (==) em objeto String. A função operacao(char sentido, char eixo, int passos) está errada. Se você quer passar um array de char, precisa ser um ponteiro:
operacao(char *sentido, char *eixo, int passos)

A comparação deve ser feita assim:
if (strcmp(“clock”,sentido) == 0) && strcmp(eixo, “horizontal”) == 0)

Se quiser saber mais sobre ponteiros, dê uma lida na série que iniciei:

1 curtida

MUITO obrigado pela dica!
Estou aprendendo ainda (da pra perceber), e essa cabeçada foi a primeira de muitas!

Um abraço!

1 curtida