Richard Hoekstra
/
TLS2-Sensorcontroller
De sensorcontroller van het TLS2 project.
Diff: main.cpp
- 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(); + } + } +}