/********************************* 代码功能:串口控RGB三色灯 使用函数: Serial.flush(); //清空缓存区 Serial.available(); //读取当前串口缓冲池的数据量 Serial.print(字符串); //通过TX传出去 Serial.write(字符串); //写入串口中 Serial.println(字符串); //通过TX传出去,并在尾端加换行 strtok(字符串,'分隔符'); //字符串分解 strtol(字符串地址,NULL(默认),设置进制); //字符转整形 constrain(源数据,区间下界,区间上界); //区间函数 analogWrite(引脚号.电平); //IO输出函数 创作时间:2016*01*05 作者邮箱:jikexianfeng@outlook.com ********************************/ ]; //声明一个字符空间 int red,green,blue; //定义一个变量 ; //红 ; //绿 ; //蓝 void setup(){ Serial.begin(); //初始化串口波特率 Serial.flush(); //清空串口缓存 pinMode(Redpin,OUTPUT); pinMode(Greenpin,OUTPUT); pinMode(Bluepin,OUTPUT); } void loop() { ){ //读取当前串口缓冲池的数据量 ; delay(); int numChar = Serial.available(); //获取当前缓存池的数量 ){ //只要最后的15个字符 numChar = ; } while(numChar--){ buffer[index++] = Serial.read(); //提取缓存中的数据 } splitString(buffer); //传入功能函数 } } void splitString(char * data){ Serial.print("Data entered:"); Serial.println(data); char* parameter; parameter = strtok(data,","); //分解字符串 while(parameter != NULL){ //当 setLED(parameter); parameter = strtok(NULL,","); } ;x<;x++){ buffer[x]='\0'; } Serial.flush(); } void setLED(char *data){ ]==] == 'R')){ //是否是 r ,NULL,); //字符转整形 Ans = constrain(Ans,,); //去区间值 analogWrite(Redpin,Ans); //输出 Serial.print("Red is set to :"); Serial.println(Ans); } ] == ] == 'G')){ ,NULL,); Ans = constrain(Ans,,); analogWrite(Greenpin,Ans); Serial.print("Green is set to :"); Serial.println(Ans); } ] == ] == 'B')){ ,NULL,); Ans = constrain(Ans,,); analogWrite(Bluepin,Ans); Serial.print("Blue is set to :"); Serial.println(Ans); } }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
参考书籍:http://vdisk.weibo.com/s/B_U0yKSwLLqNM?category_id=0&parents_ref=B_U0yKSx62tsp
参考网站:http://wiring.org.co/reference/
参考网页:http://www.cnblogs.com/jikexianfeng/p/6243654.html
参考网页:http://www.cnblogs.com/rayray/p/3198091.html