433 模块 ARDUINO测试
实验硬件
发射端
Arduino + 433超外差发射机 高,低电平和悬空三种模式切换 由简单的官方库修改
/*
This is a minimal sketch without using the library at all but only works for
the 10 pole dip switch sockets. It saves a lot of memory and thus might be
very useful to use with ATTinys :) https://github.com/sui77/rc-switch/
*/ int RCLpin = 10; void setup() {
pinMode(RCLpin, OUTPUT);
} void loop() {
// RCLswitch(0b010001000001); // DIPs an Steckdose: 0100010000 An:01
// delay(2000); // RCLswitch(0b010001000010); // DIPs an Steckdose: 0100010000 Aus:10
// RCLswitch(0);
// delay(2000); // digitalWrite(RCLpin, LOW);// 不停触发
digitalWrite(RCLpin, HIGH);// 不处发
} void RCLswitch(uint16_t code) {
for (int nRepeat=0; nRepeat<6; nRepeat++) {
for (int i=4; i<16; i++) {
RCLtransmit(1,3);
if (((code << (i-4)) & 2048) > 0) {
RCLtransmit(1,3);
} else {
RCLtransmit(3,1);
}
}
RCLtransmit(1,31);
}
} void RCLtransmit(int nHighPulses, int nLowPulses) {
digitalWrite(RCLpin, HIGH);
delayMicroseconds( 350 * nHighPulses);
digitalWrite(RCLpin, LOW);
delayMicroseconds( 350 * nLowPulses);
}
STM8+ 433超外差发射机 命令 = 引导码+一系列高低电平
--------------------
接收端
Arduino + 433超外差接收机 四种中断模式切换
int pin =13;
volatile int state = LOW;
int i=0;
void setup()
{Serial.begin(9600);
pinMode(pin, OUTPUT);
//attachInterrupt(0, blink, CHANGE);// 低 一直触发 高 一直不触发
attachInterrupt(0, blink,LOW); // 低 一直触发 高 一直触发
//attachInterrupt(0, blink,RISING); //低 一直触发 高 不触发
// attachInterrupt(0, blink,FALLING); //低 一直触发 高 不触发 很稳 digitalWrite(pin,!state);
delay(10000);
digitalWrite(pin, state);
delay(10000);
} void loop()
{
// digitalWrite(pin, state);
} void blink()
{ Serial.println(i+1);
state = !state;
}
Arduino + 433超外差接收机 官方库正常解码模式
/*
Simple example for receiving https://github.com/sui77/rc-switch/
*/ #include <RCSwitch.h>
#define led1 10
#define led2 11
RCSwitch mySwitch = RCSwitch(); void setup() {
Serial.begin(9600);
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
mySwitch.enableReceive(0); // Receiver on interrupt 0 => that is pin #2
} void loop() {
if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); if (value == 0) {
Serial.print("Unknown encoding");
} else {
if (value ==17) {
if( digitalRead(led1)==0){
digitalWrite(led1, HIGH);
}
else{
digitalWrite(led1, LOW);
}
}
if (value ==18) { if( digitalRead(led2)==0){
digitalWrite(led2, HIGH);
}
else{
digitalWrite(led2, LOW);
} }
Serial.print("Received ");
Serial.print( mySwitch.getReceivedValue() );
Serial.print(" / ");
Serial.print( mySwitch.getReceivedBitlength() );
Serial.print("bit ");
Serial.print("Protocol: ");
Serial.println( mySwitch.getReceivedProtocol() );
} mySwitch.resetAvailable();
}
}
发射信号引脚状态\接收信号引脚中断触发方式 | 上升沿 | 下降沿 | 改变(上升+下降) | 低电平 |
高电平 | 不触发 | 不触发 | 不触发 | 一直触发 |
低电平 | 一直触发 | 一直触发 | 一直触发 | 一直触发 |
悬空 | 一直触发 | 一直触发 | 一直触发 | 一直触发 |
测试结果
可怕结论: 433和330MH信号很容易被针对干扰(又何止是这个频段),具体怎么实现懂的人看表格就能分析出来吧。(让所有这个频段的设备在干扰范围不起作用,怪不国家要严格控制频带的划分和使用还有监测,这么大的弊端)。
可使用到产品的基础:只要没人特意干扰你,大多数的干扰都是随机的,可以通过接收端编码过滤掉。
可用结论:接收端使用上升沿或下降沿或改变三种方式来解码命令
---恢复内容结束---
433 模块 ARDUINO测试的更多相关文章
- 电信NBIOT 4 - NB73模块上行测试(NB73-电信平台-自己平台)
电信NBIOT 1 - 数据上行(中国电信开发者平台对接流程) 电信NBIOT 2 - 数据上行(中间件获取电信消息通知) 电信NBIOT 3 - 数据下行 电信NBIOT 4 - NB73模块上行测 ...
- 电信NBIOT 5 - NB73模块下行测试(自己平台-电线平台-NB73)
电信NBIOT 1 - 数据上行(中国电信开发者平台对接流程) 电信NBIOT 2 - 数据上行(中间件获取电信消息通知) 电信NBIOT 3 - 数据下行 电信NBIOT 4 - NB73模块上行测 ...
- web自动化测试-模块驱动测试实例和数据驱动测试实例
一.模块驱动测试实例 把登录和退出统一封装在login类中,若把login类单独放在一个文件中,就可以给任一测试脚本调用,这里就跟测试脚本放一起 from selenium import webdri ...
- 自动化测试架构设计 &&自动化持续集成测试任务实战[线性测试、模块驱动测试、数据驱动测试、关键字驱动测试]
1 为什么设计自动化测试架构 1.1 企业现状分析 压力大:产品需求不明确,上线时间确定,压力山大. 混乱:未立项,开发时间已过半,前期无控制,后期无保障. 疲于应付:开发人员交付的文件质量差,测试跟 ...
- Arduino 测试空气质量等级模块 ZP07-MP503 测试
最近入手空气质量模块 ZP07-MP503,用Arduino采样数据进行测试 先上图看看 ZP07-MP503 产品 ZP07-MP503 一共4个管脚,功能如下 5V 电源输入5V GND 电源输 ...
- 基于STM32的三轴数字罗盘HMC5883L模块的测试
最近买了个数字罗盘模块,调通后发现很不错,非常灵敏,测试的时候精度在1°以内.连续测量模式下,最快测量.输出速率可达75hz,模块每次测量完毕并将数据更新至寄存器后,其DRDY引脚便产生一个低电平脉冲 ...
- SEER流量众筹模块开发测试网络及使用文档发布
SEER利用区块链奖励机制,可解决传统体育赛事痛点,提高行业运转效率.比如提高赛事方收入,让观众自由选择想看的比赛,给予赛事众筹的参与者贡献影响力,使其获得由智能合约量化的激励等.此功能可广泛应用于包 ...
- python-利用random模块生成测试数据封装方法总结
1.前言: 在测试中经常有需要用到参数化,我们可以用random模块,faker模块生成测试数据,也可以用到pymysql,此文主要针对random模块生成任意个数的随机整数,随机字符串,随机手机号, ...
- [wifi]wifi模块的测试
罗德斯瓦茨 非信令CMW100,信令CMW270,CMW500 支持多通道 具体如何多通道接相同的SSID,要看被测设备的变成 ublox是否支持非信令,需要check,信令和芯片没有关系,只和协议有 ...
随机推荐
- SQL SERVER GO命令循环使用实例
通过GO 命令 来达到语句循环效果 也叫批循环 print '输出10次' 也可用来新增 语句 NOCOUNT ON 用来屏蔽 新增语句输出的影响行数 我们只看循环次数 SET NOCOUNT O ...
- C#服务端判断客户端socket是否已断开的方法
刚开始,用Socket类的Connected属性来实现,却发现行不通,connected只表示 是在上次 还是 操作时连接到远程主机.如果在这之后[连接的另一方]断开了,它还一直返回true, 除非 ...
- 【Java基础】10、Java中throw和throws的区别
系统自动抛出的异常 所有系统定义的编译和运行异常都可以由系统自动抛出,称为标准异常,并且 Java 强烈地要求应用程序进行完整的异常处理,给用户友好的提示,或者修正后使程序继续执行. 语句抛出的异常 ...
- Python 最佳实践指南 2018 学习笔记
基础信息 版本 Python 2.7 Python 3.x Python2.7 版本在 2020 年后不再提供支持,建议新手使用 3.x 版本进行学习 实现 CPython:Python的标准实现: ...
- 30个极大提高开发效率的Visual Studio Code插件
译者按: 看完这篇文章,我打算从 Sublime Text 转到 Visual Studio Code 了! 原文: Immensely upgrade your development enviro ...
- Vue学习资料
1. {{ msg }}插值表达式. v-text:将数据插入到页面中,没有闪烁问题. v-cloak:通过style属性选择器的方式display:none:防止闪烁问题. v-html:将标签解析 ...
- deepin使用笔记-解决蓝牙设备开机自动开启的问题
我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 1.安装蓝牙驱动管理 #apt-get install blueman 2.打开蓝牙驱动管理,关闭设备 3.关闭蓝牙开机启动服务 ...
- Python3.4:splinter or traceback
tickts.py: #tickts.py #2018-01-22 #python 3.4 Eclipse IDE from splinter.browser import Browser from ...
- 网络基础 cookie详解
cookie详解 by:授客 QQ:1033553122 cookie干嘛用的? 参见文章http 会话(session)详解: 网络基础 http 会话(session)详解 cookie分类 ...
- loadrunner 场景设计-制定负载测试计划
by:授客 QQ:1033553122 场景设计-制定负载测试计划 步骤1.分析应用程序 你应该对硬件和软件组建,系统配置和典型的使用场景很熟悉.这些应用程序的分析保证你在使用loadrunner进行 ...