再发个无线收发模块的帖子,再无人回复就真的绝望了!!
买了一对无线收发模块,想用51单片机来编/解码,但接收模块的数据引脚输出的电平却是这样(套用卖家发来的话):接收通电后就有一个电压输出,应该在2V左右。收到遥控器信号时,会有一个0.5V左右的变化。
就是说,它的低电平不是0V,高电平也不是5V(或者接近一点的都行啊)。
然后,卖家跟我说:“无线模块形成一串波形时,单片机可以识别。这种电路 传送的是数据,不是高低电平。无线模块传输的是高电平的宽度。”——但是,这也需要先判断什么时候出现的是高电平,什么时候出现的是低电平吧?!
请问有没有哪位大虾用过这种无线收发模块,大发慈悲进来解答一下吧!!就算我问的问题很荒谬可笑,也请指出吧!有没有人哪!!!
附上模块的图及参数如下:
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_635276B1ULH7.jpg
(原文件名:无线发射模块.jpg)
发射头(采用2SC3357三极管):
实际工作距离:50-100米
工作电压:3-12V
工作电流:10-15mA
工作方式:AM
传输速率:4KB/S
发射功率:10mW
外接天线:28cm普通多芯或单芯线
引脚排列从左→右:(DATA、VCC、GND)
尺寸:1.9CM*1.9CM*0.9CM
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_635277LF8B6C.jpg
(原文件名:无线接收模块.jpg)
接收头:
工作电压(V):DC 5V
静态电流(mA):5MA
接收灵敏度(dBm):-103
工作频率(MHz):315M(其余频率可选)
引脚排列从左→右:(VCC、DATA、DATA、GND)两个DATA脚相连
外接天线:28cm普通多芯或单芯线
尺寸:3.2CM*1.4CM*1.0CM
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_635281MGE2FH.jpg
无线发射模块原理图 (原文件名:无线发射模块原理图.jpg)
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_635282X22ONZ.jpg
无线接收模块原理图 (原文件名:无线接收模块原理图.jpg) 为了不让你绝望,麻烦你把你说下是什么模块315m 433m 2.4g 还是什么..
一般都有数据手册啊!
同感 发帖没人回确实很绝望.. 看描述应该是ASK模块,你可以尝试在发送端直接送高电平和低电平,观察接收端输出的状态。
另,发射端最好有确定的状态,高或低,不要悬空。 楼主才刚刚发帖子,等等坛子上的高手吧。
你买的是哪个牌子的?西门子、华为,或者其他的?
如果卖家连牌子都不提供,那就确实有问题了!
透露一下是什么牌子什么型号,否则,就算高手来了都没办法帮你。 先感谢大家的关注,忘了上图和参数了,稍等 回复【2楼】kelos3000
-----------------------------------------------------------------------
多谢关注!315M的,无数据手册…… 回复【3楼】Momo
-----------------------------------------------------------------------
试过这个方法,接收端输出的电压在2点几伏范围徘徊。发射端是有明确的状态的,没有悬空。 http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_635279HQNZ1T.gif
(原文件名:2272_sch.gif)
应该是315m超再声吧!
看看这个应该是一样的 只是少了2272 ... 这个不要什么数据手册,你发在第一个图片的DATA引脚输入一定宽度的方波,下面超再生的接收模块会输出相应的方波,在无发射时,接收模块会输出任意宽度的方波。 用万用表是量不出来的,得用示波器...... 回复【8楼】kelos3000
-----------------------------------------------------------------------
刚上传了原理图,虽然不完全一样,但都用到了LM358芯片。 回复【9楼】plc_avr 烈火狂龙
-----------------------------------------------------------------------
谢谢!“在无发射时,接收模块会输出任意宽度的方波”——就是说,在无发射时,接收模块输出的不是一条水平线(假设没有噪声的影响)?
另外,如果真像卖家所说那样,无发射信号时接收模块输出2V左右,有发射信号时加上一个0.5V左右的变动,那单片机如何识别这两个电平?毕竟,2点几伏与0V和5V还算是相差挺大的啊! 差不多... 358整形用的. 我刚刚发的图是2262/2272. 就是专门的芯片编码/解码.
你这个是需要自己编码解码的. 你是自己玩还是做项目? 加个电容隔直不就行了嘛,再三极管或者运放放大到4V以上,这样你的单片机就可以处理了 回复【13楼】kelos3000
-----------------------------------------------------------------------
算是个项目吧。
是需要自己编码解码的。我觉得如果接收端输出的若真是2点几伏的电压,直接读取引脚的电平来判断“0”和“1”的话可能会有问题。它的高、低电平相差这么小……
我也猜想过是不是将接收端引脚接到单片机的中断引脚上,用上升或下降沿来触发中断,然后配合定时器来计算高低电平的宽度,然后判断出“0”和“1”呢?
不过,接收模块输出引脚上这么小差别的“高”“低”电平,能否形成足以触发单片机中断的上升/下降沿?(一种猜想和疑问,有错请指出) 数据输出直接接单片机IO就行了。主要就是检测高低电平宽度及编码发送,实在不行就搞个2262、2272编解码,注意一下振荡电阻匹配及ID主行了。超再生无信号接收时输出是噪声,当有信号时是规则的方波。 正5V供电时,接收输出不是2点几V,而是3.3V以上。直接接单片机IO就行的。 http://cache.amobbs.com/bbs_upload782111/files_38/ourdev_628336XIW9B2.gif
(原文件名:315M反相.gif)
参考一下电路! 来自本论坛 回复【14楼】fsclub 绿林好汉
-----------------------------------------------------------------------
这也是一种思路。谢谢! 回复【18楼】plc_avr 烈火狂龙
正5v供电时,接收输出不是2点几v,而是3.3v以上。直接接单片机io就行的。
-----------------------------------------------------------------------
好,我再测准一些。 无线模块没有信号时候都是收的噪声,另外解码的时候要多解几组。要用示波器看波形 回复【22楼】yangsen
无线模块没有信号时候都是收的噪声,另外解码的时候要多解几组。要用示波器看波形
-----------------------------------------------------------------------
嗯,看来少不了示波器了!谢谢! 这个东东我们实验室也有买。。。
不过我还没有用过~~~~ 回复【24楼】ledatou
这个东东我们实验室也有买。。。
不过我还没有用过~~~~
-----------------------------------------------------------------------
我现在用得很郁闷…… 敢情你的2.xV电压是用万用表测量的。
老大,你要用示波器测量,既然电路中有358,那么最后一级应该是比较器整形,输出是标准的TTL电平,当然用万用表测量到2.xV也不奇怪。 普通ASK接收模块在遥控没有发射信号的时候输出的是杂乱无章的波型,如果用万用表测量的时候得出的电压是很低的,用示波器看就知道了,实际上模块输出的信号是高电平接近电源,低电平接近0V的,完全可以判别波形的,不要用万用去量就觉得电压低达不到高电平,用万用表测出来是不准确的,遥控器发射信号的时候,模块输出规则方波。 http://www.xie-gang.com/df.htm
可以参考这位老前辈的。 回复【26楼】Momo
敢情你的2.xv电压是用万用表测量的。
老大,你要用示波器测量,既然电路中有358,那么最后一级应该是比较器整形,输出是标准的ttl电平,当然用万用表测量到2.xv也不奇怪。
-----------------------------------------------------------------------
关键问题应该就像老兄所说的那样了,多谢!我已经决定去借示波器来测量了。另外,那个比较器有什么好的推荐?小弟硬件方面知识不足…… 回复【27楼】zh2002
普通ask接收模块在遥控没有发射信号的时候输出的是杂乱无章的波型,如果用万用表测量的时候得出的电压是很低的,用示波器看就知道了,实际上模块输出的信号是高电平接近电源,低电平接近0v的,完全可以判别波形的,不要用万用去量就觉得电压低达不到高电平,用万用表测出来是不准确的,遥控器发射信号的时候,模块输出规则方波。
-----------------------------------------------------------------------
说的有理!谢谢这位仁兄!! 回复【28楼】A_test
http://www.xie-gang.com/df.htm
可以参考这位老前辈的。
-----------------------------------------------------------------------
很有启发性的资料,都是一些很实用的经验!感谢感谢!! 楼主的超再生 接收模组温度稳定性差! 回复【32楼】jonyes
楼主的超再生 接收模组温度稳定性差!
-----------------------------------------------------------------------
这个我之前也有听说过,它相对于超外差的温度稳定性是比较差。不过,如果没用在骤冷骤热的环境下,问题应该不大吧?仁兄对于它的温度稳定性有所体会吗?可否再详细介绍一下经验?多谢! 谢谢 jh 没示波器,搞个逻辑分析仪也可以的。 接个LED,串个电阻,只要电源没接错可以随便玩,这个模块的波特率近距离时应低于10000,编码用调宽码或曼彻斯特_码 回复【33楼】udc577
-----------------------------------------------------------------------
温度会影响 振荡回路的元器件的参数! 会影响解调后的脉冲宽度,从而影响遥控的效果!
不过,在一般应用场合是没什么问题的! 回复【37楼】1ongquan
接个led,串个电阻,只要电源没接错可以随便玩,这个模块的波特率近距离时应低于10000,编码用调宽码或曼彻斯特_码
-----------------------------------------------------------------------
嗯,谢谢你的建议! 直接接IO,速率要低(<2500)。就加入同步头(6~12mS),占空比编码。注:发送端未发送数据时,接收端DATA口为波形会很乱。另,同步头很重要 建议使用超外差的 编码可以参考红外遥控(空调、电视等的遥控)的方式 还是用示波器吧,如果真的没有,用个声卡示波器应该也可以的 楼主,单片机是可以直接解无线模块的信号.你可以看一下我原来的贴子,我这个东东,就是用51单片机直接解模块出来的信号.我所用的模块跟你的差不多的.当时做这个东东的时候,还没有示波仪,嘿嘿.
"大家看看我做的PT2262万能解码器,爽吧!很有成就感! "
http://www.ourdev.cn/bbs/bbs_content.jsp?bbs_sn=3297319&bbs_page_no=1&bbs_id=9999
你上面说到" 接收通电后就有一个电压输出,应该在2V左右。收到遥控器信号时,会有一个0.5V左右的变化".是因为,当模块收到信号时,是一串脉冲,所以你用万用表是不可能测到低电平的.因为做这个东东比较久了,我也不太记得模块在没有信号时,是高电平,还是低电平,印象中是高电平.
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_636242KQHGSX.jpg
(原文件名:PT2262解码器.jpg) 上一份这个东东的原理图吧,程式就没有了,哈哈.
点击此处下载 ourdev_636243SKYHLR.pdf(文件大小:37K) (原文件名:PT2262解码器原理图.pdf)
http://cache.amobbs.com/bbs_upload782111/files_39/ourdev_636244EAXSIT.jpg
(原文件名:原理图.jpg) 采用PPM编码,应该没问题。
比如0用0.2ms的高电平和0.5ms的低电平,而1用0.2ms的高电平和1ms的低电平表示,这样直流成分小,容易解调。在这种通讯里,最大的干扰是直流分量,容易使接收端的输出饱和或者出现不定状态的干扰。
另,你可参考红外编解码的原理,都差不多,软件也容易实现。
如果要发送数据,应该是一帧,里面有帧头,数据长度和数据,校验码和结束码等,这样的抗干扰性强,误码率小。 这个直接接单片机串口,波特率2400或4800都行。数据包不要太大,同步字节不要编码用于同步,数据包要曼彻斯特编码,接收后解码
数据包最后加上累加和校验,每个数据包发送4遍。图看19楼。
我用的超外差模块,发射和接收都不要天线,隔着房间单向收发一点问题没有。
目前正在测试双向收发。主机发射用315,接收用433。从机接收用315,发射用433。 详细资料!呵呵 ding 看了各位的建议,本人小结了一下,觉得有几点需要注意:
1、要深入了解波形,示波器(或其它可分析波形的仪器)必不可少,万用表对脉冲的测量无能为力。后来的测量证实,模块输出的电压的确可以被单片机所识别。
2、速率不能太高,否则误码率增加。
3、编码方式很重要。选用合适的编码方式可增强抗干扰性,降低误码率。
各位的建议对我的帮助很大!在这里真诚地对大家说声谢谢!!! 不错啊! 楼主你现在把这个做出来了吗? 我最近用at89c2051单片机做了无线遥控下车的控制部分,就是说以单片机来代替编码解码芯片来编码解码,也是采用315MHZ的无线收发模块,
下面是我的程序,你有好方法可以分享一下吗?这个是我们老师交给我们的项目作业。
发射程序:XIN BIT P3.0 ;发射口
LED BIT P3.7
ORG 0000H
LJMP START
ORG 0030H
;;;;;;;;;;;;;;;;;;;;初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START: MOV P1,#0FFH
CLR C
CLR XIN ;315Mhz发射模块是NPN管,所以先将它置底
MOV R5,#08H
MOV R1,#03H
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;编码格式采用 :引导码+8位数据码
; 引导码:1ms高电平,400us低电平,400us高电平
;低电平: 140us低电平,460us高电平
;高电平: 500us低电平,100us高电平
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN: SETB LED
KEY: JB P1.6,KEY1 ;左
CLR LED
MOV A,#0CCH
AJMP SEND
KEY1: JB P1.7,KEY3 ;右
CLR LED
MOV A,#0DDH
AJMP SEND
KEY3: JB P1.5,KEY2 ;后退
CLR LED
MOV A,#0BBH
AJMP SEND
KEY2: JB P1.4,MAIN ;前进
CLR LED
MOV A,#0AAH ;编码值
AJMP SEND
;;;;;;;;;;;;;;;;引导头部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SEND: SETB P3.0
MOV R3,#2
M1: MOV R2,#250
DJNZ R2,$
DJNZ R3,M1
CLR P3.0
M2: MOV R2,#200
DJNZ R2,$
SETB P3.0
MOV R2,#200
DJNZ R2,$
CLR P3.0
;;;;;;;;;;;;;;;;数据码值部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SS: RLC A
JC ONE
CLR P3.0 ;发0
M3: MOV R2,#230
DJNZ R2,$
SETB P3.0
M4: MOV R2,#70
DJNZ R2,$
LJMP OUT
ONE: CLR P3.0 ;发1
M6: MOV R2,#50
DJNZ R2,$
SETB P3.0
M5: MOV R2,#250
DJNZ R2,$
LJMP OUT
OUT: DJNZ R5,SS ;一个字节码值是否发完
MOV R5,#08H
CLR P3.0
ACALL DELAY ;延时约5ms
LJMP MAIN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:
MOV R6,#7
D1: MOV R7,#250
DJNZ R7,$
DJNZ R6,D1
RET
END
解码程序:
XIN BIT P3.7
LED BIT P3.0
CUN EQU 33H
ORG 0000H
LJMP START
ORG 0030H
;;;;;;;;;;;;;;;;;;;初始化;;;;;;;;;;;;;;;;;;;;;;;;;;;;
START:MOV P1,#00H
mov p3,#0ffh
; MOV TMOD,#05H
MOV R5,#08H
MOV 33H,#00H
;;;;;;;;;;;;;;;;;;主程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;引导码开始解码;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
MAIN:MOV P1,#00H
JIEMA:MOV R3,#250 ;
WAIT_0: JNB XIN,ST_L0
NOP
NOP
DJNZ R3,WAIT_0 ;超过1040us无效
lJMP ERR_OUT
ST_L0: MOV A,R3
SUBB A,#167
JNC ERR_OUT ;低于900u无效
MOV R3,#100
WAIT_1: JB XIN,ST_L1
NOP
NOP ;大于440us无效
DJNZ R3,WAIT_1
lJMP ERR_OUT
ST_L1: MOV A,R3
SUBB A,#67 ;小于360无效
JNC ERR_OUT
MOV R3,#100
WAIT_2: JNB XIN,ST_L2
NOP
NOP
DJNZ R3,WAIT_2
lJMP ERR_OUT
ST_L2: MOV A,R3
SUBB A,#67
JNC ERR_OUT
;;;;;;;;;;;码值解码部分;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SS: MOV R3,#100 ;超过500US无效
WAIT_3: JB XIN,SM_L1
NOP
NOP
DJNZ R3,WAIT_3
JMP ERR_OUT
SM_L1: MOV A,R3 ;小于50us无效
SUBB A,#92
JNC ERR_OUT
MOV A,R3
SUBB A,#67 ;200US比较
JNC ONE
LJMP ZERO
;;;;;;;;;;;;;;;;;;编码1;;;;;;;;;;;;;;;;;;;;;;;;;;;
ONE: MOV R3,#100
WAIT_4: JNB XIN,SM_11
NOP
NOP
DJNZ R3,WAIT_4
JMP ERR_OUT
SM_11: MOV A,R3
SUBB A,#50
JNC ERR_OUT
LJMP CUNCHU
;;;;;;;;;;;;;;;;;;;编码0;;;;;;;;;;;;;;;;;;;;;;;;;;
ZERO: MOV R3,#50
WAIT_5: JNB XIN,SM_01
NOP
NOP
DJNZ R3,WAIT_5
JMP ERR_OUT
SM_01: MOV A,#10
SUBB A,R3
JNC ERR_OUT
CLR C
;;;;;;;;;;;;;;;;;;;;解码值存储;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CUNCHU: MOV A,CUN
RLC A
MOV CUN,A
DJNZ R5,SS
MOV R5,#08H
LJMP M00
ERR_OUT:SETB LED
MOV R5,#08H
MOV CUN,#00H
; MOV P1,#00H
LJMP MAIN
M00:
;;;;;;;;;;;;;;;码值对应功能子程序;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
GONGNENG:
MOV A,CUN
ZUO: CJNE A,#0CCH,YOU
CLR LED
CLR P1.0
CLR P1.1
SETB P1.2
CLR P1.3
ACALL DELAY
AJMP JIEMA
YOU: CJNE A,#0DDH,HOU
CLR LED
CLR P1.0
CLR P1.1
CLR P1.2
SETB P1.3
ACALL DELAY
HOU: CJNE A,#0AAH,QIAN
CLR LED
SETB P1.1
CLR P1.0
ACALL DELAY
LJMP JIEMA
QIAN: CJNE A,#0BBH,M11
CLR LED
SETB P1.0
CLR P1.1
CLR P1.2
CLR P1.3
ACALL DELAY
AJMP JIEMA
LJMP JIEMA
M11:
LJMP MAIN
DELAY:
MOV R7,#100
D1: MOV R6,#100
DJNZ R6,$
DJNZ R7,D1
RET
END 回复【52楼】jiaxiang529
-----------------------------------------------------------------------
做出来了。 回复【53楼】jiaxiang529
-----------------------------------------------------------------------
没用过汇编啊…… mark mark 这个只要整过一次就印象深刻了。我曾经也有遇到这个问题 回复【53楼】jiaxiang529
-----------------------------------------------------------------------
晕,现在老师还教汇编啊,误人子弟 这个模块…我做过… 这模块没有问题呀,你用示波器看才行,我做过.坏了除外,没有收到信号是杂波的. 可以,不错 详细资料,学习学习!
页:
[1]