De sensorcontroller van het TLS2 project.

Dependencies:   mbed

Revision:
0:eea3cc9d2701
Child:
1:c9fae063e6f3
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Tue Nov 08 18:49:33 2016 +0000
@@ -0,0 +1,65 @@
+#include "mbed.h"
+
+
+/* De sensor controller heeft de volgende taken
+    1. Sensoren uitlezen
+        1. De frequentie moet per sensor aanpasbaar zijn.
+    2. Reageren op I2C data requests
+    3. Indien mogelijk meerdere samples nemen van de hoogste prioriteit sensor
+    
+    De volgende 'dingen' moeten kunnen worden ingesteld
+        1. 'Hoofd'sensor
+        2. Sample rate _per_ sensor
+        3. Moving Average van 'Hoofd'sensor
+*/
+
+void i2c_request(){
+    //To be written    
+}
+
+        
+float sensorVal[3] = {0}; 
+//Index 0: druksensor waarde
+//Index 1: flowsensor waarde
+//Index 2: temperatuursenor waarde
+#define druksensor 0
+#define flowsensor 1
+#define tempsensor 2                        
+        
+int main() {
+    //Pins
+    AnalogIn drukSensor(A0);
+    AnalogIn flowSensor(A1);
+    AnalogIn tempSensor(A2);
+    
+    //Sample time
+    int tick_ms_druksensor    = 10,     //100 Hz
+        tick_ms_flowsensor    = 10,     //100 Hz
+        tick_ms_tempsensor    = 1000;   //1 Hz 
+
+    //mbed ondersteund onneindig veel timers
+    Timer   t_druk,
+            t_flow,
+            t_temp;
+
+    t_druk.start();
+    t_flow.start();
+    t_temp.start();
+    while(1) {
+        if(t_druk.read_ms() >= tick_ms_druksensor){
+            //Lees de druksensor uit
+            sensorVal[druksensor] = drukSensor.read();
+            t_druk.reset(); 
+        }
+        if(t_flow.read_ms() >= tick_ms_flowsensor){
+            //Lees de flowsensor uit
+            sensorVal[flowsensor] = flowSensor.read();
+            t_flow.reset();    
+        }
+        if(t_temp.read_ms() >= tick_ms_tempsensor){
+            //Lees de temperatuursensor uit 
+            sensorVal[tempsensor] = tempSensor.read();
+            t_temp.reset();   
+        }
+    }
+}