Un lien vers cette doc ? Sinon, donne un exemple (valeurs pour le nord).
Version imprimable
Un lien vers cette doc ? Sinon, donne un exemple (valeurs pour le nord).
Oui c'est bien cette gitouette : https://www.sparkfun.com/products/8942
La datasheet le fourni elle pas les valeurs a chaques positions comme je bous l'a dit ?
C'est vrai il faudrait que je teste cela mais je n'ai pas mon materiel il faut que je teste ca demain et je vous fait pars des resultats
L'est pas si simple ce capteur:)
Pièce jointe 204473
16 positions détectées... à 0° la résistance activée par la fermeture du switch est une 33k, à 45 ° la résistance activée est de 8.2k. Entre les deux à 22,5°, les deux switchs à 0 et 45° sont fermés ensemble et la résistance équivalente aux deux résistances en parallèle est (33*8.2)/(33+8.2)=6.57k.Citation:
It has eight switches, each connected to a different resistor. The vane’s magnet may close two switches at once, allowing up to 16 different positions to be indicated.
En tout cas, la tension retournée ne sera pas proportionnelle à l'angle. Beau programme en vue:ccool:
Bonjour, est t-il possible que tu postes ton programme final de l'anémomètre s'il te plais?
J'en aurai besoin pour finaliser mon tracker solaire. :zoubi:
Merci d'avance
Franchement tu ne manques pas d'air.... (sur un sujet ayant pour thème l'anémomètre :aie:)
Je pense que tu as tous les éléments dans cette discussion pour réaliser toi même le code. Et si tu as des difficultés, crée une discussion, expose ton problème et on tâchera d'y répondre.
Bref...
Ca ne m'a pas déranger de lui envoyer pas de soucis !
Sinon voila le programme que j'ai reuissi a faire a l'aide de mes camarades mais il y a une erreur de compilation alorsd que j'ai ajouter la ibliotheque !
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77 #include <Wire.h> // Reference la librairie HMC5883L #include <HMC5883L.h> #include <LiquidCrystal.h> LiquidCrystal lcd(8, 9, 4, 3, 6, 7); int Dir; // Declare la boussole comme variable HMC5883L compass; // Enregistre les erreur pouvant apparaitre. int error = 0; // Cinfiguration du microcontroleur et de la boussole. void setup() { lcd.begin(16, 2); lcd.setCursor(0, 0); lcd.print (" GIROUETTE "); lcd.setCursor(0, 1); lcd.print ("F5MNA Version 01"); delay(2000); lcd.setCursor(0, 0); lcd.print (" "); lcd.setCursor(0, 1); lcd.print (" "); // Initialisation port série. Serial.begin(9600); Wire.begin(); // Demarrage interface I2C. compass = HMC5883L(); // Construction de la boussole HMC5883 . } // programme loop. void loop() { // Valeur de la boussole selon échelle. MagnetometerScaled scaled = compass.ReadScaledAxis(); // Calcul du cap et correction selon signe. float heading = atan2(scaled.YAxis, scaled.XAxis); if(heading < 0) heading += 2*PI; if(heading > 2*PI) heading -= 2*PI; // Convertion radians / degrés. float headingDegrees = heading * 180/M_PI; // Sortie des donnée via port série. Output(headingDegrees); delay (500); } // Sortie des données. void Output(float headingDegrees) { Dir = int(headingDegrees); lcd.setCursor (4, 0); if ((Dir >=338)or (Dir <= 23)) lcd.print (" Nord "); if ((Dir >=22) and (Dir <= 68)) lcd.print ("Nord-Est "); if ((Dir >=67) and (Dir <= 113)) lcd.print (" Est "); if ((Dir >=112)and (Dir <= 158)) lcd.print (" Sud-Est "); if ((Dir >=157)and (Dir <= 203)) lcd.print (" Sud "); if ((Dir >=202)and (Dir <= 248)) lcd.print ("Sud-Ouest "); if ((Dir >=247)and (Dir <= 293)) lcd.print (" Ouest "); if ((Dir >=292)and (Dir <= 339)) lcd.print ("Nord-Ouest "); Serial.print(int(headingDegrees)); Serial.println(" degres "); Serial.println(" "); lcd.setCursor (1, 1); lcd.print ("Dir: "); lcd.print (int(headingDegrees)); lcd.print (" degres "); }
Quelle erreur ? Quelle bibliothèque ?
A la ligne 11 il y a une erreur je sais pas pourquoi
a --> HMC5883L compass;
Il serait bon de répondre précisément aux questions qui te sont posées :
Bref, tu as semble-t-il utilisé le code disponible sur ce site : http://bluelemonlabs.blogspot.fr/201...-hmc5883l.html
As-tu téléchargé et installé la bibliothèque correspondante => https://docs.google.com/file/d/0BxER...t?pref=2&pli=1 ?
Mais j'hésite pour ce programme mais c'est mort, moi j'utilise une girouette basique et pas ce dispositif de capteurs
La girouette fait parti de cet ensemble. La bibliothèque la prend en charge. Tu as installé la bibliothèque de fonction comme indiqué dans l'aide arduino ?
He bien j'ai mon programme celui que je vous ai copier, j'ai importer la bobliotheque mais j'ai toujours une erreur, la meme que je vou ai dit auparavant
Donne nous le message d'erreur complet
Voici le message:
Arduino : 1.6.7 (Windows 10), Carte : "Arduino/Genuino Uno"
C:\Users\Administrateur\Desktop\Girouette\Girouette.ino:3:22: fatal error: HMC5883L.h: No such file or directory
#include <HMC5883L.h>
^
compilation terminated.
exit status 1
Erreur lors de la compilation.
Ce rapport contiendrait plus d'informations si l'option
"Montrer les informations de sortie pendant la compilation"
était activée dans Fichier > Préférences.
Il ne trouve pas le dossier HMC5883L. Où l'as-tu placé ?
J'ai un dossier Girouette avec dedans :
Mon programme arduino et le dossier HMC5883L avec dedans l'exemple, le .ccp, le .h et le .txt
Mets le dossier HMC5883L dans ton répertoire Arduino/libraries et ça devrait fonctionner.
Non ca ne marche pas toujours le meme message d'erreur
Arduino : 1.6.7 (Windows 10), Carte : "Arduino/Genuino Uno"
sketch\HMC5883L\HMC5883L.cpp:24:23: fatal error: WProgram.h: No such file or directory
#include <WProgram.h>
^
compilation terminated.
exit status 1
Erreur lors de la compilation.
Ce rapport contiendrait plus d'informations si l'option
"Montrer les informations de sortie pendant la compilation"
était activée dans Fichier > Préférences.