Pages: [1]   Go Down
Author Topic: problema con il sensore CMPS03  (Read 376 times)
0 Members and 1 Guest are viewing this topic.
Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

sto provando questo sensore che dovrebbe funzionare come una bussola...
il problema è che va per un po', qualche secondo, e poi si blocca e per farlo ripartire devo resettare l'arduino...
il circuito l'ho montato così: http://www.robot-electronics.co.uk/htm/arduino_examples.htm#CMPS03 Magnetic Compass
mentre questo è il programma:

Code:
#include <Wire.h>
#define address 0x60 //defines address of compass

void setup(){
  Wire.begin(); //conects I2C
  Serial.begin(9600);
}

void loop(){
  byte highByte;
  byte lowByte;
  
   Wire.beginTransmission(address);      //starts communication with cmps03
   Wire.send(2);                         //Sends the register we wish to read
   Wire.endTransmission();

   Wire.requestFrom(address, 2);        //requests high byte
   while(Wire.available() < 2);         //while there is a byte to receive
   highByte = Wire.receive();           //reads the byte as an integer
   lowByte = Wire.receive();
   int bearing = ((highByte<<8)+lowByte)/10;
  
   Serial.println(bearing);
   delay(100);
}

c'è qualcuno che può aiutarmi? secondo voi quale potrebbe essere il problema??
« Last Edit: October 07, 2011, 11:42:40 am by er_like_no_other » Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10112
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

se mettu le resistenzze di pull-up esterne, devi disattivare quelle interne.

nella cartella di arduino ->libraries->Wire->utility apri il file twi.c

e commenta le righe
Code:
#if defined(__AVR_ATmega168__) || defined(__AVR_ATmega8__) || defined(__AVR_ATmega328P__)
    // activate internal pull-ups for twi
    // as per note from atmega8 manual pg167
    sbi(PORTC, 4);
    sbi(PORTC, 5);
  #else
    // activate internal pull-ups for twi
    // as per note from atmega128 manual pg204
    sbi(PORTD, 0);
    sbi(PORTD, 1);
  #endif
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

ho appena provato ma continua a bloccarsi smiley-confuse forse è un problema del programma perchè va per un po' e poi si ferma  smiley-mad
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Camisano Vicentino (VI), Italy
Offline Offline
God Member
*****
Karma: 4
Posts: 952
ƎR like no other.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

adesso sembra che vada... ma non ho cambiato niente... non so perchè non andava prima... mistero..
Logged

Riccardo Ertolupi of the Vicenza Thunders Team: http://www.VicenzaThunders.com

Pages: [1]   Go Up
Jump to: