Dependencies:   mbed TextLCD

Committer:
m_fazel
Date:
Sat Sep 29 22:47:56 2018 +0000
Revision:
0:3e6bb88dd7ee
Child:
2:6acc2f4efd39
Child:
1:3ae60fd51e2b
temp sensor

Who changed what in which revision?

UserRevisionLine numberNew contents of line
m_fazel 0:3e6bb88dd7ee 1 #include "mbed.h"
m_fazel 0:3e6bb88dd7ee 2 #include "TextLCD.h"
m_fazel 0:3e6bb88dd7ee 3
m_fazel 0:3e6bb88dd7ee 4 void settemp();
m_fazel 0:3e6bb88dd7ee 5 void tempmenu();
m_fazel 0:3e6bb88dd7ee 6 float temp_cal();
m_fazel 0:3e6bb88dd7ee 7 AnalogIn temp_sen(A0);
m_fazel 0:3e6bb88dd7ee 8 TextLCD lcd(PTC7,PTC0,PTC3,PTC4,PTC5,PTC6);
m_fazel 0:3e6bb88dd7ee 9 InterruptIn button(D0);
m_fazel 0:3e6bb88dd7ee 10 DigitalIn push2(D1);
m_fazel 0:3e6bb88dd7ee 11 DigitalIn push1(D2);
m_fazel 0:3e6bb88dd7ee 12 DigitalIn push3(D3);
m_fazel 0:3e6bb88dd7ee 13 PwmOut mypwm(A5);
m_fazel 0:3e6bb88dd7ee 14 //DigitalOut myled(A);
m_fazel 0:3e6bb88dd7ee 15
m_fazel 0:3e6bb88dd7ee 16 int temp = 25;
m_fazel 0:3e6bb88dd7ee 17 float tempC,tempF,a[10],avg;
m_fazel 0:3e6bb88dd7ee 18
m_fazel 0:3e6bb88dd7ee 19 int main() {
m_fazel 0:3e6bb88dd7ee 20 tempmenu();
m_fazel 0:3e6bb88dd7ee 21 }
m_fazel 0:3e6bb88dd7ee 22
m_fazel 0:3e6bb88dd7ee 23 void settemp(){
m_fazel 0:3e6bb88dd7ee 24 lcd.cls();
m_fazel 0:3e6bb88dd7ee 25 lcd.printf("enter temp: %d",temp);
m_fazel 0:3e6bb88dd7ee 26 wait(0.2);
m_fazel 0:3e6bb88dd7ee 27 while(1){
m_fazel 0:3e6bb88dd7ee 28
m_fazel 0:3e6bb88dd7ee 29 // temp up
m_fazel 0:3e6bb88dd7ee 30 if(push2 == 0 && push1 == 1){
m_fazel 0:3e6bb88dd7ee 31 temp++;
m_fazel 0:3e6bb88dd7ee 32 lcd.cls();
m_fazel 0:3e6bb88dd7ee 33 lcd.printf("enter temp: %d",temp);
m_fazel 0:3e6bb88dd7ee 34 wait(0.2);
m_fazel 0:3e6bb88dd7ee 35 }
m_fazel 0:3e6bb88dd7ee 36
m_fazel 0:3e6bb88dd7ee 37 // temp down
m_fazel 0:3e6bb88dd7ee 38 if(push1 == 0 && push2 == 1){
m_fazel 0:3e6bb88dd7ee 39 temp--;
m_fazel 0:3e6bb88dd7ee 40 lcd.cls();
m_fazel 0:3e6bb88dd7ee 41 lcd.printf("enter temp: %d",temp);
m_fazel 0:3e6bb88dd7ee 42 wait(0.2);
m_fazel 0:3e6bb88dd7ee 43 }
m_fazel 0:3e6bb88dd7ee 44
m_fazel 0:3e6bb88dd7ee 45 // confirm
m_fazel 0:3e6bb88dd7ee 46 if(push3 == 0){
m_fazel 0:3e6bb88dd7ee 47 // tempmenu();
m_fazel 0:3e6bb88dd7ee 48 break;
m_fazel 0:3e6bb88dd7ee 49 }
m_fazel 0:3e6bb88dd7ee 50
m_fazel 0:3e6bb88dd7ee 51 }
m_fazel 0:3e6bb88dd7ee 52 }
m_fazel 0:3e6bb88dd7ee 53
m_fazel 0:3e6bb88dd7ee 54 void tempmenu() {
m_fazel 0:3e6bb88dd7ee 55 while(1){
m_fazel 0:3e6bb88dd7ee 56 lcd.cls();
m_fazel 0:3e6bb88dd7ee 57 // display menu
m_fazel 0:3e6bb88dd7ee 58 mypwm.period_ms(10);
m_fazel 0:3e6bb88dd7ee 59 lcd.printf("T:%.2f \n",temp_cal());
m_fazel 0:3e6bb88dd7ee 60 lcd.printf("1 to mod temp");
m_fazel 0:3e6bb88dd7ee 61 wait(0.2);
m_fazel 0:3e6bb88dd7ee 62 if(temp_cal()<temp){
m_fazel 0:3e6bb88dd7ee 63 wait(0.5);
m_fazel 0:3e6bb88dd7ee 64 mypwm.pulsewidth_ms(8);
m_fazel 0:3e6bb88dd7ee 65 }
m_fazel 0:3e6bb88dd7ee 66 if(temp_cal()>=temp){
m_fazel 0:3e6bb88dd7ee 67 mypwm.pulsewidth_ms(2);
m_fazel 0:3e6bb88dd7ee 68 }
m_fazel 0:3e6bb88dd7ee 69
m_fazel 0:3e6bb88dd7ee 70 //else{
m_fazel 0:3e6bb88dd7ee 71 //myled =0;}
m_fazel 0:3e6bb88dd7ee 72 // interrupt
m_fazel 0:3e6bb88dd7ee 73 button.fall(&settemp);
m_fazel 0:3e6bb88dd7ee 74 lcd.printf("end");
m_fazel 0:3e6bb88dd7ee 75 }
m_fazel 0:3e6bb88dd7ee 76 }
m_fazel 0:3e6bb88dd7ee 77
m_fazel 0:3e6bb88dd7ee 78 float temp_cal(){
m_fazel 0:3e6bb88dd7ee 79 avg=0;
m_fazel 0:3e6bb88dd7ee 80 int i;
m_fazel 0:3e6bb88dd7ee 81 for(i=0;i<10;i++)
m_fazel 0:3e6bb88dd7ee 82 {
m_fazel 0:3e6bb88dd7ee 83 a[i]=temp_sen.read();
m_fazel 0:3e6bb88dd7ee 84 wait(.05);
m_fazel 0:3e6bb88dd7ee 85 }
m_fazel 0:3e6bb88dd7ee 86 for(i=0;i<10;i++)
m_fazel 0:3e6bb88dd7ee 87 {
m_fazel 0:3e6bb88dd7ee 88 avg=avg+(a[i]/10);
m_fazel 0:3e6bb88dd7ee 89 }
m_fazel 0:3e6bb88dd7ee 90
m_fazel 0:3e6bb88dd7ee 91
m_fazel 0:3e6bb88dd7ee 92 tempC=(avg*3.685503686*100);
m_fazel 0:3e6bb88dd7ee 93 tempF=(9.0*tempC)/5.0 + 32.0;
m_fazel 0:3e6bb88dd7ee 94 return tempC;
m_fazel 0:3e6bb88dd7ee 95 }
m_fazel 0:3e6bb88dd7ee 96
m_fazel 0:3e6bb88dd7ee 97