Updated

Dependencies:   C12832 LM75B PWM_Tone_Library mbed

Fork of IoT Project Final by UH IoT

Committer:
ko16aam
Date:
Wed Feb 22 09:52:16 2017 +0000
Revision:
0:e9258aa72a94
Child:
1:1ed4e4239ea6
project attempt one;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ko16aam 0:e9258aa72a94 1 #include "mbed.h"
ko16aam 0:e9258aa72a94 2 #include "C12832.h"
ko16aam 0:e9258aa72a94 3 #include "pwm_tone.h"
ko16aam 0:e9258aa72a94 4
ko16aam 0:e9258aa72a94 5 //DigitalOut myled(LED1);
ko16aam 0:e9258aa72a94 6 PwmOut Buzzer(D5);
ko16aam 0:e9258aa72a94 7 C12832 lcd(p5, p7, p6, p8, p11);
ko16aam 0:e9258aa72a94 8 AnalogIn sensor(p15);
ko16aam 0:e9258aa72a94 9
ko16aam 0:e9258aa72a94 10 float C_3 = 1000000/Do3,
ko16aam 0:e9258aa72a94 11 Cs_3 = 1000000/Do3s,
ko16aam 0:e9258aa72a94 12 D_3 = 1000000/Re3,
ko16aam 0:e9258aa72a94 13 Ds_3 = 1000000/Re3s,
ko16aam 0:e9258aa72a94 14 E_3 = 1000000/Mi3,
ko16aam 0:e9258aa72a94 15 F_3 = 1000000/Fa3,
ko16aam 0:e9258aa72a94 16 Fs_3 = 1000000/Fa3s,
ko16aam 0:e9258aa72a94 17 G_3 = 1000000/So3,
ko16aam 0:e9258aa72a94 18 Gs_3 = 1000000/So3s,
ko16aam 0:e9258aa72a94 19 A_3 = 1000000/La3,
ko16aam 0:e9258aa72a94 20 As_3 = 1000000/La3s,
ko16aam 0:e9258aa72a94 21 B_3 = 1000000/Ti3,
ko16aam 0:e9258aa72a94 22 C_4 = 1000000/Do4,
ko16aam 0:e9258aa72a94 23 Cs_4 = 1000000/Do4s,
ko16aam 0:e9258aa72a94 24 D_4 = 1000000/Re4,
ko16aam 0:e9258aa72a94 25 Ds_4 = 1000000/Re4s,
ko16aam 0:e9258aa72a94 26 E_4 = 1000000/Mi4,
ko16aam 0:e9258aa72a94 27 F_4 = 1000000/Fa4,
ko16aam 0:e9258aa72a94 28 Fs_4 = 1000000/Fa4s,
ko16aam 0:e9258aa72a94 29 G_4 = 1000000/So4,
ko16aam 0:e9258aa72a94 30 Gs_4 = 1000000/So4s,
ko16aam 0:e9258aa72a94 31 A_4 = 1000000/La4,
ko16aam 0:e9258aa72a94 32 As_4 = 1000000/La4s,
ko16aam 0:e9258aa72a94 33 B_4 = 1000000/Ti4,
ko16aam 0:e9258aa72a94 34 C_5 = 1000000/Do5,
ko16aam 0:e9258aa72a94 35 Cs_5 = 1000000/Do5s,
ko16aam 0:e9258aa72a94 36 D_5 = 1000000/Re5,
ko16aam 0:e9258aa72a94 37 Ds_5 = 1000000/Re5s,
ko16aam 0:e9258aa72a94 38 E_5 = 1000000/Mi5,
ko16aam 0:e9258aa72a94 39 F_5 = 1000000/Fa5,
ko16aam 0:e9258aa72a94 40 Fs_5 = 1000000/Fa5s,
ko16aam 0:e9258aa72a94 41 G_5 = 1000000/So5,
ko16aam 0:e9258aa72a94 42 Gs_5 = 1000000/So5s,
ko16aam 0:e9258aa72a94 43 A_5 = 1000000/La5,
ko16aam 0:e9258aa72a94 44 As_5 = 1000000/La5s,
ko16aam 0:e9258aa72a94 45 B_5 = 1000000/Ti5;
ko16aam 0:e9258aa72a94 46
ko16aam 0:e9258aa72a94 47 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,
ko16aam 0:e9258aa72a94 48 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};
ko16aam 0:e9258aa72a94 49 int tones_num = 32;
ko16aam 0:e9258aa72a94 50
ko16aam 0:e9258aa72a94 51
ko16aam 0:e9258aa72a94 52 float multiplier = 50; // this number got me closest to the reading on my multimeter temp probe
ko16aam 0:e9258aa72a94 53 float temp; // calculated temperature
ko16aam 0:e9258aa72a94 54 int count = 0; // for computing average reading
ko16aam 0:e9258aa72a94 55 float total = 0;
ko16aam 0:e9258aa72a94 56 float average;
ko16aam 0:e9258aa72a94 57
ko16aam 0:e9258aa72a94 58 float thermo() {
ko16aam 0:e9258aa72a94 59 // count = 0;
ko16aam 0:e9258aa72a94 60 // total = 0.0;
ko16aam 0:e9258aa72a94 61 while (1) {
ko16aam 0:e9258aa72a94 62 // formula is analog reading * multiplier
ko16aam 0:e9258aa72a94 63
ko16aam 0:e9258aa72a94 64 temp = sensor.read() * multiplier;
ko16aam 0:e9258aa72a94 65 count++;
ko16aam 0:e9258aa72a94 66 total += temp;
ko16aam 0:e9258aa72a94 67 average = total / count;
ko16aam 0:e9258aa72a94 68
ko16aam 0:e9258aa72a94 69 lcd.cls();
ko16aam 0:e9258aa72a94 70 lcd.locate(0,3);
ko16aam 0:e9258aa72a94 71 lcd.printf("Temperature= %6.2f \n Average= %5.1f \n", temp , average );
ko16aam 0:e9258aa72a94 72 wait(1);
ko16aam 0:e9258aa72a94 73 }
ko16aam 0:e9258aa72a94 74 }
ko16aam 0:e9258aa72a94 75
ko16aam 0:e9258aa72a94 76 //int main(void)
ko16aam 0:e9258aa72a94 77 //{
ko16aam 0:e9258aa72a94 78 // Tune(Buzzer, C_4, 4); //4 Octave C beat 4/16
ko16aam 0:e9258aa72a94 79 // wait_ms(250);
ko16aam 0:e9258aa72a94 80 // Tune(Buzzer, D_4, 4); //4 Octave D beat 4/16
ko16aam 0:e9258aa72a94 81 // wait_ms(250);
ko16aam 0:e9258aa72a94 82 // Tune(Buzzer, E_4, 4); //4 Octave E beat 4/16
ko16aam 0:e9258aa72a94 83 // wait_ms(250);
ko16aam 0:e9258aa72a94 84 //
ko16aam 0:e9258aa72a94 85 // int i;
ko16aam 0:e9258aa72a94 86 //
ko16aam 0:e9258aa72a94 87 // for(i=0; i<tones_num; i++) {
ko16aam 0:e9258aa72a94 88 // Auto_tunes(Buzzer, tones[i], 4); // Auto performance
ko16aam 0:e9258aa72a94 89 // Stop_tunes(Buzzer);
ko16aam 0:e9258aa72a94 90 // }
ko16aam 0:e9258aa72a94 91 //
ko16aam 0:e9258aa72a94 92 //}
ko16aam 0:e9258aa72a94 93
ko16aam 0:e9258aa72a94 94 DigitalIn fire(p14);
ko16aam 0:e9258aa72a94 95 PwmOut spkr(p26);
ko16aam 0:e9258aa72a94 96
ko16aam 0:e9258aa72a94 97 int main()
ko16aam 0:e9258aa72a94 98 {
ko16aam 0:e9258aa72a94 99 while (1) {
ko16aam 0:e9258aa72a94 100 for (float i=2000.0; i<10000.0; i+=100) {
ko16aam 0:e9258aa72a94 101 spkr.period(1.0/i);
ko16aam 0:e9258aa72a94 102 spkr=0.5;
ko16aam 0:e9258aa72a94 103 wait(0.1);
ko16aam 0:e9258aa72a94 104 }
ko16aam 0:e9258aa72a94 105 spkr=0.0;
ko16aam 0:e9258aa72a94 106 while(!fire) {}
ko16aam 0:e9258aa72a94 107 }
ko16aam 0:e9258aa72a94 108 }
ko16aam 0:e9258aa72a94 109