Problemas con libreria wiring y twi

Buenos dias,

Queria usar la libreria LibCompass para hacer una brújula, pero al compilar me dice:

[i]C:\Users\Ferran\Documents\libraries\Wire\Wire.cpp:26:19: fatal error: twi.h: No such file or directory
  #include "twi.h"

                  ^
compilation terminated.
exit status 1
Error compilando para la tarjeta Arduino/Genuino Uno.

He puesto tambien la libreria Wire y me dice lo mismo.

He provado de añadir también la libreria Servo y me sale esto:

C:\Users\Ferran\Documents\libraries\Servo/Servo.h:4:22: fatal error: WProgram.h: No such file or directory

#include <WProgram.h>

Yo lo unico que quiero es la libreria LibCompass para poder verlo en una pantalla lcd 128x64, y me he metido en un bosque lleno de librerias y sinsentidos!!

Espero que puedan ayudarme, muchas gracias.

Moderador: Errores editados con etiquetas

Mal presentado tu problema y cito los errores de tu consulta:

  1. No posteas todo tu código
  2. No indicas de donde bajaste la librería para que quien te responda pueda reproducir el problema.
  3. Siempre debes indicar en estos casos las version del IDE que estas usando.

Pero veamos si con lo que tenemos te puedo guiar

C:\Users\Ferran\Documents\libraries\Wire\Wire.cpp:26:19: fatal error: twi.h: No such file or directory
  #include "twi.h"

Ahi dice que no existe twi.h o que no esta donde debiera estar.
Sin embargo twi, pertenece a las librerías del IDE de modo que ese error suele estar por usar un sketch VIEJO con un IDE nuevo.

Y de nuevo…

C:\Users\Ferran\Documents\libraries\Servo/Servo.h:4:22: fatal error: WProgram.h: No such file or directory

#include <WProgram.h>

Eso se debe a que Servo YA ESTA en tu ide y ademas lo instalas mal.

Olvida todo, y busca en Ejemplos Servo y corre un ejemplo en tu IDE, si sigue dando error borra esta carpeta

C:\Users\Ferran\Documents\libraries\Servo

porque esta de mas

Ten cuidado porque solo hablo de Servo.
Respecto de LibCompass cuando nos des referencias te dará mi respuesta.

Hola, lo siento por los errores que he hecho. Aqui va el codigo del programa:

#include <Wire.h>
#include <LibCompass.h>
#include <Servo.h> 
LibCompass compass = LibCompass(0);

int radiocirculo=30;
int radiolinea= 18;
int centroX= 95;
int centroY= 31;
double seno;
double coseno;
double seno90;
double coseno90;
double seno270;
double coseno270;
double anguloDEG=0;
double anguloRAD=0;

Servo servo; 

void setup() {
 servo.attach(9);
 Serial.begin(115200); //por defecto el LCD trabaja a estos bps
 delay(4000);          //retardo de encendido del LCD
 borrar();             //borramos pantalla
 delay(50);
 
 //escribimos las cosas que no cambian en la pantalla
 coordenadas(0, 62);
 Serial.print("Brujula");
 coordenadas(12, 69);
 Serial.print(",");
 coordenadas(0, 54);
 Serial.print("BricoGeek");
 coordenadas(40, 42);
 Serial.print("o");
 coordenadas(0, 8);
 Serial.print("byTCRobotics");
 
}

