Arduino Forum

International => Français => Topic started by: naturox on Apr 18, 2019, 11:44 am

Title: Soucis avec Arduino Uno et l'inclinomètre de Murata SCA103-D04 en SPI
Post by: naturox on Apr 18, 2019, 11:44 am
Bonjour à tous,

je travaille actuelement sur un petit projet qui consiste à determiner un angle d'inclinaison à l'aide du capteur SCA103T-D04 de Murata.

J'utilise l'arduino comme micocontrolleur et j'tulise l'interface SPI pour lire les données.

J'ai fait les connections suivantes :

- la broche 13 de Arduino avec la broche 1 de l'inclinometre.
- la broche 12 de Arduino avec la broche 3 de l'inclinometre.
- la broche 11 de Arduino avec la broche 4 de l'inclinometre.
- la broche 10 de Arduino avec la broche 7 de l'inclinometre.

- la broche 12 de l'inclinometre à la broche 5v de Arduino.
- la broche 6 de l'inclinometre à la broche GND de Arduino.

En piece jointe une image du cablage et le Data sheet du capteur que j'utilise

J'utilise le code suivant pour établir la communication entre Arduino et le capteur :

Code: [Select]


/*
Programme de lecture des données
Alimentation de 5 V via Aruino
Dout=RDAX-RDAY
Angle  = arcsin((Dout-Dout0)/Sens)
Dout0=0
Sens=6554(Pour le SCA103T-D04)

Serial communication, data output program
* CS - to digital pin 10 (SS pin)
* SDI - to digital pin 11 (MOSI pin)
* SDI - to digital pin 12 (MISO pin)
* CLK - to digital pin 13 (SCK pin)
*/

#include <SPI.h>
#include <math.h>

const int csbPin = 10;

void setup()
{
// Defini la broche 10 en sortie
pinMode (csbPin, OUTPUT);
// initialise le  SPI:
Serial.begin(9600);
SPI.begin();
SPI.setBitOrder(MSBFIRST);
SPI.setDataMode(SPI_MODE0);
delay(1000);
}

void loop() {
int RDAX,RDAY;   // Valeurs en X et en Y données par l'inclinometre
double angle;      // Variable de l'angle
digitalWrite(csbPin,LOW);
RDAX=SPI.transfer(0x10); // Lecture de la valeur en X
RDAY=SPI.transfer(0x11); // Lecture de la valeur en Y
Serial.print("Valeur de X : ");
Serial.println(RDAX);  // Affichage de la valeur de X
Serial.print("Valeur de Y : ");
Serial.println(RDAY);  // Affichage de la valeur de Y
angle=asin(((RDAX-RDAY)-0)/6554);
Serial.print("Valeur de l'angle : ");
Serial.print(angle);
digitalWrite(csbPin,HIGH);
delay(1000);
}





Le code s'execute sans probleme mais j'obtiens pour 4 Cycles ces Valeurs :

Valeur de X : [0 0 0 0]

Valeur de Y : [123 124 125 126 ]

Valeur de l'angle : [0 0 0 0 ].

Le soucis est que en position horizontale j'aurais du Obtenir :

Valeur de X : 1024

Valeur de Y : 1024

Valeur de l'angle : 0.



je ne sais pas si c'est parce que je n'ai pas mis le condensateur de 100nF à la broche 12 (Vcc) de l'inclinometre ou si il y'a une erreur dans mon code.

A l'aide d'un multimètre j'ai vérifié que l'alimentation etait bien de 5v mais elle est environ 4,9 V . je ne sais pas si cela peut aussi etre source de problèmes.

Lorsque je déplace le capteur il ya une variation de la valeur en Y mais toujours pas de l'ordre souhaité.


Comment puis je déterminer d'ou provient l'erreur ou éffectuer un test sur mon capteur ?

 

Merci à tous de bien vouloir  m'aider.
naturox



Title: Re: Soucis avec Arduino Uno et l'inclinomètre de Murata SCA103-D04 en SPI
Post by: J-M-L on Apr 18, 2019, 11:54 am
euh... j'ai quelques doutes....

Quote
- la broche 13 de Arduino avec la broche 1 de l'inclinometre.
- la broche 12 de Arduino avec la broche 1 de l'inclinometre.
- la broche 11 de Arduino avec la broche 1 de l'inclinometre.
- la broche 10 de Arduino avec la broche 1 de l'inclinometre.
Title: Re: Soucis avec Arduino Uno et l'inclinomètre de Murata SCA103-D04 en SPI
Post by: naturox on Apr 18, 2019, 12:01 pm
Bonjour et Merci,

