xbee Test, Serial communication with Arduino. transmit Data from an SHT15 connected to a arduino to the mbed

Dependencies:   TextLCD mbed

Committer:
Torsten
Date:
Fri May 20 06:10:35 2011 +0000
Revision:
1:c9f84815139d
Parent:
0:252e98aa671c
Final

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Torsten 0:252e98aa671c 1 /**
Torsten 0:252e98aa671c 2 * XBeeBeispiel
Torsten 1:c9f84815139d 3 * Eine kleine Testanwendung die von einem Arduino die Werte des SHT15 per xbee empfängt
Torsten 1:c9f84815139d 4 * die daten werden im serielle AT Modus übertragen
Torsten 1:c9f84815139d 5 * Anschließend werden die Werte in Float convertiert und gespeichert
Torsten 0:252e98aa671c 6 * Autor: Torsten Dillenburg
Torsten 0:252e98aa671c 7 * erstellt: 11.05.2011
Torsten 0:252e98aa671c 8 */
Torsten 0:252e98aa671c 9
Torsten 0:252e98aa671c 10 #include "mbed.h"
Torsten 0:252e98aa671c 11 #include "TextLCD.h"
Torsten 0:252e98aa671c 12
Torsten 1:c9f84815139d 13 Serial xbee1(p28, p27); //Serielles Objekt für den XBEE
Torsten 0:252e98aa671c 14 TextLCD lcd(p26, p25, p24, p23, p22, p21); // rs, e, d4-d7
Torsten 1:c9f84815139d 15 DigitalOut rst1(p11); //Digital reset für den XBee, 200ns zum reset
Torsten 0:252e98aa671c 16
Torsten 1:c9f84815139d 17 DigitalOut myled(LED3);//Debug über Led 3 und 4 am mbed
Torsten 0:252e98aa671c 18 DigitalOut myled2(LED4);
Torsten 0:252e98aa671c 19
Torsten 1:c9f84815139d 20 Serial pc(USBTX, USBRX);//serial Schnittstelle über den USB port zum computer
Torsten 0:252e98aa671c 21
Torsten 1:c9f84815139d 22 char v_char_temp[5]; // Buffer für die Seriellen werte
Torsten 0:252e98aa671c 23 int stelle;
Torsten 0:252e98aa671c 24 double v_messwert[3];
Torsten 0:252e98aa671c 25 bool debug = true;
Torsten 1:c9f84815139d 26 bool lcd_update = false;
Torsten 0:252e98aa671c 27
Torsten 0:252e98aa671c 28
Torsten 0:252e98aa671c 29 int main() {
Torsten 0:252e98aa671c 30 rst1 = 0; //Set reset pin to 0
Torsten 0:252e98aa671c 31 myled = 0;//Set LED3 to 0
Torsten 0:252e98aa671c 32 myled2= 0;//Set LED4 to 0
Torsten 0:252e98aa671c 33 wait_ms(1);//Wait at least one millisecond
Torsten 0:252e98aa671c 34 rst1 = 1;//Set reset pin to 1
Torsten 0:252e98aa671c 35 wait_ms(1);//Wait another millisecond
Torsten 0:252e98aa671c 36 stelle =0;
Torsten 0:252e98aa671c 37 while (1) {//Neverending Loop
Torsten 0:252e98aa671c 38 if (xbee1.readable()) {//Checking for serial comminication
Torsten 0:252e98aa671c 39 myled = 0; //Turn Led 3 Off
Torsten 0:252e98aa671c 40 v_char_temp[stelle]=xbee1.getc();
Torsten 0:252e98aa671c 41 if (debug) pc.putc(v_char_temp[stelle]);
Torsten 0:252e98aa671c 42 switch(v_char_temp[stelle]) {
Torsten 0:252e98aa671c 43 case '0': stelle++; break;
Torsten 0:252e98aa671c 44 case '1': stelle++; break;
Torsten 0:252e98aa671c 45 case '2': stelle++; break;
Torsten 0:252e98aa671c 46 case '3': stelle++; break;
Torsten 0:252e98aa671c 47 case '4': stelle++; break;
Torsten 0:252e98aa671c 48 case '5': stelle++; break;
Torsten 0:252e98aa671c 49 case '6': stelle++; break;
Torsten 0:252e98aa671c 50 case '7': stelle++; break;
Torsten 0:252e98aa671c 51 case '8': stelle++; break;
Torsten 0:252e98aa671c 52 case '9': stelle++; break;
Torsten 0:252e98aa671c 53 case '.': stelle++; break;
Torsten 1:c9f84815139d 54 case 'T': v_messwert[0] = atof(v_char_temp); lcd_update = true; break; //temp
Torsten 1:c9f84815139d 55 case 'H': v_messwert[1] = atof(v_char_temp); lcd_update = true; break; //hum
Torsten 1:c9f84815139d 56 case 'D': v_messwert[2] = atof(v_char_temp); lcd_update = true; break; //dew
Torsten 1:c9f84815139d 57 default : for(int i=stelle; i>=0; i--) {v_char_temp[i]='0';} stelle=0;//puffer löschen
Torsten 1:c9f84815139d 58 }
Torsten 1:c9f84815139d 59 myled = 1; //Turn Led 3 on for succcessfull communication
Torsten 0:252e98aa671c 60
Torsten 1:c9f84815139d 61 }
Torsten 1:c9f84815139d 62 if (lcd_update)
Torsten 1:c9f84815139d 63 {
Torsten 1:c9f84815139d 64 lcd_update=false;
Torsten 1:c9f84815139d 65 lcd.cls();
Torsten 1:c9f84815139d 66 // 1234567890123456
Torsten 1:c9f84815139d 67 lcd.printf("Aussen: T H\n");
Torsten 1:c9f84815139d 68 lcd.printf(" %2.2f %2.2f",v_messwert[0],v_messwert[1]);
Torsten 0:252e98aa671c 69 }
Torsten 0:252e98aa671c 70 }
Torsten 0:252e98aa671c 71 }