极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 10331|回复: 4

给项目加个远红外接近开关-最简单的往往是最难的

[复制链接]
发表于 2015-7-31 13:59:22 | 显示全部楼层 |阅读模式
本帖最后由 wukongxuetang 于 2015-7-31 14:08 编辑

           在坊子里搜远红外接近开关,却没有搜到相关的内容,估计是大家都是高手,不懈于做这种低水准的硬件,再说在T宝上买一个也就10几元,对玩arduino的土豪们来说确实不算什么,可仔细想想就不对味道了,10几元就可以买个arduino nano或者mini pro了。
      
      
      
      可成本才多少呢(不要跟我说什么放大电路,稳压电路,调节电阻,比较电路什么的),做项目开发很多时候就是够用就好,一个板子上弄几十个红外开关,T宝上的这模块就只能呵呵了。
      
      
      一对940红外发射接收管,成本在0.6,22k电阻和200欧姆电阻各一个,成本估计不会超过0.4元,如果您是在孔孔板上测试,需要连接到arduino模拟口导线一根,连接5v导线一根,连接到gnd的导线一根。
      为了做项目,在网上参考了不少的线路,简单的复杂的,能用的不能用的,敏感的不敏感的,最终选择的方案图片如下。

     上面电阻33-200均可,另外一个理论上10k就可,用22k也没问题,在模拟口中读取到的数字在900-1022左右,当远红外接受管接收到红外信号时候,模拟口数字最低到7左右,测试中模拟口数字在800-900左右有灵敏感应变化。
      利用上面变化,可以通过条件判断对RBG全彩灯以及机器人距离感应做出不同判断。
      
      
  1. // the setup function runs once when you press reset or power the board
  2. int chuv;
  3. #include "Tlc5940.h"
  4. int colorR;
  5. int colorG;
  6. int colorB;
  7. int dtime=2;
  8. void setup() {
  9.    Tlc.init();
  10.   pinMode(A4,INPUT);
  11.   pinMode(2,OUTPUT);
  12.   chuv=analogRead(A4);
  13.    Serial.begin(115200);
  14. }

  15. // the loop function runs over and over again forever
  16. void loop() {
  17.   Tlc.setAll(0);
  18.   Tlc.update();
  19.   digitalWrite(2,HIGH);
  20.   int ledr=1;
  21.   int ledg=2;
  22.   int ledb=3;
  23.   int ad=analogRead(A4);
  24.   if (ad>chuv-100){
  25.   setColor(ledr,ledg,ledb,255,0,1);
  26.   }
  27.   if (ad>chuv-200&&ad<=chuv-100){
  28.    setColor(ledr,ledg,ledb,5,255,33);//绿
  29.   }
  30.    if (ad<=chuv-200){
  31.   setColor(ledr,ledg,ledb,243,0,25);
  32. }
  33. }
  34. void setColor(int redPin,int greenPin,int bluePin,int red, int green, int blue)
  35. {
  36.   int red1=map(red,0,255,0,4095) ;  
  37.   Tlc.set(redPin, red1);
  38.   int green1=map(green,0,255,0,4095) ;
  39.   Tlc.set(greenPin, green1);
  40.   int blue1=map(blue,0,255,0,4095) ;
  41.   Tlc.set(bluePin, blue1);
  42.   Tlc.update();
  43.   delay(dtime);
  44. }
复制代码




特殊说明,项目代码中用了TLC5940,在项目中用d2做电源正,a4做模拟口,tlc5940的1,2,3对应rgb灯的rbg脚,rgb各串一个200欧电阻。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2015-8-1 23:29:33 | 显示全部楼层
先赞一个,做了东西,有实物有图片,还有代码,大家互相学习进步!
下面说点其它的
一:思路问题,先抛开技术问题,就算那个模块12块算贵么?你自己做一个一模一样的看看多少钱做得出来?刚也去某宝转了转,现在促销价都不到2块了.....
二:看功能,放大电路,稳压电路,调节电阻,比较电路那一堆,最后实现了最关键的一件事情:把探测结果变换为一个开关量输出,稳定可靠。我就不用管它具体怎么工作,反正我要的就是那个状态,然后我把重心放在更重要的整个系统流程方面,不用去找电阻,不用换电阻,不用去面包板上搞那么多线,最后也不用把面包板弄到设备上去。还有最关键的,资源,你的单片机不要去处理其它事情么,还需要来这里守着做AnalogRead这事。
三:你10几元是可以买个promini 或者nano了,但做工程你敢用这种板么。还有,本来在这方面,主控成本就不算贵。其周边模块更贵,所有的这些,都是为了让用户更方便快速地做出东西来。
好像越说越多了,最后也引用你的句话,做项目谁敢批量上arduino而不是自己画板,那我也呵呵了
回复 支持 反对

使用道具 举报

发表于 2015-8-2 09:18:38 | 显示全部楼层
TLC5940讨论一下?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-8-2 19:25:27 | 显示全部楼层
liuxue4503 发表于 2015-8-1 23:29
先赞一个,做了东西,有实物有图片,还有代码,大家互相学习进步!
下面说点其它的
一:思路问题,先抛开 ...

感谢您的回复,听说高手都是从插洞洞板开始的,兄弟刚开始学习,有表述不当之处还请多理解
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-9-4 14:51:24 | 显示全部楼层
maxims 发表于 2015-8-2 09:18
TLC5940讨论一下?

TLC5940的帖子极客工坊里有很多,在流水灯等项目中都有,可以搜索下
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 13:39 , Processed in 0.048581 second(s), 20 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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