xbee Test, Serial communication with Arduino. transmit Data from an SHT15 connected to a arduino to the mbed
Diff: main.cpp
- Revision:
- 1:c9f84815139d
- Parent:
- 0:252e98aa671c
--- a/main.cpp Thu May 12 08:57:04 2011 +0000 +++ b/main.cpp Fri May 20 06:10:35 2011 +0000 @@ -1,8 +1,8 @@ /** * XBeeBeispiel - * Eine kleine Testanwendung die von einem Arduino die Werte des SHT15 per xbee empfängt - * die daten werden im serielle AT Modus übertragen - * AnschlieÃend werden die Werte in Float convertiert und gespeichert + * Eine kleine Testanwendung die von einem Arduino die Werte des SHT15 per xbee empfängt + * die daten werden im serielle AT Modus übertragen + * Anschließend werden die Werte in Float convertiert und gespeichert * Autor: Torsten Dillenburg * erstellt: 11.05.2011 */ @@ -10,20 +10,20 @@ #include "mbed.h" #include "TextLCD.h" -Serial xbee1(p28, p27); //Serielles Objekt für den XBEE +Serial xbee1(p28, p27); //Serielles Objekt für den XBEE TextLCD lcd(p26, p25, p24, p23, p22, p21); // rs, e, d4-d7 -DigitalOut rst1(p11); //Digital reset für den XBee, 200ns zum reset +DigitalOut rst1(p11); //Digital reset für den XBee, 200ns zum reset -DigitalOut myled(LED3);//Debug über Led 3 und 4 am mbed +DigitalOut myled(LED3);//Debug über Led 3 und 4 am mbed DigitalOut myled2(LED4); -Serial pc(USBTX, USBRX);//serial Schnittstelle über den USB port zum computer +Serial pc(USBTX, USBRX);//serial Schnittstelle über den USB port zum computer -char v_char_temp[5]; // Buffer für die Seriellen werte +char v_char_temp[5]; // Buffer für die Seriellen werte int stelle; double v_messwert[3]; bool debug = true; -bool lcdupdate = false; +bool lcd_update = false; int main() { @@ -51,14 +51,21 @@ case '8': stelle++; break; case '9': stelle++; break; case '.': stelle++; break; - case 't': v_messwert[0] = atof(v_char_temp); break; - case 'h': v_messwert[1] = atof(v_char_temp); break; - case 'd': v_messwert[2] = atof(v_char_temp); break; - default : for(int i=stelle; i>=0; i--) {v_char_temp[i]='0';} stelle=0;//puffer löschen - } + case 'T': v_messwert[0] = atof(v_char_temp); lcd_update = true; break; //temp + case 'H': v_messwert[1] = atof(v_char_temp); lcd_update = true; break; //hum + case 'D': v_messwert[2] = atof(v_char_temp); lcd_update = true; break; //dew + default : for(int i=stelle; i>=0; i--) {v_char_temp[i]='0';} stelle=0;//puffer löschen + } + myled = 1; //Turn Led 3 on for succcessfull communication - lcd.putc(v_char_temp[0]); - myled = 1; //Turn Led 3 on for succcessfull communication + } + if (lcd_update) + { + lcd_update=false; + lcd.cls(); + // 1234567890123456 + lcd.printf("Aussen: T H\n"); + lcd.printf(" %2.2f %2.2f",v_messwert[0],v_messwert[1]); } } } \ No newline at end of file