candale icon

Master-SlaveCommunication

candale | PRO | 09/21/13 06:22:28 AM UTC | 0 ⭐ | 214 👁️ | Never ⏰ | []
C++ |

1.29 KB

|

None

|

0 👍

/

0 👎

// --------------------------- slave -------------------------------------------
#include <Wire.h>
 
int led=13;
 
char cmd[100];
void setup()
{
  Wire.begin(1);
  Wire.onReceive(recEvent);
  pinMode(led, OUTPUT);
  digitalWrite(led, LOW);
  digitalWrite(10, HIGH);
}
 
void loop()
{
  delay(100);
}
 
void proc()
{
  char * a=(char *)malloc(15);
  char * b=(char *)malloc(15);
  
  a=strtok(cmd, " ");
  b=strtok('\0', " ");
  
  if(strcmp(a, "speed")==0)
  {
    analogWrite(13, 150);
  }
  if(strcmp(a, "steps")==0)
  {
    analogWrite(13, 0);
  }
}
 
 
void recEvent(int n)
{
  cmd[0]='\0';
  int i=0;
  while(Wire.available())
  {
    cmd[i++]=Wire.read();
    cmd[i]='\0';
  }
  proc();
}
 
// ------------------------------------------- master --------------------------------------------
#include <Wire.h>
 
void setup()
{
  Wire.begin();
  Serial.begin(19200);
}
char cmd[100];
 
void Read() 
{
  cmd[0]='\0';
  int i=0;
  char character;
 
  while(Serial.available()) {
      character = Serial.read();
      cmd[i++]=character;
      cmd[i]='\0';
      delay(1);
  }
 
}
 
void loop()
{
  Read();
  if(cmd[0]!='\0')
  {
    Wire.beginTransmission(1);
    Wire.write(cmd);
    Wire.endTransmission();
    delay(500);
    
  }
  
  
}

Comments