A sensor LM35 give a analog voltage to the AD converter. This information will be send to the COM for the Bluetooth Modul and to the PC for visualisation with profilab

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers mainLM35_Bluetooth.cpp Source File

mainLM35_Bluetooth.cpp

00001 
00002 /*
00003 LM35 und Bluetooth
00004 Beispiel zur Temperaturmessung mit LM35 und Bluetooth
00005 Für die serielle Kommunikation mit Bluetooth werden die 
00006 pins PC_10 und PC_11 benutzt. Dort das Bluetooth Modul HC06 einstecken
00007 TxD und RxD werden gedreht. Das Modul erhält +5V als VCC. RxD und TxD 
00008 direkt anschliessen -> 3,3V bis 5V tolerant.
00009 Über die USB Verbindung wird eine virtuelle COM zum PC aufgebaut, 9600Baud
00010 Diese Verbindung wird für Profilab benutzt.
00011 G. Neumaier J.Schnaiter Gewerblich-Technische Schule Offenburg Jan2018
00012 ===========================================================
00013 */
00014 // 04u_ADC-Bluetooth
00015 #include "mbed.h"
00016 #define ANZAHL 10
00017 
00018 Serial pc(SERIAL_TX, SERIAL_RX);
00019 Serial blue(PC_10, PC_11); // TX,RX
00020 AnalogIn lm35(A0);
00021 
00022 int main()
00023 {
00024 
00025     float tempC,a[ANZAHL],avg;
00026     int tempBlue;
00027     while(1) {
00028         for(int i=0; i<ANZAHL; i++) {
00029             // gemessen wird zwischen 0 und 1
00030             a[i]=lm35.read();
00031             wait(.02);
00032         }
00033         avg=0;
00034         for(int i=0; i<ANZAHL; i++) {
00035             avg=avg+a[i];
00036         }
00037         avg=avg/ANZAHL;
00038 
00039         // lm35 liefert 10mV pro °C
00040         // 20mV -> 20°C
00041         tempC=(avg*3.3*100.0); // 3,3V sowie 10mV * 100
00042         //AD-Wandler liefert 0.000 ...1.000 (3,3V)
00043         //max Werte: 0,000 bis 333.000 
00044         //pc.printf("%1.3f\n",tempC);
00045         tempBlue = (int) tempC;
00046         
00047         
00048         // Keuwl kann nur positive Werte 0 ...255 0=0Grad; 20=0Grad 80= 80Grad
00049         blue.printf("*T%d",tempBlue);
00050         
00051      //An PC mit Profilab   
00052     pc.printf("%1.3f",tempC);  //%1.3f eine Stelle vor dem Komma 3 Stellen danach float Variable
00053     pc.putc(10);   //10 =0x0A Steuerzeichen neue Zeile
00054     pc.printf("%u",150);  //u ist unsigned integer Dummy könnte für Ausgabe 8 bit (z.B. 8pins) benutzt werden
00055     pc.putc(10);   //10 =0x0A Steuerzeichen neue Zeile  
00056     pc.putc(13);//13 =0x0D Steuerzeichen Wagenruecklauf (an Anfang der Zeile)
00057         
00058         wait_ms(500); //500msec
00059         //wait(1); //1sec
00060     }
00061 }
00062 
00063