void loop() {  

 
 //Borramos solo lo que cambia para mejorar el refresco
 linea (centroX,centroY, radiolinea*coseno+centroX, radiolinea*seno+centroY, 0); 
 coordenadas(25*coseno+centroX-2, 25*seno+centroY+3);
 Serial.print(" ");
 coordenadas(25*coseno270+centroX-2, 25*seno270+centroY+3);
 Serial.print(" ");
 coordenadas(-25*coseno+centroX-2, -25*seno+centroY+3);
 Serial.print(" ");
 coordenadas(25*coseno90+centroX-2, 25*seno90+centroY+3);
 Serial.print(" "); 
 coordenadas(26, 38);
 Serial.print("  ");

 //calculamos los angulos antes para optimizar la escritura en pantalla
 anguloDEG = compass.GetHeading();   //conseguimos el dato de orientacion
 anguloRAD = ((anguloDEG)*2*PI)/360; //convertimos a radianes
 coseno=   sin(anguloRAD);
 seno=     cos(anguloRAD);
 coseno90= sin(anguloRAD+PI/2*3);
 seno90=   cos(anguloRAD+PI/2*3);
 coseno270=sin(anguloRAD+PI/2);
 seno270=  cos(anguloRAD+PI/2);
 
 //pintamos el circulo y la linea
 circulo (centroX,centroY, radiocirculo, 1);
 linea (centroX,centroY, radiolinea*coseno+centroX, radiolinea*seno+centroY, 1);
 
 //escribimos las letras de las cuatro direcciones
 coordenadas(25*coseno+centroX-2, 25*seno+centroY+3);
 Serial.print("N");
 coordenadas(25*coseno270+centroX-2, 25*seno270+centroY+3);
 Serial.print("W");
 coordenadas(-25*coseno+centroX-2, -25*seno+centroY+3);
 Serial.print("S");
 coordenadas(25*coseno90+centroX-2, 25*seno90+centroY+3);
 Serial.print("E");
 
 //escribimos por ultimo el dato del angulo
 coordenadas(2, 38);
 Serial.print(anguloDEG);
 
 //servo.write(anguloDEG); 
 delay(500);
}



//////////////////////FUNCIONES LCD SERIAL//////////////////////////////////////////////

void borrar(){
 Serial.print(0x7C,BYTE);
 Serial.print(0x00,BYTE);
delay(20);
}


//cambia el baudrate. Si no conseguimos comunicarnos con el display
//podemos solucionarlo mandandole cualquier dato a 115200bps durante el arranque,
//mostrara en la pantalla 115200 y se autoajustara a esa velocidad
void cambiar_baudrate(char frec){  //"1" =  4.800bps "2" =  96,00bps
 Serial.print(0x7C,BYTE);         //"3" = 19,200bps "4" =  38,400bps 
 Serial.print(0x07,BYTE);         //"5" = 57,600bps "6" = 115,200bps
 Serial.print(frec,BYTE); 
 delay(20);
}

//coloca el puntero de escritura en la posicion que le indiquemos
void coordenadas(int x, int y){    //x de 0 a 127
 Serial.print(0x7C,BYTE);         //y de 0 a  63
 Serial.print(0x18,BYTE);
 Serial.print(x,BYTE);
 Serial.print(0x7C,BYTE); 
 Serial.print(0x19,BYTE);
 Serial.print(y,BYTE);
 //delay(20);
}

//dibuja o borra una linea
void linea (int desde_x, int desde_y, int hasta_x, int hasta_y, int on_off){ 
 Serial.print(0x7C,BYTE);             
 Serial.print(0x0C,BYTE);               
 Serial.print(desde_x,BYTE);
 Serial.print(desde_y,BYTE);
 Serial.print(hasta_x,BYTE);
 Serial.print(hasta_y,BYTE);  
 Serial.print(on_off,BYTE);
 //delay(20);
}

//dibuja o borra un circulo
void circulo (int x, int y, int radio, int on_off){ 
 Serial.print(0x7C,BYTE);             
 Serial.print(0x03,BYTE);               
 Serial.print(x,BYTE);
 Serial.print(y,BYTE);
 Serial.print(radio,BYTE);  
 Serial.print(on_off,BYTE);
 //delay(20);
 
}

La libreria de LibCompass la he sacado de aqui:

y la wire de aqui:

https://www.resistorpark.com/arduino-wire-library-download/

Y no se como ver las versiones de IDE que estoy usando.

Muchas gracias por todo

Lee el privado (arriba derecha) y edita tu post de acuerdo a las intrucciones.