Hi , i was programing my robot , and its is ok, but when i puts servotimer2 and NECIRrcv in the same sketch, gives me a error.. ![]()
this error is:
Arduino: 1.5.6-r2 (Mac OS X), Placa:"Arduino Uno"
NECIRrcv/NECIRrcv.cpp.o: In function __vector_9': /Users/manuel/Documents/Arduino/libraries/NECIRrcv/NECIRrcv.cpp:81: multiple definition of __vector_9'
ServoTimer2/ServoTimer2.cpp.o:/Users/manuel/Documents/Arduino/libraries/ServoTimer2/ServoTimer2.cpp:43: first defined here
This report would have more information with
"Show verbose output during compilation"
enabled in File > Preferences.
someone can help me please? i was search information but don't find nothing...
the code is:
#include <ServoTimer2.h>
ServoTimer2 myservo;
ServoTimer2 myservo2;
#include <NECIRrcv.h>
#define sensor 4
NECIRrcv ir(sensor) ;
int pinI1 = 8; //define I1 interface
int pinI2 = 11; //define I2 interface
int speedpinA = 9; //enable motor A
int pinI3 = 12; //define I3 interface
int pinI4 = 13; //define I4 interface
int speedpinB = 10; //enable motor B
void setup() {
//motor
pinMode(pinI1, OUTPUT);
pinMode(pinI2, OUTPUT);
pinMode(speedpinA, OUTPUT);
pinMode(pinI3, OUTPUT);
pinMode(pinI4, OUTPUT);
pinMode(speedpinB, OUTPUT);
ir.begin();
myservo2.attach(6);
myservo.attach(7);
myservo.write(0);
myservo2.write(90);
}
//FUNCIONES
void adelante() {
analogWrite(speedpinA, 140);
analogWrite(speedpinB, 140);
digitalWrite(pinI4, LOW); //giro horario del motor B
digitalWrite(pinI3, HIGH);
digitalWrite(pinI2, HIGH); //giro antihorario del motor A
digitalWrite(pinI1, LOW);
}
void atras() {
analogWrite(speedpinA, 140);
analogWrite(speedpinB, 140);
digitalWrite(pinI4, HIGH); //giro horario del motor B
digitalWrite(pinI3, LOW);
digitalWrite(pinI2, LOW); //giro antihorario del motor A
digitalWrite(pinI1, HIGH);
}
void paro() {
analogWrite(speedpinA, 0);
analogWrite(speedpinB, 0);
digitalWrite(pinI4, LOW); //giro horario del motor B
digitalWrite(pinI3, HIGH);
digitalWrite(pinI2, HIGH); //giro antihorario del motor A
digitalWrite(pinI1, LOW);
}
void izquierda() {
analogWrite(speedpinA, 140);
analogWrite(speedpinB, 140);
digitalWrite(pinI4, HIGH); //giro horario del motor B
digitalWrite(pinI3, LOW);
digitalWrite(pinI2, HIGH); //giro antihorario del motor A
digitalWrite(pinI1, LOW);
}
void derecha() {
analogWrite(speedpinA, 140);
analogWrite(speedpinB, 140);
digitalWrite(pinI4, LOW); //giro horario del motor B
digitalWrite(pinI3, HIGH);
digitalWrite(pinI2, LOW); //giro antihorario del motor A
digitalWrite(pinI1, HIGH);
}
void loop() {
unsigned long ircode ;
unsigned long codigo;
ircode = ir.read() ;
//movimiento
if (ircode == 0xB946FF00) { //arriba
adelante();
}
if (ircode == 0xBF40FF00) { //OK
paro();
}
if (ircode == 0xEA15FF00) { //abajo
atras();
}
if (ircode == 0xBC43FF00) { //derecha
derecha();
}
if (ircode == 0xBB44FF00) { //izquierda
izquierda();
}
//abrir y cerras pinza
if (ircode == 0xE916FF00 ) { //1
myservo.write(60);//cerrar
}
if (ircode == 0xF30CFF00) { //4
myservo.write(140);//abrir
}
//subir y bajas el brazo
if (ircode == 0xE619FF00 ) { //2
myservo2.write(100);//sube
delay(200);
myservo2.write(90);//parado
}
if (ircode == 0xE718FF00 ) { //5
myservo2.write(80);//baja
delay(200);
myservo2.write(90);//parado
}
}
thanks ![]()