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.
Revision 3:0170897aa173, committed 2021-10-29
- Comitter:
- mgimple
- Date:
- Fri Oct 29 14:52:42 2021 +0000
- Parent:
- 2:38d752717527
- Commit message:
- photocell working ; final version
Changed in this revision
| main.cpp | Show annotated file Show diff for this revision Revisions of this file |
diff -r 38d752717527 -r 0170897aa173 main.cpp
--- a/main.cpp Wed Oct 27 17:48:12 2021 +0000
+++ b/main.cpp Fri Oct 29 14:52:42 2021 +0000
@@ -1,4 +1,5 @@
#include "mbed.h"
+#include "math.h"
Serial pc(USBTX,USBRX);
DigitalOut Led1(LED1);
@@ -15,50 +16,38 @@
float light_volt; //light voltage multiplied by 3.3 from mbed
float light_res; //resistance through photocell
float light_volt_raw; //raw voltage through photocell
-void temp_read(); //temperature reading function
-void light_read(); //light reading function
int main()
{
while(1) {
- temp_read();
-
- light_read();
- }
-}
+ volt_raw = therm.read(); //sets the raw data as a variable
+ volt = volt_raw*3.3; //converts raw voltage to the correct scale
+ float temp = (-1481.96)+ sqrt((2.1962*(powf(10,6)))+((1.8639-volt)/(3.88*(powf(10,-6))))); //converts voltage to temperature
+ pc.printf("Thermocell Voltage: %f V\r\n",volt);
+ pc.printf("Temperature: %f C\r\n",temp);
-void temp_read() //main temperature reading command to be called upon
-{
- volt_raw = therm.read(); //sets the raw data as a variable
- volt = volt_raw; //converts raw voltage to the correct scale for our mbed *3.3
- temp = -1481.96+sqrt(((2.1962e6)+((1.8639-volt)/(3.88e-6)))); //converts voltage to temperature
- pc.printf("TEMP %f Volts %3.1f Celsius \r\n",volt, temp);
- wait(1);
+ if (temp>=15 && temp<20) {
+ Led1=1;
+ }
+ if (temp<15 && temp>=20) {
+ Led2=1;
+ }
+ if (temp>=25) {
+ Led3=1;
+ }
+
- if (temp>=15) {
- Led1=1;
- if (temp>=20) {
- Led2=1;
- if (temp>=25) {
- Led3=1;
- }
+ light_volt_raw=light.read(); //sets the raw data as a variable
+ light_res=(10000/light_volt_raw)-10000;
+ light_volt=light_volt_raw*3.3;
+ pc.printf("Photocell Resistance: %f Ohms\r\n",light_res);
+ pc.printf("Photocell Voltage: %f \r\n",light_volt);
+ if (light_volt<1.55) { //the sensor is "completely blocked" by a finger at most values under 0.3 volts
+ Led4=1;
+ }
+ if (light_volt>1.55) {
+ Led4=0;
}
}
-}
-
-
-void light_read() //main light reading command to be called upon
-{
- light_volt_raw=light.read(); //sets the raw data as a variable
- light_res=(10000/light_volt_raw)-10000; //converting voltage to resistance
- light_volt=light_volt_raw*3.3; //mbed outputs 3.3 volts
- pc.printf("LIGHT %1.3f Voltz 6.2%f Ohms\r\n",light_volt,light_res);
- wait(1);
- if (light_volt<0.3) { //the sensor is "completely blocked" by a finger at most values under 0.3 volts. The whole photocell has to be covered however because even if a bit is showing it will read higher than 0.3
- Led4=1;
- }
- if (light_volt>0.3) {
- Led4=0;
- }
-}
+}
\ No newline at end of file
