Programmation
À intervalle régulier, nous vérifions l'état de chaque entrée de la carte Arduino. En fonction de l'état de chaque entrée, nous construisons un entier qui sert d'index pour trouver l'orientation dans une table. Voila un exemple :
1
//Bibliothèque permettant la gestion du module BLE
2
3
4
5
SoftwareSerial BLEserie(RxD,TxD); // Déclare le module BLE branché en 8 et 9
6
7
//int table[] = {-1, 0,72,12,144,132,84,120,
8
// 216,348,204,24,156,168,192,180,
9
// 288,300,60,48,276,312,96,108,
10
// 228,336,240,36,264,324,252,-1};
11
int table[] = {-1, 0,288,348,216,228,276,240,
12
144,12,156,336,204,192,168,180,
13
72,60,300,312,84,48,264,252,
14
132,24,120,324,96,36,108,-1};
15
const int bit0 = 6;
16
const int bit1 = 5;
17
const int bit2 = 4;
18
const int bit3 = 3;
19
const int bit4 = 2;
20
21
void setup() {
22
pinMode(bit0, INPUT_PULLUP);
23
pinMode(bit1, INPUT_PULLUP);
24
pinMode(bit2, INPUT_PULLUP);
25
pinMode(bit3, INPUT_PULLUP);
26
pinMode(bit4, INPUT_PULLUP);
27
Serial.begin(9600);// Connexion liaison série pour le moniteur
28
BLEserie.begin(9600); // Connexion bluetooth
29
}
30
31
void loop() {
32
byte angle = (digitalRead(bit4) << 4) | (digitalRead(bit3) << 3) | (digitalRead(bit2) << 2) | (digitalRead(bit1)) << 1 | digitalRead(bit0);
33
34
Serial.print(angle, BIN);
35
Serial.print(' ');
36
Serial.println(angle);
37
Serial.println (table[angle]);
38
BLEserie.print(table[angle]); //envoie par bluetooth de l'angle
39
delay(1000);
40
41
}