http://www.freebuf.com/articles/wireless/105398.html

/*本作品使用的例程中包含RCSwitch库文件用于信号的解码和编码发送*/
#include <RCSwitch.h>
RCSwitch mySwitch = RCSwitch();
void setup() {
Serial.begin(9600);
//串口打印命令帮助信息
Serial.print("HELP:A-flash the lamp A\n B-flash the lamp B\n C-flash the lamp C\n D-flash the lamp D\n");
Serial.print(" a-open the lamp A\n b-open the lamp B\n c-open the lamp C\n d-open the lamp D\n\n");
mySwitch.enableReceive(1);
mySwitch.enableTransmit(10);}2
void loop()
{
if(mySwitch.available())
{
output(mySwitch.getReceivedValue(),mySwitch.getReceivedBitlength(), mySwitch.getReceivedDelay(),mySwitch.getReceivedRawdata(),mySwitch.getReceivedProtocol());
mySwitch.resetAvailable();
}
/* Same switch as above,but using binary code */
if(Serial.available()>0)//如果串口有数据进入的话
{ delay(10); //延时50 可以一次性发送多个命令
char M=Serial.read();//每次读一个字符,是ASCII码的
if(M=='A')
{
Serial.print("Thecommand is A\n");
mySwitch.send("010101010101010100001100");//遥控器-A
Serial.print(" OK!!! The LED A has been DONE\n");
}
if(M=='a')
{
Serial.print("The command is a\n");
Serial.print(" OK!!! TheLED A has hlod ON\n");
while(Serial.available()<=0)
{
mySwitch.send("010101010101010100001100");//遥控器-A 按下不放
}
}
if(M=='B')
{
Serial.print("Thecommand is B\n");
mySwitch.send("010101010101010111000000");//遥控器-B
Serial.print(" OK!!! The LED B has been DONE\n");
}
if(M=='b')
{
Serial.print("The command is b\n");
Serial.print(" OK!!! The LED B has hlod ON\n");
while(Serial.available()<=0)
{
mySwitch.send("010101010101010111000000");//遥控器-B 按下不放
}
}
if(M=='C')
{
Serial.print("Thecommand is C\n");
mySwitch.send("010101010101010100000011");//遥控器-C
Serial.print(" OK!!! The LED C has been DONE\n");
}
if(M=='c')
{
Serial.print("The command is c\n");
Serial.print(" OK!!! TheLED C has hlod ON\n");
while(Serial.available()<=0)
{
mySwitch.send("010101010101010100000011");//遥控器-C按下不放
}
}
if(M=='D')
{
Serial.print("Thecommand is D\n");
mySwitch.send("010101010101010100110000");//遥控器-D
Serial.print(" OK!!! The LED D has been DONE\n");
}
if(M=='d')
{
Serial.print("The command is d\n");
Serial.print(" OK!!! TheLED D has hlod ON\n");
while(Serial.available()<=0)
{
mySwitch.send("010101010101010100110000");//遥控器-D按下不放
}
}
}
}

  

