Saltware / Mbed 2 deprecated Water Play

Dependencies:   mbed DRV88255 TextLCD Ping mbed-rtos

Committer:
6366295
Date:
Fri Jun 03 14:24:25 2016 +0000
Revision:
0:dab140a197e0
Child:
1:eb527bc93b62
Implemented SalinityController and TemperatureController

Who changed what in which revision?

UserRevisionLine numberNew contents of line
6366295 0:dab140a197e0 1 #include "SalinityController.h"
6366295 0:dab140a197e0 2
6366295 0:dab140a197e0 3 #include "stdio.h"
6366295 0:dab140a197e0 4
6366295 0:dab140a197e0 5 AnalogIn salinity_sensor(p19);
6366295 0:dab140a197e0 6
6366295 0:dab140a197e0 7 SalinityController::SalinityController()
6366295 0:dab140a197e0 8 {
6366295 0:dab140a197e0 9 printf("Initiate Salinity Controller\r\n");
6366295 0:dab140a197e0 10 }
6366295 0:dab140a197e0 11
6366295 0:dab140a197e0 12 // Function reads sensor values and averages N sensor values
6366295 0:dab140a197e0 13 float SalinityController::readSensor()
6366295 0:dab140a197e0 14 {
6366295 0:dab140a197e0 15 float analogin_value = 0;
6366295 0:dab140a197e0 16 float ppt = 0;
6366295 0:dab140a197e0 17
6366295 0:dab140a197e0 18 // Read 0-1.0 value
6366295 0:dab140a197e0 19 for(int i = 0; i < N; i++)
6366295 0:dab140a197e0 20 {
6366295 0:dab140a197e0 21 analogin_value += salinity_sensor.read();
6366295 0:dab140a197e0 22 }
6366295 0:dab140a197e0 23 // Average 10 sensor values
6366295 0:dab140a197e0 24 analogin_value /= (float) N;
6366295 0:dab140a197e0 25
6366295 0:dab140a197e0 26 ppt = analoginToPPT(analogin_value);
6366295 0:dab140a197e0 27
6366295 0:dab140a197e0 28 return ppt;
6366295 0:dab140a197e0 29 }
6366295 0:dab140a197e0 30
6366295 0:dab140a197e0 31 // Function converts average sensor value to ppt
6366295 0:dab140a197e0 32 float SalinityController::analoginToPPT(float analogin_value)
6366295 0:dab140a197e0 33 {
6366295 0:dab140a197e0 34 float voltage = 0;
6366295 0:dab140a197e0 35 float ppt = 0;
6366295 0:dab140a197e0 36
6366295 0:dab140a197e0 37 // Convert average sensor value to value with range 0-5.0v
6366295 0:dab140a197e0 38 voltage = analogin_value * 3.3f * (5.0f/3.0f);
6366295 0:dab140a197e0 39
6366295 0:dab140a197e0 40 // Convert voltage to ppt
6366295 0:dab140a197e0 41 ppt = voltage * 16.3;
6366295 0:dab140a197e0 42
6366295 0:dab140a197e0 43 return ppt;
6366295 0:dab140a197e0 44 }
6366295 0:dab140a197e0 45
6366295 0:dab140a197e0 46 // Function prints salinity sensor value in ppt
6366295 0:dab140a197e0 47 void SalinityController::displayPPT()
6366295 0:dab140a197e0 48 {
6366295 0:dab140a197e0 49 float ppt = 0;
6366295 0:dab140a197e0 50
6366295 0:dab140a197e0 51 ppt = readSensor();
6366295 0:dab140a197e0 52
6366295 0:dab140a197e0 53 printf("Salinity: %f ppt\t", ppt);
6366295 0:dab140a197e0 54 }