Go Down

Topic: Oscillo et arduino (Read 1 time) previous topic - next topic

Bonjours !
Je suis dans un projet ou j'utilise une carte arduino et  un module HMC 5883L (compas électronique)
Je cherche à observer son signal à l'oscillo mais je ne vois pas trop les branchements que je dois faire
et quel connecteur je devrais utiliser ? de simple pince croco sur les pins SDA SCL?
Je suis pas un adepte de l'oscillo  veuillez être compréhensif :D


Je voudrais observer l'influence d'un metal sur le composant (la perturbation du signal du fait de la perturbation du nord magnétique !?)

Une derniere question !! => a partir de ce module je suis capable de déterminer des coordonnées x,y,z mais je ne comprend pas comment cela est possible? quel repère est pris en compte?
Enfaite j'ai du mal a comprendre le fonctionnement de ce module :~ :~ ?

merci de votre patience  :)
et pour votre aide

barbudor

Bonjour Matsuru

C'est un composant I2C. Donc tu dois utiliser la bibliothèque Wire.h et les broches dédiées SDA (An4) et SCL (An5).
Le bus I2C requière aussi d'avoir sur chacun de ces signaux une résistance de pull-up d'environ 4K7 entre le signal et le VCC.

Tu peux utiliser un oscillo pour regarder les échange de données mais ces échanges sont à la demande de l'Arduino : le composant n'envoie rien de lui-même sur le buss.
Tu dois écrire le code (en utilisant Wire) pour le configurer et l'interroger.

Comme il s'agit d'échanges transitoires, et non pas d'un flux régulier, l'oscillo n'est pas forcément le plus adapté où alors un oscillo numérique à mémoire.
Avec SCL sur la voie 1 (déclencher sur un front bas de SCL) et SDA sur la voie 2.
Utiliser impérativement le mode "choppé" et pas le mode "alterné".

Le mieux étant un analyseur logique.

Mais pourquoi regarder les signaux avec un oscillo ?

Et pour ta dernière question, non un compas ne va pas te donner ta position. Ce n'est pas un GPS. Il va juste te donner les directions du champ magnétique terrestre (ou du moins du plus fort champ magnétique là où tu te trouve. Dans un labo d'imagerie médicale, il va plutot te donner la direction de l'IRM  :D)
Barbuduino: Arduino sur Breadboard & VinciDuino: Clone Leonardo // WR703: Mini-routeur hacké // LauchPad MSP430 et Stellaris // Panda II Arduino-like .NetMF sous VisualC#
RTFC: Read That F.....g Code / RTFD: Read That F.....g Doc / RTFDS: Read That F.....g DataSheet / RTFS: Read That F.....g Schematic / Wot da ya wanna D.I.Y. today ?

fdufnews

Quote
Une derniere question !! => a partir de ce module je suis capable de déterminer des coordonnées x,y,z mais je ne comprend pas comment cela est possible?

Le composant contient 3 capteurs magnétiques, orientés selon 3 axes différents. Donc le HMC 5883L te retourne le champs magnétique mesuré par chacun des capteurs.

Quote
quel repère est pris en compte?

Le repère est relatif au boîtier (c'est à dire à la position des capteurs à l'intérieur du boitier). Ce repère est indiqué dans la datasheet du composant page 4 (http://www51.honeywell.com/aero/common/documents/myaerospacecatalog-documents/Defense_Brochures-documents/HMC5883L_3-Axis_Digital_Compass_IC.pdf)

En fait si tu veux voir à l'oscilloscope les variations du champs magnétique, le mieux serait de lire le composant en I²C comme te le suggère Barbudor et d'envoyer les 3 valeurs sur 3 sorties PWM, d'appliquer un léger filtrage (une résistance de qq kOhms et un condensateur d'un µF) ainsi l'oscilloscope verra des tensions proportionnelles au champs magnétique.

#3
Apr 01, 2012, 06:20 pm Last Edit: Apr 01, 2012, 06:23 pm by matsuru75 Reason: 1
Merci de vos réponses! Jr comprend mieux

Quote
Mais pourquoi regarder les signaux avec un oscillo ?

Je ne vois pas d autres méthodes pour observer ces signaux ? Et vu que je peux en avoir un a disposition
autant s'en servir !! :)

Pour ce qui est des branchements je viens de me rendre compte que j'avais mal branché les résistances en lisant trop vite (j'ai pris 2 résistances de 10k)mais je l'ai ai branché entre le SDA et A4 et SCL et A5 (tres malin x_x)
sur ce site=>> http://bildr.org/2012/02/hmc5883l_arduino/ il n'utilise pas de résistances d'ailleurs


Ps : au niveau du code j'arrive a afficher les coordonnées x y z la coordonnées z ne m’intéresse pas je l'oublie et j'ai traduit les
coordonnées x y en degré pour le suivit d'un cap !


fdufnews

Quote
sur ce site=>> http://bildr.org/2012/02/hmc5883l_arduino/ il n'utilise pas de résistances d'ailleurs

Dans ce cas il faut activer les pullups internes sur les entrées utilisées. Mais ces pullups sont un peu élevés et, à mon sens, cela risque d'entrainer des mauvaises transmissions sur le bus I²C.

Ok Ok donc je vais suivre vos conseil !
Pour ce qui est du condensateur ? il est optionnel non?

Quel est l'intérêt de ce montage de résistance "pull up" ?
Sans cela l' I2C n'est pas censé fonctionner!?

fdufnews

Quote
Pour ce qui est du condensateur ? il est optionnel non?

Je crains que nous nous soyons mal compris. Le condensateurs c'est pour mettre sur des sorties PWM qui permettraient de visualiser les composantes du champs magnétiques en analogique. Dans ce cas ils ne sont pas optionnels car sinon tu vas retrouver les créneaux du signal PWM sur ton oscilloscope.

Quote
Quel est l'intérêt de ce montage de résistance "pull up" ?
Sans cela l' I2C n'est pas censé fonctionner!?

Sur le bus I²C, les sorties sont en collecteur ouvert. Il doit donc y avoir en un point du bus des résistances de tirage au plus. Un tour d'horizon de l'I²C http://www.aurel32.net/elec/i2c.php

La je suis un peu perdu sur le montage a effectuer pour voir les composantes du champs magnétique sur l'oscillo je l'avoue!

SI tu as encore du temps a me consacrer j'ai une autre question !?

Sans condensateur en approchant un métal (pour modifier le nord magnétique) ne verrions nous pas un modification de l'amplitude des créneaux du signal PWM?

J'essaie de minimiser les difficultés :(

Mes connaissances ne dépassent pas les circuits RLC AO et filtres x_x

Merci d avance

papybricol

Bonsoir,

les 2 résistances de tirages sont intégrées à la platine du module
  ( http://dlnmh9ip6v2uc.cloudfront.net/datasheets/BreakoutBoards/HMC5883L_Breakout-v11.pdf )
donc inutile d'en rajouter.

Si tu peux lire les données du cap, alors tu peux vérifier facilement l'influence des métaux, des sources électromagnétiques, .... la distance à respecter...
J'utilise un cousin, le HMC6352. Pas de problème avec des moteurs CC à 5 cm du capteur.
...ils embarquèrent la logique, coupèrent les cordons, alors, libérés de leurs chaînes, une immensité s'ouvrait devant eux...

Oui c'est pas faux ^^ !
Mais j'aurai voulu observer plus en détail le fonctionnement du capteur notamment par exemple avec un oscillo !

Go Up