xbee Test, Serial communication with Arduino. transmit Data from an SHT15 connected to a arduino to the mbed
main.cpp@1:c9f84815139d, 2011-05-20 (annotated)
- Committer:
- Torsten
- Date:
- Fri May 20 06:10:35 2011 +0000
- Revision:
- 1:c9f84815139d
- Parent:
- 0:252e98aa671c
Final
Who changed what in which revision?
User | Revision | Line number | New 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 | } |