Receiver code

Dependencies:   mbed

Revision:
0:f8873e0badb2
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/Sensors.cpp	Thu Feb 18 13:22:31 2016 +0000
@@ -0,0 +1,43 @@
+#include "mbed.h"
+#include "Sensors.h"
+
+// Capteurs
+DigitalIn  button(p9);
+I2C accelero(p28, p27);
+
+// Fontion de lecture du bouton
+void readButton(char* buffer)
+{
+    buffer[1] = button;
+}
+
+// Fonction de lecture de l'accéléromètre
+void readAccelero(char* buffer)
+{
+    // Activation de l'accéléromètre
+    char data[2] = {CTRL_REG, 0x01};
+    accelero.write(ACC_ADDRESS, (char*) data, 2);
+    
+    // Lecture du registre de l'accélération en X
+    char result[2];
+    char reg[1] = {ACC_X_REG};
+    accelero.write(ACC_ADDRESS, (char*) reg, 1, true);
+    accelero.read(ACC_ADDRESS, (char*) result, 2);
+    short accX = convertToAcceleration(result[0], result[1]);
+
+    // Conversion des données sur 16 bits
+    buffer[1] = accX & 0x00FF;
+    buffer[2] = (accX & 0xFF00) >> 8;
+}
+
+// Fonction qui convertit la donnée retournée par l'accéléromètre en une valeur 16 bits
+short convertToAcceleration(char hi, char lo)
+{
+    short value = (lo >> 2) | (hi << 6);
+    if (value > UINT14_MAX/2)
+    {
+        value -= UINT14_MAX;
+    }
+ 
+    return value;
+}