C'est juste une erreur du au copier coller que j'ai fait en saisissant.

J'ai corriger le post.

Merci pour la remarque.

Title: Re: Soucis avec Arduino Uno et l'inclinomètre de Murata SCA103-D04 en SPI
Post by: J-M-L on Apr 18, 2019, 12:04 pm
envisagez de mettre c1 très près du composant plutôt que de votre arduino - quasiment au contact
Title: Re: Soucis avec Arduino Uno et l'inclinomètre de Murata SCA103-D04 en SPI
Post by: naturox on Apr 18, 2019, 12:08 pm
Salut J-M-L

vu que j'ai pas encore le condensateur sous la main (J'ai dabord effectué un cablage sans le condensateur de 100nF ), doit je sous entendre que c'est lui qui est source du problème ?.

Merci
naturox
Title: Re: Soucis avec Arduino Uno et l'inclinomètre de Murata SCA103-D04 en SPI
Post by: dbrion06 on Apr 18, 2019, 12:18 pm
Quote
A l'aide d'un multimètre j'ai vérifié que l'alimentation etait bien de 5v mais elle est environ 4,9 V . je ne sais pas si cela peut aussi etre source de problèmes.
Cette variation de 2% n'a pas lieu de vous inquiéter.

Pour le condensateur de découplage, c'est un "must", suivant la note d'application.


Pour la trigo: vous avez des problèmes de conversion, que je peux reproduire sur mon PC (avec la solution si vous voulez qu'il ne sorte pas des angles toujours nuls -c'est rasant-
Code: [Select]


sh-4.1$ cat  trigo.cpp
#include <math.h>
#include <stdio.h>
#include <stdint.h>

int16_t RDAX=0, RDAY= 125;
int main() {
float angle=asin(((RDAX-RDAY)-0)/6554);
printf("%f\n", angle);
//   avec des conversions, ça va mieux
float nangle = asin((float (RDAX-RDAY)-0.0)/6554.0);
printf("%f\n", nangle);
}
sh-4.1$  g++ trigo.cpp && ./a.exe
0.000000
-0.019073
Title: Re: Soucis avec Arduino Uno et l'inclinomètre de Murata SCA103-D04 en SPI
Post by: naturox on Apr 18, 2019, 12:32 pm
Merci a toi dbrion06 pour tes éclaircissements.

J'integre la conversion au code.

Reste à aussi savoir pourquoi la valeur en x  et celle en Y tres loin de 1024 attendu pour une postion a l'horizontale.


Cordialement
Naturox.
Title: Re: Soucis avec Arduino Uno et l'inclinomètre de Murata SCA103-D04 en SPI
Post by: dbrion06 on Apr 18, 2019, 01:20 pm
"Reste à aussi savoir pourquoi la valeur en x  et celle en Y tres loin de 1024 attendu pour une postion a l'horizontale. "

JML et moi (sans concertation) pointions le condensateur de découplage.
Reste une horreur ayant échappé à deux paires d'yeux: laisssez faire le temps et relisez vous tranquillement...
Title: Re: Soucis avec Arduino Uno et l'inclinomètre de Murata SCA103-D04 en SPI
Post by: J-M-L on Apr 18, 2019, 01:26 pm
Reste une horreur ayant échappé à deux paires d'yeux: laisssez faire le temps et relisez vous tranquillement...
j'ai arrêté de lire quand l'OP modifie sans cesse son premier post... ce fil devient incompréhensible
Title: Re: Soucis avec Arduino Uno et l'inclinomètre de Murata SCA103-D04 en SPI
Post by: naturox on Apr 18, 2019, 01:42 pm
Salut à tous

Je m'excuse pour l' erreur dans mon post. Si je m'y prends mal priere de m'orienter. J'ai modifié mon post juste au départ après que l'on m'ai fait la remarque que j'avais mis des "1" partout au niveau de la saisie des broches connectées du capteur.

ensuite je repondais en cliquant sur "Reply". je sais pas si c'est a cause de cela que vous considerez que je modifie le post sans cesse.

Je vais relire tout les post

En attendant je vais me signaler a nouveau aprés avoir mis le condensateur de 100nF. pour clore le sujet.

Merci bien à tous ceux qui m'ont aidé.