problemas na compilaçao de codigo para arduino

estou tentando usar este codigo mas quando tento compilar aparece esta menssagem de erro

sketch_mar29d.ino: In function 'int getIRKey()':
sketch_mar29d.ino:215:38: error: invalid type argument of unary '*' (have 'int')
Erro ao compilar.

se me poderem ajudar agradeço

#include
Servo servoesq,servodir;
int irPin = 2;
int start_bit = 2200;
int bin_1 = 1000;
int bin_0 = 400;
void setup() {
pinMode(irPin, INPUT);
Serial.begin(9600);
Serial.println("Waiting: ");
servoesq.attach(10);
servodir.attach(9);
servoesq.write(89);
servodir.write(89);
}
void loop() {
int key = getIRKey();
if(key != 0)
{
Serial.print("Key Recieved: ");
switch(key)
{
case 146: Serial.print("Right");
servoesq.write(180);
servodir.write(150);
break;
case 147: Serial.print("Left");
servoesq.write(0);
servodir.write(10);

break;
case 148: Serial.print("Back");
servoesq.write(180);
servodir.write(10);
break;
case 165: Serial.print("Forward");
servoesq.write(0);
servodir.write(150);
break;
case 149:
Serial.print("Stop");
servoesq.write(89);
servodir.write(89);
break;
}
Serial.println();
}
}
int getIRKey() {
int data[12];
int i;
while(pulseIn(irPin, LOW) < start_bit);
for(i = 0 ; i < 11 ; i++)
data[i] = pulseIn(irPin, LOW);
for(i = 0 ; i < 11 ; i++)
{
if(data[i] > bin_1)
data[i] = 1;
else if(data[i] > bin_0)
data[i] = 0;
else
return -1;
}
int result = 0;
for(i = 0 ; i < 11 ; i++)
if(data[i] == 1) result |= (1i);
return result;
}

Exibições: 487

Responder esta

Respostas a este tópico

Oi Fredsant, boa tarde.

À primeira vista fatal o nome do arquivo que voce quer incluir.

"#include...????" 

Rui

Desculpe o erro   não é fatal é falta.

Rui

qundo copiei o codigo nao reparei que nao tinha passado o resto do include

Olá,

Faltava incluir a biblioteca servo:

#include <Servo.h>

Faltava as chaves de início e fim do laço for e um erro de digitação no lugar de 1i por !i:

for (i = 0 ; i < 11 ; i++)

 {

   if(data[i] == 1) result |= (!i);

   return result;

 }

}

O skecth ficou assim: 

#include <Servo.h>
Servo servoesq, servodir;
int irPin = 2;
int start_bit = 2200;
int bin_1 = 1000;
int bin_0 = 400;
void setup() {
pinMode(irPin, INPUT);
Serial.begin(9600);
Serial.println("Waiting: ");
servoesq.attach(10);
servodir.attach(9);
servoesq.write(89);
servodir.write(89);
}
void loop() {
int key = getIRKey();
if (key != 0)
{
Serial.print("Key Recieved: ");
switch (key)
{
case 146: Serial.print("Right");
servoesq.write(180);
servodir.write(150);
break;
case 147: Serial.print("Left");
servoesq.write(0);
servodir.write(10);
break;
case 148: Serial.print("Back");
servoesq.write(180);
servodir.write(10);
break;
case 165: Serial.print("Forward");
servoesq.write(0);
servodir.write(150);
break;
case 149:
Serial.print("Stop");
servoesq.write(89);
servodir.write(89);
break;
}
Serial.println();
}
}
int getIRKey() {
int data[12];
int i;
while (pulseIn(irPin, LOW) < start_bit);
for (i = 0 ; i < 11 ; i++)
data[i] = pulseIn(irPin, LOW);
for (i = 0 ; i < 11 ; i++)
{
if (data[i] > bin_1)
data[i] = 1;
else if (data[i] > bin_0)
data[i] = 0;
else
return -1;
}
int result = 0;
for (i = 0 ; i < 11 ; i++)
{
if(data[i] == 1) result |= (!i);
return result;
}
}

http://pastebin.com/iez372js

Agora os erros de sintaxe não existem mais, mas ainda pode haver erros de lógica no programa.

Abraço.

obrigado pela ajuda vou testar depois comento

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço