Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: mbed DRV88255 TextLCD Ping mbed-rtos
SalinityController.cpp@0:dab140a197e0, 2016-06-03 (annotated)
- 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?
| User | Revision | Line number | New 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 | } |