range valori accelerometro

Ciao

ho un dubbio su i valori di un accelerometro.

Il mio accelerometro è un 16 bit (quindi 65535 valori) con una sensitività di -2 / + 2 g.

Questi sono alcuni valori tipici che vado a leggere:

65 423 - 64 912 - 16 0766
325 - 61 613 48 338

l'ho ruotato e ho ottenuto:
49 281 - 2579 - 64 257
16 279 - 1542 - 64 723

ruotandolo ancora:

64 153 - 15 968 - 1978
60 276 - 49 573 - 1896

I valori di un asse vanno bene (intorno ai 16 mila e ai 49 mila) anche perchè il dispositivo è leggermente inclinato.

Non capisco i valori degli assi che dovrebbe essere paralleli alla superficie: perchè danno valori intorno al - 2 e al 2 g invece di dare valori intorno ai 32 768 (lo 0 g)

La mia supposizioen a questo punto è che consideri 65 mila come 0 g, passi a 49 come 1 g e infine arrivi a 32 come 2 g.
Poi riparta dai valori sotto a 32 mila considerandoli come g negativa massima (circa - 2 g) e salva a 16 mila come - 1g fino ad arrivare di nuovo a 0 g con valori prossimi allo 0.

Cioè la g cresca in valore assoluto verso il centro dell'intervallo (32 mila).

E' possibile secondo voi?

  1. presentati
  2. dacci il modello di accelerometro.
    Ciao Uwe

uwefed:

  1. presentati
  2. dacci il modello di accelerometro.
    Ciao Uwe

ciao :smiley:

ops la presentazione vero. maleducato che sono :smiley:

l'accelerometro è un LSM6DSL della ST

il datasheet:
https://www.st.com/resource/en/datasheet/lsm6dsl.pdf
non ho trovato l'informazione che mi serve

Secondo me devi fare una taratura

Il valore dato dal sensore é un numero con segno e percui non da 0 a 65535 ma da -32768 a 32767
vedi: Complemento a due - Wikipedia

L' accelerometro dovrebbe dare un + o - 16000 su un asse e ca 0 sugli altri 2 se é posto in piano.

Ciao Uwe

uwefed:
Il valore dato dal sensore é un numero con segno e percui non da 0 a 65535 ma da -32768 a 32767
vedi: Complemento a due - Wikipedia

L' accelerometro dovrebbe dare un + o - 16000 su un asse e ca 0 sugli altri 2 se é posto in piano.

Ciao Uwe

si credo che l'errore sia questo.
sto leggendo senza segno (ovvero tutti positivi) e quindi il -2 invece di essere -32768 diventa 65000.
sto facendo ora le conversioni numeriche per verificare questa ipotesi.

grazie mille :slight_smile:

Dovresti risolvere mettendo il valore in un int non in un unsigned int.
Ciao Uwe