// --------------------------- 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