大家好!
现在我设计一个红外线触发开关。
当有人接近时,通过接收二极管接收发射二极管反射来的信号,导通开关。
1使用AVR ATMEGA8
2 发射是通过三极管导通,每125us置位发射二极管高电平8us。
3 根据二极管接收信号强度越大,电阻越小的原理,将它通过恒流放大,并转化成电压,通过A/D转化为对应的电压值。
算法是:(发射二极管高电平8us后,立即检测A/D转换值,并储存在寄存器,)连续进行4次,然后去掉{zg}与{zd1}值,取中间两个的ADC的平均值(ADC的范围是0—0FF。如果得出的平均值大于门电压A/D值,则导通开关。
根据这个原理,主要定出门电压A/D值,就可以定出人走多近可以触发开关。
(范围是0—50cm),
但现在出现了问题。
1.我定的门电压A/D值只能为700-1022,
小于700就循环触发,不能关,大于1022就人站多近都不能开。
2.在门电压A/D值700-1022,也不能调整很少的触发距离,反而调整置位发射二极管高电平8us的大小就有作用。
请问,是不是我的算法有问题呢。
谢谢各位高手指点一下吧。