CENTRAL DE ATENDIMENTO
De segunda à sexta das 8:00 às 17:30
(11) 3522-7626 / vendas@robocore.net
Retornar
ao topo

Classifique este tópicoPéssimoRuimMedianoBomÓtimo
Autor
Mensagem
3
Tibanamurilo

Level 0
0 xp

Registrado em:
06/11/2019





Mensagens:
1
3
Tibanamurilo

Responder com citações
Mensagem Qua Nov 06, 2019 4:56 pm
Recebendo o mesmo valor para o sensor HMC5883L
Oi gente!

Comecei recentemente a montar alguns projetos com arduino, e comprei o sensor HMC5883L para poder medir alguns campos magnéticos, mas ao rodar o código recebo sempre os mesmos valores.

Esse é o codigo que estou usando:

#include <Wire.h>
#include <HMC5883L.h>
 
HMC5883L compass;

int error = 0;
int ledpin = 13;

void setup()
{
  Serial.begin(9600);
pinMode(ledpin, OUTPUT);
  Serial.println("Starting the I2C interface.");
  Wire.begin(); // Start the I2C interface.
 
 Serial.println("Constructing new HMC5883L");
  compass = HMC5883L(); // Construct a new HMC5883 compass.
 
  Serial.println("Setting scale to +/- 1.3 Ga");
  error = compass.SetScale(1.3); // Set the scale of the compass.
  if(error != 0) // If there is an error, print it out.
    Serial.println(compass.GetErrorText(error));
 
  Serial.println("Setting measurement mode to continous.");
  error = compass.SetMeasurementMode(Measurement_Continuous); // Set the measurement mode to Continuous
  if(error != 0) // If there is an error, print it out.
    Serial.println(compass.GetErrorText(error));
}
 

void loop()
{
 
  MagnetometerRaw raw = compass.ReadRawAxis();
 
  MagnetometerScaled scaled = compass.ReadScaledAxis();
 
  int MilliGauss_OnThe_XAxis = scaled.XAxis;// (or YAxis, or ZAxis)
 
  float heading = atan2(scaled.YAxis, scaled.XAxis);
 
  float declinationAngle = 0.3764;
  heading += declinationAngle;

  if(heading < 0)
    heading += 2*PI;
   
  if(heading > 2*PI)
    heading -= 2*PI;
  
  float headingDegrees = heading * 180/M_PI; 
  Output(raw, scaled, heading, headingDegrees);
}
 
void Output(MagnetometerRaw raw, MagnetometerScaled scaled, float heading, float headingDegrees)
{
   Serial.print("Raw:\t");
   Serial.print(raw.XAxis);
   Serial.print("   ");   
   Serial.print(raw.YAxis);
   Serial.print("   ");   
   Serial.print(raw.ZAxis);
   Serial.print("   \tScaled:\t");
   
   Serial.print(scaled.XAxis);
   Serial.print("   ");   
   Serial.print(scaled.YAxis);
   Serial.print("   ");   
   Serial.print(scaled.ZAxis);
 
   Serial.print("   \tHeading:\t");
   Serial.print(heading);
   Serial.print(" Radians   \t");
   Serial.print(headingDegrees);
   Serial.println(" Degrees   \t");
  delay(1000);
}
Mostrar mensagens desde a última:




Ir para:  
Todos os horários são GMT - 3 HorasVocê não tem permissão para escrever novas mensagens
v não tem permissão para responder às mensagens
Você não tem permissão para editar suas mensagens
Você não tem permissão para deletar suas mensagens
Você não tem permissão para classificar tópicos
Você não tem permissão para classificar mensagens
Você não tem permissão para votar em enquetes
Anexar downloads : Proibido
Fazer Download de Arquivos: Proibido
Powered by phpBB © 2001 phpBB Group