搜索
bottom↓
回复: 20

大家能帮我看看我的红外线发射程序有没有问题吗?

[复制链接]

出0入0汤圆

发表于 2006-7-13 08:35:32 | 显示全部楼层 |阅读模式
#include <avr/io.h>

#include <avr/delay.h>

#include <avr/signal.h>

#include <avr/interrupt.h>

#include <avr/iom8.h>





/**********timer0中断服务程序***************/

SIGNAL(SIG_OVERFLOW0) //INT0中断服务程序

{

        PORTB^=4;

        TCNT0 =54;



}





//****端口及各功能模块初始化子程序******

void init(void)               

{

       

        PORTB =0x00;                        //定义口B

        DDRB =0xff;//(0<<germ_pb1)|(1<<data_pb3)|(1<<clock_pb5);               

        PORTB=0xff;

       

        TIMSK |=(1<<TOIE0);   /******timer0的设置,设置其为普通定时器**/

        //TIFR0 =(0<<TOV0);

        TCCR0 =(1<<CS00);       

        TCNT0 =52;

       

        sei();                //开全局中断

}





int main(void)

{       

       

        init();                //调初始化子程序

        while(1);

       

}





使用外部4M的陶瓷晶振,程序本意是让PB2输出38K的方波,驱动红外发射管,而接收则为三叫的红外接收管,用接收管的输出脚去控制一三极管的导通和截止。但出来的结果是红外接收管收不到红外信号。



线路图如下。大家帮我看下是电路问题,还是程序问题。

阿莫论坛20周年了!感谢大家的支持与爱护!!

一只鸟敢站在脆弱的枝条上歇脚,它依仗的不是枝条不会断,而是自己有翅膀,会飞。

出0入0汤圆

 楼主| 发表于 2006-7-13 08:37:52 | 显示全部楼层

出0入0汤圆

 楼主| 发表于 2006-7-13 10:23:44 | 显示全部楼层
顶起来,大家帮我看看阿

出0入0汤圆

发表于 2006-7-13 10:49:33 | 显示全部楼层
帮顶,同问!我的也接收不到信号。难道是因为38k的波形有要求吗?

出0入0汤圆

发表于 2006-7-13 11:23:51 | 显示全部楼层
你怎么没有38k的载波

出0入0汤圆

发表于 2006-7-13 12:20:53 | 显示全部楼层
一般红外接收IC的VOUT是低电平有效。你把LED的A接到+5上去,K接到VOUT上去,LED串个电阻也可以

出0入0汤圆

发表于 2006-7-13 12:40:12 | 显示全部楼层
这个电路接收部分好像不能工作,直接从5V接个电阻再串个发光二极管接到接收头的输出就行了,有38K红外线是接收头输出拉底。

出0入0汤圆

 楼主| 发表于 2006-7-13 14:05:23 | 显示全部楼层
/**********timer0中断服务程序***************/

SIGNAL(SIG_OVERFLOW0) //INT0中断服务程序

{

        PORTB^=4;

        TCNT0 =202;



}



timer0的中断写错了,改成了如上的。按5楼、6楼的试了,还是不行。

我程序里头,PB2脚出来的应该是38k的方波吧,因我这里没有示波器,所以看不了,但就不知问题出在那里?

出0入0汤圆

发表于 2006-7-13 14:56:46 | 显示全部楼层
你的接收有问题的 应该加上拉电阻

出0入0汤圆

 楼主| 发表于 2006-7-13 15:40:41 | 显示全部楼层
是在接收管的Vout接上拉电阻吗?

出0入0汤圆

发表于 2006-7-13 15:48:27 | 显示全部楼层
是的 当有红外信号的时候输出为低 平时都是高电平的 这点要注意一下

出0入0汤圆

发表于 2006-7-13 16:16:11 | 显示全部楼层
红外线方面没有接触过,调试的时候给点建议:

1.确定程序正确——把定时器间隔调大点,把led串个470左右的电阻接在pb2上,看看是不是会一闪一闪的。如果可以的话,把定时器调回你要的频率,程序就ok了。

2.电路方面——8050没用过,首先看看它的参数,找出放大倍数的关系。pb2应串上一个电阻接基极,根据pb2的输出电压算出基极电流,然后算出集电极电流。在这里你的8050应该是当开关管用的,所以工作点更应该选好。红外线发射二极管也应该有额定电流的,所以说发射管应该串电阻接到5v上,电阻的大小也需要计算的。你这样接的话,说不定发射管已经烧了。。。

程序和电路都ok的话,如果还不行,那就要红外方面的大虾指点一下了。我只知道38k是载波频率,具体数据是怎么也发出去的不是很清楚,期待大虾指点。。。

出0入475汤圆

发表于 2006-7-13 19:07:38 | 显示全部楼层
按照你现在的 电路,你的接收那边指示灯应该是一直亮着的吧?如果不是,那反而你电路有问题。因为上面有人说过,接收头静止状态输出是高电平,你用的是NPN管子驱动LED,所以该一直亮着,而真有接收到数据时才熄灭一下,,你可是试一下,按照你现在电路,将接收头对地短路时,LED应该灭,松开时应该亮,否则你接收这边就已经有问题,更不要说整个正常与否了。(提示一点,实际上接收头输出端一般都有上拉电阻的,可以不再加,除非防止强干扰。另外你这个测试电路最好在输出和三极管基极间加一个1K样子电阻)

接收端如果不是我说的 这样现象,那么检查管子和接收器的管教是否搞对。或者这样在接收端测试:接收器连接OK后,在输出脚串一个470欧电阻串LED-再LED+到电源。有接收时就亮



然后发射这边第一个可以按猴子说的那样,第二个其实没必要那么仔细和严格,就串一个1K左右就OK,然后就是的确红外管要串一个电阻,你可以先串一个10欧左右。或者直接串一个发光二极管和红外管一起,正好还可以观察工作与否。

先这样试试吧。

出0入0汤圆

 楼主| 发表于 2006-7-13 22:39:47 | 显示全部楼层
现在不正常的情况是led灯一直都是亮的,从未灭过。把Vout接地时就会灭。





明天在发射那里先串个led灯试试。



用万用表测试PB2的电压为2.52,即pb2已有方波输出。

出0入0汤圆

发表于 2006-7-13 22:44:36 | 显示全部楼层
楼主你那图给点专业精神好不……

出0入0汤圆

 楼主| 发表于 2006-7-14 11:08:03 | 显示全部楼层
我主要是想测试一下红外线的发射接收特性,主要是实验性的,效果能出来就好了

出0入0汤圆

发表于 2006-7-14 16:06:38 | 显示全部楼层
如果你是按图那样接的话,发射管肯定烧了吧,换个发射管,再按要求串电阻试试嘛。

搞技术的特别要细心啊!

出0入0汤圆

 楼主| 发表于 2006-7-15 10:22:08 | 显示全部楼层
哦,好的。先试试



谢了

出0入0汤圆

发表于 2006-7-15 16:20:47 | 显示全部楼层
硬件接法不对!发射管应该烧掉了!

出0入0汤圆

发表于 2006-7-15 16:23:21 | 显示全部楼层
http://www.ouravr.com/bbs/bbs_content.jsp?bbs_sn=637198&bbs_page_no=1&bbs_id=1000

出0入0汤圆

发表于 2006-7-31 17:09:01 | 显示全部楼层
软件问题,你用软件仿真一下,能出38K的载波吗?要用CTC!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-5-12 10:37

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表