Serial Communication

PRINTING A CHARACTER


/* 
 * http://arduspot.blogspot.in/p/serial-communication.html
 */

void setup() 
{
  Serial.begin(9600);
  Serial.print('a');
}

void loop() 
{}


READ & PRINT A CHARACTER


/*
 * http://arduspot.blogspot.in/p/serial-communication.html
 */

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  if(Serial.available()>0)
  {
    Serial.print(Serial.read());
  }
}

PRINTING A STRING


/* 
 * http://arduspot.blogspot.in/p/serial-communication.html
 */

void setup() 
{
  Serial.begin(9600);
  Serial.print("Hello World");
}

void loop() 
{}

PRINTING A STRING - LOOP


/*
 * http://arduspot.blogspot.in/p/serial-communication.html
 */

void setup()
{
  Serial.begin(9600);
}

void loop()
{
  Serial.println("Hello World");
}

PRINTING A VARIABLE

/* 
 * http://arduspot.blogspot.in/p/serial-communication.html
 */

int a = 5;
void setup() 
{
  Serial.begin(9600);
}

void loop() 
{
  Serial.print("a = ");
  Serial.println(a);
}

PARSING SERIAL DATA


/* 
 * http://arduspot.blogspot.in/p/serial-communication.html
 */

#include<String.h>
#define MAX_STRING_LEN 50

const char EOPmarker = '$';
char serialbuf[32];
int var1,var3,var2;
char* a;
char* b;
char* c;

void setup()
{
  Serial.begin(9600);
}

void loop() 
{
  if (Serial.available() > 0) 
  {
    static int bufpos = 0;
    char inchar = Serial.read();
    if (inchar != EOPmarker)
    {
      serialbuf[bufpos] = inchar;
      bufpos++;
    }
    
    else 
    {
      serialbuf[bufpos] = 0;
      bufpos = 0;
      
      a = subStr(serialbuf, ",", 1);
      b = subStr(serialbuf, ",", 2);
      c = subStr(serialbuf, ",", 3);
      
      var1 = atoi(a);
      var2 = atoi(b);
      var3 = atoi(c);
      
      Serial.println(var1);
      Serial.println(var2);
      Serial.println(var3);
    }      
  }
}

char* subStr (char* input_string, char *separator, int segment_number)
{
  char *act, *sub, *ptr;
  static char copy[MAX_STRING_LEN];
  int i;
  strcpy(copy, input_string);
  for(i = 1, act = copy; i <= segment_number; i++, act = NULL)
  {
    sub = strtok_r(act, separator, &ptr); 
    if (sub == NULL) break; 
  }
  return sub; 
}






No comments:

Post a Comment