Hello everybody
I have a little problem with my CMPS03.
I use an Arduino Duemilanove, and I have connected the compass like this:
This is my code, its very easy, but it doesn't work. I read the PWM signal, not the I2C...
#define out 13
#define compass 7
int input = 0;
int heading = 0;
void setup() {
pinMode(compass, INPUT);
pinMode(out, OUTPUT);
}
void loop() {
input = pulseIn(compass, HIGH); //Read Compass
heading = (input/1000-1)*10; //Transform into degrees
if(heading > 180) //When facing west,
{digitalWrite(out, HIGH);
delay(100); //Blink for 1/10 of a second
digitalWrite(out, LOW);
} else { //When facing east,
digitalWrite(out, HIGH);
delay(1000); //Blink for 1 second
digitalWrite(out, LOW);
}
}
It blinks almost only in 1 second intervals.
Can somebody enlighten me? Am I using wrong numbers?
Or could the controller create a magnetic field which influeces the compass?
This site was my reference: CMPS03 documentation
Thank you very much for your help.