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

 /*********************************
 代码功能:串口控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

串口控RGB三色灯的更多相关文章

  1. 进阶之路(中级篇) - 015 串口控RGB三色灯

    本文由博主原创,如有不对之处请指明,转载请说明出处. /********************************* 代码功能:串口控RGB三色灯 使用函数: Serial.flush(); / ...

  2. Victor 串口 VCL 控件 - 简单实用, 功能强大的 C++ Builder 串口控件!

    源:Victor 串口 VCL 控件 - 简单实用, 功能强大的 C++ Builder 串口控件! 2014年02月06日发布控件的重要更新版本: Victor 串口控件 1.5.0.2 版本 (包 ...

  3. cport串口控件的应用

    cport是一个很强大的串口控件.支持delphi/bcb.最新版本是v4.10.官网下载地址是:http://sourceforge.net/projects/comport/files/compo ...

  4. 串口控制RGB灯程序

    实验目的: 通过上位机给串口发送数据(字符); STM32收到数据进入中断程序原封不动返回上位机,并且根据收到的信息产出相应的进行操作.(1- led_on  2 – ledoff...); 源码   ...

  5. delphi SPCOMM串口控件

    在Delphi7.0中安装Spcomm串口通信控件的方法为:选择Delphi7.0的“Component”菜单,点击“Install Component...”菜单项,然后在弹出的Into exist ...

  6. BCB 串口控件的使用 TComm

    昨天工作用到了串口通信,MMP的,昨天懵逼了一下午,今天终于整通了,身为菜鸟,大师们是不懂这些心痛的. 进入主题:使用BCB提供的控件TComm编程方便且简单,TComm位于System分类里面.   ...

  7. C# 实现串口发送数据(不用串口控件版)

    参考:https://blog.csdn.net/mannix_lei/article/details/79979432 https://www.cnblogs.com/ElijahZeng/p/76 ...

  8. winform串口控件serialPort1的使用

    serialPort1 控件使用的关键点主要有三: 1.配置串口号2.配置数据接收事件3.打开串口 关键代码如下: private void Form1_Load(object sender, Eve ...

  9. VS2013+MFC串口控件的简单上位机

    因为做东西,正好用到这里.所以就上传了文件分享一下. 利用VS带的MFC库,用起来还是比较方便的.空间的程序构架都是自动生成的,具体的程序自己加进去就行. 里面有整个的工程 还带有一个生成的EXE文件 ...

随机推荐

  1. Atitit 研发团队建设----福利法案--非物质福利与物质福利法案

    Atitit 研发团队建设----福利法案--非物质福利与物质福利法案 1.1. 何为非物质福利法案??1 1.2. 福利类型1 1.2.1. 公共福利1 1.2.2. 个人福利2 1.2.3. 组织 ...

  2. 一个书店管理系统java

    自己的第一个小程序 ps:书是在集合里面后面文件处理的有一点小问题,希望有人会给点意见 //客户类 import java.io.Serializable; public class Customer ...

  3. Linux下把Mysql和Apache加入到系统服务里

    Linux下注册Apache与MySQL为系统服务 Apache加入到系统服务里面: cp /安装目录下/apache/bin/apachectl /etc/rc.d/init.d/httpd 修改h ...

  4. Mysql Innodb体系结构

    Innodb体系结构 Innodb存储引擎主要包括内存池以及后台线程. 内存池:多个内存块组成一个内存池,主要维护进程/线程的内部数据.缓存磁盘数据,修改文件前先修改内存.redo log 后台线程: ...

  5. 微信小程序免费Https获取以及Ubuntu Nginx配置

    先贴上Nginx的配置文件 user www-data; worker_processes auto; pid /run/nginx.pid; events { worker_connections ...

  6. bzoj3769 spoj 8549 BST again

    题解: 比较水的题目 普通dp其实复杂度还是比较大的 可以任意模数ntt优化.. 但好像没人写.. 代码: #include <bits/stdc++.h> using namespace ...

  7. Windows安装PostgreSQL11.1

    Windows安装PostgreSQL11.1 安装过程如下: 1.下载安装包postgresql-11.1-1-windows-x64.exe 2.点击下一步 3.选择安装位置,默认路径C:\Pro ...

  8. Binder AIDL中自定义类型传递的源码分析

    binder机制实现的IPC和共享内存的方式不同,它采取的是值拷贝的方式,即进程间传递的实体遵循Parcelable协议, Bp端负责向Parcel里写东西,Bn端负责从Parcel里读取还原,顺序是 ...

  9. (使用lua++)Lua脚本和C++交互(四)

    上一篇中,你已经可以在Lua里面用C++的函数了,那么咱们再增加一点难度,比如,我有一个CTest对象,要作为一个参数,传输给func_Add()执行,怎么办?很简单,如果你对上面的代码仔细阅读,你会 ...

  10. my.资料__2017暑假

    1.http://tieba.baidu.com/p/5254412093 http://www.pipaw.com/mhxy/345616.html [落英缤纷的树下] 地址:长寿村123,24 [ ...