// --------------------------- slave ------------------------------------------- #include 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 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); } }