前几天我还探讨了这个学习型遥控器的实现问题,今天发这篇文章,仅是针对我上次说到的方法的一个实现。
上次说的方法 目前已经实现 感觉方法还是不错的 这里我拿出来分享下 希望对想做这个的朋友一点点的帮助。
首先发个学习遥控器的电路,
图中IR 即为红外发射管 因为本人模拟电路也是一般般所以分析的话还是不够信心的 但是PC2是一个脉冲控制信号 即高电平不工作 低电平则开始学习。
这样转变后 就抛弃了 红外一体接收头了。
同样对上次说的两个问题分析下
1. 载波
由于考虑到事实上知道一种波形后载波模式已经固定 因而我抛弃了载波的检测 而直接过滤掉了载波
看下外部中断0的程序
SIGNAL(INT1_vect)
{
TCCR0|=0X02; //不考虑载波,直接过滤 T0直接256us一次中断 有缺陷的 不过可以改善
TCCR2=0X00; //关闭低电平检测计数器
if((T2C>0)&&(T2C<250)) //过长说明真正的低电平 而不是载波的低电平
{
// 记录好一个0或者1
DATA[count+1]=TCNT2+(T2C*256);
DATA[count]=(TCNT0+(T0C*256))-DATA[count+1];
TCCR0=0X00;
TCNT0=0;