Final Version
Dependencies: C12832 LM75B PWM_Tone_Library mbed Grove_Air_Quality_Sensor_Library
main.cpp
- Committer:
- Fleishmachine
- Date:
- 2017-03-15
- Revision:
- 6:6ae884c9757a
- Parent:
- 5:4d8495cf1c10
- Child:
- 7:9f4b7b55f902
File content as of revision 6:6ae884c9757a:
#include "mbed.h" #include "pwm_tone.h" #include "C12832.h" Serial pc(USBTX, USBRX); PwmOut Buzzer(D5); C12832 lcd (p5, p7, p6, p8, p11); AnalogIn sensor(p17); PwmOut spkr(p26); PwmOut r (p23); // red light PwmOut g (p24); // green light PwmOut b (p25); // blue light PwmOut Ctrl1(p21); //relay PwmOut Ctrl2(p22); //relay BusOut leds(LED1,LED2,LED3,LED4); // blue LEDs that we can still use BusIn Up(p15); BusIn Down(p12); BusIn Left(p13); BusIn Right(p16); /* float C_3 = 1000000/Do3, // can we erease it?? Cs_3 = 1000000/Do3s, D_3 = 1000000/Re3, Ds_3 = 1000000/Re3s, E_3 = 1000000/Mi3, F_3 = 1000000/Fa3, Fs_3 = 1000000/Fa3s, G_3 = 1000000/So3, Gs_3 = 1000000/So3s, A_3 = 1000000/La3, As_3 = 1000000/La3s, B_3 = 1000000/Ti3, C_4 = 1000000/Do4, Cs_4 = 1000000/Do4s, D_4 = 1000000/Re4, Ds_4 = 1000000/Re4s, E_4 = 1000000/Mi4, F_4 = 1000000/Fa4, Fs_4 = 1000000/Fa4s, G_4 = 1000000/So4, Gs_4 = 1000000/So4s, A_4 = 1000000/La4, As_4 = 1000000/La4s, B_4 = 1000000/Ti4, C_5 = 1000000/Do5, Cs_5 = 1000000/Do5s, D_5 = 1000000/Re5, Ds_5 = 1000000/Re5s, E_5 = 1000000/Mi5, F_5 = 1000000/Fa5, Fs_5 = 1000000/Fa5s, G_5 = 1000000/So5, Gs_5 = 1000000/So5s, A_5 = 1000000/La5, As_5 = 1000000/La5s, B_5 = 1000000/Ti5; int tones[] = {E_4, D_4, C_4, D_4, E_4, E_4, E_4, 0, D_4, D_4, D_4, 0, E_4, G_4, G_4, 0, E_4, D_4, C_4, D_4, E_4, E_4, E_4, 0, D_4, D_4, E_4, D_4, C_4, 0, 0, 0}; int tones_num = 32; */ float multiplier = 50; // this number got me closest to the reading on my multimeter temp probe float temp; // calculated temperature int count; // for computing average reading float total; float average; float max = 22; float min = 20; int Boiler_max = min + 2; void initialize(); void buzz() { for (float i=2000.0; i<7000.0; i+=1000) { spkr.period(0.5/i); spkr=0.1; wait(0.1); } spkr=0.0; } int main() { initialize(); count = 0; total = 0.0; r = 1; b = 1; g = 1; buzz(); while (1) { // formula is analog reading * multiplier temp = sensor.read() * multiplier; count++; total += temp; average = total / count; // min = min * 1; if (Up) { min++; } if (Down) { min--; } if (Left) { max--; } if (Right) { max++; } if(temp > max) { r = 0; // red g = 1; // green b = 1; // blue Ctrl1 = 1; Ctrl2 = 0; // value 0 - max // value 1 - zero // so values closer to zero 0 brighter than closer to 1 // buzz(); } else { r = 1; g = 0.25; b = 1; Ctrl1 = 1; Ctrl2 = 1; } if(temp < min) { r = 1; g = 1; b = 0.25; Ctrl1 = 0; Ctrl2 = 1; } else { } lcd.cls(); lcd.locate(0,0); lcd.printf("Temp= %6.2f Avg= %5.1f ", temp , average ); lcd.locate(0,12); lcd.printf("min= %6.0f max= %6.0f", min, max); wait(0.5); } } void initialize() { lcd.cls(); lcd.locate(0,0); }