zoukankan      html  css  js  c++  java
  • 进阶之路(中级篇)

    本文由博主原创,如有不对之处请指明,转载请说明出处。

     1 /*********************************
     2 代码功能:串口控RGB三色灯
     3 使用函数:
     4     Serial.flush();                                 //清空缓存区
     5     Serial.available();                             //读取当前串口缓冲池的数据量
     6     Serial.print(字符串);                           //通过TX传出去
     7     Serial.write(字符串);                           //写入串口中
     8     Serial.println(字符串);                         //通过TX传出去,并在尾端加换行
     9     strtok(字符串,'分隔符');                        //字符串分解
    10     strtol(字符串地址,NULL(默认),设置进制);          //字符转整形
    11     constrain(源数据,区间下界,区间上界);             //区间函数
    12     analogWrite(引脚号.电平);                       //IO输出函数
    13 创作时间:2016*01*05
    14 作者邮箱:jikexianfeng@outlook.com
    15 ********************************/
    16 char buffer[18];                                //声明一个字符空间
    17 int red,green,blue;                             //定义一个变量
    18 
    19 int Redpin = 11;                                //
    20 int Greenpin = 10;                              //绿
    21 int Bluepin = 9;                                //
    22 
    23 void setup(){
    24     Serial.begin(9600);                         //初始化串口波特率
    25     Serial.flush();                             //清空串口缓存
    26     pinMode(Redpin,OUTPUT);
    27     pinMode(Greenpin,OUTPUT);
    28     pinMode(Bluepin,OUTPUT);
    29 }
    30 void loop()
    31 {
    32     if(Serial.available() > 0){                 //读取当前串口缓冲池的数据量
    33         int index = 0;
    34         delay(100);
    35         int numChar = Serial.available();       //获取当前缓存池的数量
    36         if(numChar > 15){                       //只要最后的15个字符
    37             numChar = 15;
    38         }
    39         while(numChar--){
    40             buffer[index++] = Serial.read();    //提取缓存中的数据
    41         }
    42         splitString(buffer);                    //传入功能函数
    43     }
    44 }
    45 void splitString(char * data){
    46     Serial.print("Data entered:");
    47     Serial.println(data);
    48     char* parameter;
    49     parameter = strtok(data,",");               //分解字符串
    50     while(parameter != NULL){                   //
    51         setLED(parameter);
    52         parameter = strtok(NULL,",");
    53     }
    54     for(int x=0;x<16;x++){
    55         buffer[x]='';
    56     }
    57     Serial.flush();
    58 }
    59 void setLED(char *data){
    60     if((data[0]=='r')||(data[0] == 'R')){       //是否是 r
    61         int Ans = strtol(data+1,NULL,10);       //字符转整形
    62         Ans = constrain(Ans,0,255);             //去区间值
    63         analogWrite(Redpin,Ans);                //输出
    64         Serial.print("Red is set to :");
    65         Serial.println(Ans);
    66     }
    67     
    68     if((data[0] == 'g')||(data[0] == 'G')){
    69         int Ans = strtol(data+1,NULL,10);
    70         Ans = constrain(Ans,0,255);
    71         analogWrite(Greenpin,Ans);
    72         Serial.print("Green is set to :");
    73         Serial.println(Ans);
    74     }
    75     
    76     if((data[0] == 'b')||(data[0] == 'B')){
    77         int Ans = strtol(data+1,NULL,10);
    78         Ans = constrain(Ans,0,255);
    79         analogWrite(Bluepin,Ans);
    80         Serial.print("Blue is set to :");
    81         Serial.println(Ans);
    82     }
    83 }

    //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

    参考书籍: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

  • 相关阅读:
    win10去除桌面快捷方式小箭头
    java创建线程的几种方式
    Spring知识点总结
    Myeclipse运行报错:an out of memory error has occurred的解决方法
    vue-cli的使用
    3种jQuery弹出大图效果
    Weixin API -- 微信js接口
    setTimeOut传参数
    PHP的八种数据类型
    99%的人都理解错了HTTP中GET与POST的区别
  • 原文地址:https://www.cnblogs.com/jikexianfeng/p/6825590.html
Copyright © 2011-2022 走看看