Guest User

Untitled

a guest
Feb 22nd, 2013
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.20 KB | None | 0 0
  1. /*
  2.   Xbee1
  3.   D. Thiebaut
  4.  
  5.   Makes Arduino send 1 character via XBee wireless to another XBee connected
  6.   to a computer via a USB cable.
  7.  
  8.   The circuit:
  9.   * RX is digital pin 2 (connect to TX of XBee)
  10.   * TX is digital pin 3 (connect to RX of XBee)
  11.  
  12.   Based on a sketch created back in the mists of time by Tom Igoe
  13.   itself based on Mikal Hart's example
  14.  
  15. */
  16.  
  17. #include <SoftwareSerial.h>
  18. #include <stdio.h>
  19. #include <stdlib.h>
  20.  
  21. SoftwareSerial xbee(50, 51); // RX, TX
  22. //char c = 'A';
  23. int  pingPong = 1;
  24. String splitString(String s, char parser,int index);
  25.  
  26. void setup()  {
  27.    Serial.begin(9600);
  28.    Serial.println( "Arduino started sending bytes via XBee" );
  29.    
  30.   pinMode(12, OUTPUT); //Initiates Motor Channel A pin
  31.   pinMode(9, OUTPUT); //Initiates Brake Channel A pin
  32.  
  33.    // set the data rate for the SoftwareSerial port
  34.    xbee.begin( 9600 );
  35. }
  36.  
  37. void loop()  {
  38. /*if (xbee.available()) {
  39.     byte temp= xbee.read();
  40.     Serial.print(temp);
  41. }
  42.   //xbee.print("['1']['Humidity']=");
  43.  
  44.  
  45.   //--- switch LED on Arduino board every character sent---
  46.   if ( pingPong == 0 )
  47.     digitalWrite(13, LOW);
  48.   else
  49.     digitalWrite(13, HIGH);
  50.   pingPong = 1 - pingPong;
  51.  
  52.   */
  53. if (xbee.available()) {
  54.   char val = xbee.read(); // this will read from the xbee
  55.   int turns=splitString(val,',',0);
  56.    int moving=splitString(val,',',1);
  57.    int sent=splitString(val,',',2);
  58.    
  59.    if(moving > 0){
  60.        digitalWrite(12, HIGH);
  61.        digitalWrite(9, LOW);
  62.        analogWrite(3, 100);
  63.    }
  64.    if(moving < 0){
  65.      digitalWrite(12, LOW);
  66.      digitalWrite(9, LOW);  
  67.      analogWrite(3, 100);  
  68.    }
  69.  
  70. }
  71.   delay( 300 );
  72. }
  73.  
  74. String splitString(String s, char parser, int index){
  75.       String rs='\0';
  76.       int parserIndex = index;
  77.       int parserCnt=0;
  78.       int rFromIndex=0, rToIndex=-1;
  79.  
  80.       while(index>=parserCnt){
  81.         rFromIndex = rToIndex+1;
  82.         rToIndex = s.indexOf(parser,rFromIndex);
  83.  
  84.         if(index == parserCnt){
  85.           if(rToIndex == 0 || rToIndex == -1){
  86.             return '\0';
  87.           }
  88.           return s.substring(rFromIndex,rToIndex);
  89.         }
  90.         else{
  91.           parserCnt++;
  92.         }
  93.  
  94.       }
  95.       return rs;
  96.     }
Add Comment
Please, Sign In to add comment