Hallo!
Ich habe es mir momentan als Ziel gesetzt einen 3D gedruckten Joystick mit einem Arduino umzusetzen.
Bin bereits mit dem CAD-Design fast fertig:
Heute is der Sensor angekommen und ich wollte schauen ob alles funktioniert.
Und da ich hier schreibe ist es ja offensichtlich, dass es nicht funktioniert.
Ich habe die Anleitung nach Sparkfuns Hompage befolgt, da es das gleiche pcb desgin für das breakout module ist. (Qwiic Magnetometer (MLX90393) Hookup Guide - SparkFun Learn)
/*
3.3V = 3.3V
GND = GND
SDA = A4
SCL = A5
*/
#include <Wire.h>
#include <MLX90393.h>
MLX90393 mlx;
MLX90393::txyz data; //Create a structure, called data, of four floats (t, x, y, and z)
void setup()
{
Serial.begin(9600);
Serial.println("MLX90393 Read Example");
Wire.begin();
//Connect to sensor with I2C address jumpers set: A1 = 1, A0 = 0
//Use DRDY pin connected to A3
//Returns byte containing status bytes
byte status = mlx.begin(1, 0, A3);
delay(2000);
//Report status from configuration
Serial.print("Start status: 0x");
if(status < 0x10) Serial.print("0"); //Pretty output
Serial.println(status, BIN);
mlx.setGainSel(1);
mlx.setResolution(0, 0, 0); //x, y, z
mlx.setOverSampling(0);
mlx.setDigitalFiltering(0);
//See MLX90393.h and .cpp for additional functions including:
//set/getOverSample, set/getTemperatureOverSample, set/getDigitalFiltering, set/getResolution
//set/getTemperatureCompensation, setOffsets, setWThresholds
}
void loop()
{
mlx.readData(data); //Read the values from the sensor
Serial.print("magX[");
Serial.print(data.x);
Serial.print("] magY[");
Serial.print(data.y);
Serial.print("] magZ[");
Serial.print(data.z);
Serial.print("] temperature(C)[");
Serial.print(data.t);
//Serial.print("] status[");
//Serial.print(status);
Serial.print("]");
Serial.println();
delay(100);
}
Als Arduino benutze ich einen Leonardo und der Sensor ist von Melaxis MLX90393.
Wenn ich alles nach Anleitung anstecke bekomme ich am seriellen Monitor "Start status: 0x11111111"
ausgegeben und mehr nicht.
Wenn ich den Sensor vom Breadboard abstecke oder ihn im setup falsch initalisiere bekomme ich unrealistische Werte ausgegeben (wie 440°C bei Raumtemperatur von 22°C).
Mir würde das Verhalten sagen, dass der Sensor (bei richtigem Anschluss/Code) etwas macht aber nicht aus dem setup raus kommt oder im Loop die Daten nicht an den Arduino bekommt.
Ich würde mich wirklich freuen wenn mir jmd. damit helfen könnte oder mir Lösungsansätze vorschlägt.
Mit dem Herstellerdatenblatt oder der benutzen Bibliothek komme ich mit meinem Verständnis nicht sehr weit.
Hier Bilder von meinem Aufbau:
Der Sensor wird durch eine Netzteil mit 3.3V versorgt und Sensor, Netzteil und Arduino haben alle das gleiche Nullpotential.



