#include const int node_id = 1; int b1,b2=0,b3=0,b4=0; //framing bits int id_read = 0; SoftwareSerial mySerial(3, 4); // RX, TX int red_pin = 0; int green_pin = 1; int blue_pin = 2; int red_duty = 0; //duty cycle of leg pins of 255 int green_duty = 0; int blue_duty = 0; void setup(){ mySerial.begin(9600); pinMode(red_pin,OUTPUT); //set up led pins as outputs pinMode(green_pin,OUTPUT); pinMode(blue_pin,OUTPUT); } void read_duties(){ while(mySerial.available()==0);id_read = mySerial.read(); if (id_read == node_id){ while(mySerial.available()==0);red_duty=mySerial.read(); while(mySerial.available()==0);green_duty=mySerial.read(); while(mySerial.available()==0);blue_duty=mySerial.read(); } } void loop(){ for(int j=0; j<255; ++j){ if(j>=red_duty){ digitalWrite(red_pin,HIGH); } else{ digitalWrite(red_pin,LOW); } if(j>=green_duty){ digitalWrite(green_pin,HIGH); } else{ digitalWrite(green_pin,LOW); } if(j>=blue_duty){ digitalWrite(blue_pin,HIGH); } else{ digitalWrite(blue_pin,LOW); } if(mySerial.available()!=0){ b1=b2; b2=b3; b3=b4; b4 = mySerial.read(); if(b1==1 && b2==2 && b3==3 && b4==4){ read_duties(); } } } }