12
返回列表 发新帖
楼主: a32325689

[求助] 有關光敏電阻控制求助

[复制链接]
  • TA的每日心情
    开心
    2015-2-14 07:12
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2015-2-12 12:41:57 | 显示全部楼层
    分享到:
    PokeBox 发表于 2015-2-11 23:10
    光敏电阻……16位控制?表示不太懂你说的什么意思。
    是说要用16颗光敏电阻来做类似按键的东西么?一个光敏 ...

    不是
    是4顆光敏電阻做控制
    遮第一顆就0001
    遮第二顆就0010
    遮第三顆就0100
    遮第四顆就1000
    以此類推...0011
                   0101
                   0110
                   0111
                   1001
                   1010
                   1011
                   1100
                   1101
                   1110
                   1111
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-25 09:54
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-2-12 18:19:07 | 显示全部楼层
    a32325689 发表于 2015-2-12 12:41
    不是
    是4顆光敏電阻做控制
    遮第一顆就0001

    哦,二进制啊……不过用光敏电阻你还得考虑香蕉派的IO控制,因为光敏电阻在完全受光的情况下还是有200-800Ω电阻的,你首先要解决的问题就是如何让光敏电阻在受光的时候导通性不影响树莓派IO的高低电平判断,然后才去写程序。如果按你的思路写其实感觉程序还是蛮简单的【我不会python,但是我可以用bash……】
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-2-14 07:12
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2015-2-12 19:57:09 | 显示全部楼层
    本帖最后由 a32325689 于 2015-2-12 20:08 编辑
    PokeBox 发表于 2015-2-12 18:19
    哦,二进制啊……不过用光敏电阻你还得考虑香蕉派的IO控制,因为光敏电阻在完全受光的情况下还是有200-80 ...

    我現在是成功了
    但是
    我遮第一顆和第二顆
    因該是要顯示3
    但是他會顯示
    1
    2
    3
    我想要控制的是
    我遮兩顆光敏 他就顯示那個數字就好了
    能給點例子或提示嗎?
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-25 09:54
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-2-12 23:32:41 | 显示全部楼层
    a32325689 发表于 2015-2-12 19:57
    我現在是成功了
    但是
    我遮第一顆和第二顆

    先进行扫描,把所有光敏电阻的状态都扫一遍,然后判断有哪个光敏电阻是被遮住了,然后判断那个光敏电阻是第几个,然后把所有被遮住的光敏电阻的数字进行累加计算最后才输出数字
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2019-6-25 09:54
  • 签到天数: 216 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2015-2-12 23:38:58 | 显示全部楼层
    你可以先把被遮住的光敏电阻放到一个变量里,确认信息后输出变量里的数字,这样就可以只显示最终的结果了
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-2-13 11:02:33 | 显示全部楼层
    我去,思路这么清楚了还要代码。。。

    一次读四个口的状态,赋对应的值 1,2,4,8
    简单相加后就是你要的结果
    如果你用一个循环去读四个口的状态,那么要在循环外输出结果,而不是循环内

    代码大致这样,别和我说要能跑的,没测试过

    1. pins = [11, 12, 13, 14]
    2. values = [1, 2, 4, 8]

    3. //..setup GPIO
    4. //...

    5. def hex_test():
    6.     result = 0
    7.     for i in range(0, 4):
    8.         pin = pins[i]
    9.         val = values[i] if GPIO.input(pin) else 0
    10.         result = result + val
    11.     return result

    12. while True:
    13.     print hex_test()
    复制代码
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-2-14 07:12
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2015-2-13 12:02:40 | 显示全部楼层
    PokeBox 发表于 2015-2-12 23:38
    你可以先把被遮住的光敏电阻放到一个变量里,确认信息后输出变量里的数字,这样就可以只显示最终的结果了 ...

    知道了 謝謝 我會試試
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2015-2-14 07:12
  • 签到天数: 4 天

    连续签到: 1 天

    [LV.2]偶尔看看I

     楼主| 发表于 2015-2-13 12:03:37 | 显示全部楼层
    贱客 发表于 2015-2-13 11:02
    我去,思路这么清楚了还要代码。。。

    一次读四个口的状态,赋对应的值 1,2,4,8

    感謝您提供的代碼  我會試著改改看 謝謝
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条



    手机版|小黑屋|与非网

    GMT+8, 2024-11-19 15:26 , Processed in 0.184628 second(s), 27 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.