Arduino 433 + 串口的更多相关文章

  1. C#与Arduino通过串口通信来控制LED灯的状态

    一.引言 最近摆弄了一段时间的Arduino,发现Arduino做一些电子类项目.监控.机器人.电子玩具比较容易,并且Arduino与.NET程序集成也不难.接下来介绍一个简单的小程序,C#做的一个W ...

  2. 手机与Arduino蓝牙串口通讯实验及完整例程

    安卓手机与Arduino之间采用蓝牙串口通讯,是很多智能装置和互动装置常用的控制方法,简单而有效,无需网络环境,很实用的技术. 实验采用Arduino UNO板,加了一块1602LCD屏做显示(因为只 ...

  3. 关于arduino清空串口缓存(转)

    在arduino1.0之前的版本 Serial.flush()的作用是是清空串口缓存( dropping received incoming data).但在1.0之后的版本 Serial.flush ...

  4. 【ARDUINO】串口无法打开问题

    1.查看是否串口被锁 sudo arduino ls /var/lock sudo rm /var/lock/LCK..ttyACM* 2.查看arduino安装位置 dpkg -S XXXX 3.原 ...

  5. Arduino通过串口监视器收发数据

    在串口监视器中发送数据,板子收到数据并打印出来. 不需要额外电路,但是板子必须连接电脑,Arduino IDE的串口监视器也需要被打开. 代码 /* 串口事件 当新的串口数据到来时,我们会将它添加到一 ...

  6. Arduino在串口监视器上输出字母表

    程序会在Arduino IDE的串口监视器上输出一个字母表. 不需要额外电路,但是板子必须通过串口线或USB线连接到电脑. 代码 程序在setup()函数中建立串口连接,然后逐行输出a~z的字母I表, ...

  7. Arduino通讯串口

    串口是Arduino与其它设备进行通信的接口 所有的Arduino控制板有至少一个串口(又称作为UART或USART).它通过0(RX)和1(TX)数字引脚经过串口转换芯片连接计算机USB端口与计算机 ...

  8. [Arduino] 在串口读取多个字符串,并且转换为数字数组

    功能如题目.在串口收到逗号分割的6串数字比如100,200,45,4,87,99然后在6个PWM端口3, 5, 6, 9, 10, 11输出对应PWM值代码注释很详细了,就不再说明了. //定义一个c ...

  9. PMS5003ST+Arduino Nano 串口读取数据

    先上代码: 库文件是在guihub上的大神写的https://github.com/jbanaszczyk,我拿来小改下用以支持5003ST #include <Arduino.h> #i ...

随机推荐

  1. c#中打开Excel文档

    方法一:(调用Excel的COM组件)       在项目中打开Add Reference对话框,选择COM栏,之后在COM列表中找到"Microsoft Excel 11.0 Object ...

  2. 在Web.config或App.config中的添加自定义配置 <转>

        .Net中的System.Configuration命名空间为我们在web.config或者app.config中自定义配置提供了完美的支持.最近看到一些项目中还在自定义xml文件做程序的配置 ...

  3. Java并发编程:synchronized、Lock、ReentrantLock以及ReadWriteLock的那些事儿

    目录 前言 synchronized用法 修饰方法 修饰实例方法 修饰静态方法 同步代码块 引出Lock Lock用法 子类:ReentrantLock 读写分离锁:ReadWriteLock Loc ...

  4. 使用idea创建一个maven工程

    使用idea创建一个maven工程 一.创建maven工程 二.输入工程名 三.指定maven仓库 四.点击finish 五.修改工程结构(file->project structure) 六. ...

  5. 【c++】删除string中指定的字符

    使用string::iterator(字符串迭代器)从开始 str.begin() 迭代到最后 str.end() ,再使用string.erase(const_iterator p)函数来删除迭代器 ...

  6. python之线程相关操作

    1.线程: 一个进程可以有多个线程,共享一个进程的资源: 2.进程线程的区别:  进程是资源分配的最小单位,线程是程序执行的最小单位 3.python中线程模块threading, 提供的类: Thr ...

  7. mysql5.7 安装和多源复制实践

    MySQL 5.7发布后,在复制方面有了很大的改进和提升.比如开始支持多源复制(multi-source)以及真正的支持多线程复制了.多源复制可以使用基于二进制日子的复制或者基于事务的复制.下面我们说 ...

  8. IO事件驱动模型

    1:IO事件驱动模型简介 通常,我们写服务器处理模型的程序时,有以下几种模型: (1)每收到一个请求,创建一个新的进程,来处理该请求: (2)每收到一个请求,创建一个新的线程,来处理该请求: (3)每 ...

  9. python 遇到的小坑

    由于前端资源紧缺,我的后端系统迟迟等不来它的前端,没办法只好自己来写了.从html,js入门学起,然后照着vue.js的官方教程写了几个实例,从github上clone了一个不错的vue.js模版,填 ...

  10. 使用openssl在windows 10下本地xampp配置https开发环境

    安装win64OpenSSL-1_1_0j后重新启动:以管理员权限启动powershell; 执行以下命令 set OPENSSL_CONF=c:\xampp\apache\conf\openssl. ...