Permet de lire et de stocker dans des variables publiques la direction pointées par la girouette WS1080.
Dependents: test_girouette_library
Diff: GirouetteWD1080.cpp
- Revision:
- 2:6d392919b388
- Parent:
- 1:4c8b15e19600
- Child:
- 4:dfa695d9c256
diff -r 4c8b15e19600 -r 6d392919b388 GirouetteWD1080.cpp --- a/GirouetteWD1080.cpp Mon May 20 08:24:08 2019 +0000 +++ b/GirouetteWD1080.cpp Mon May 20 08:45:58 2019 +0000 @@ -9,9 +9,9 @@ // Lit les différentes valeurs donné par la GirouetteWD1080 //En déduit la direction inidquée par la girouette -// /!\ Les pôles de réfèrence sont sculptés sur le pied de la girouette /!\ +// => /!\ Les pôles de réfèrence sont sculptés sur le pied de la girouette /!\ -bool GirouetteWD1080::read( ) +bool GirouetteWD1080::read_string( ) { uint16_t positions[8] = {770, 200, 53, 30, 13, 105, 350, 550}, girou, i=0; string directions[9]={"O","S-O","S","S-E","E","N-E","N","N-O", "ERR"}; @@ -20,12 +20,29 @@ for(i=0; i<9;i++){ if( (positions[i]-10)<=girou && (positions[i]+10)>=girou){ - direction = directions[i]; + direction_string = directions[i]; return true; } } - direction = directions[8]; + direction_string = directions[8]; + return false; +} + +bool GirouetteWD1080::read_int( ) +{ + uint16_t positions[8] = {770, 200, 53, 30, 13, 105, 350, 550}, girou, i=0; + + girou = int(girouette.read()*1000.0f); + + for(i=0; i<9;i++){ + if( (positions[i]-10)<=girou && (positions[i]+10)>=girou){ + direction_int = i; + return true; + } + } + + direction_int = 255; return false; }