查看: 11421|回复: 3

【香蕉派系列】香蕉派的GPIO控制继电器

[复制链接]
  • TA的每日心情
    开心
    2017-10-9 10:25
  • 签到天数: 886 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2014-9-19 19:15:17 | 显示全部楼层 |阅读模式
    分享到:
            此前通过爱板赠送给各位拥有香蕉派或者树莓派的网友一些继电器扩展版,估计大叫也要陆陆续续的拿到手了。今天来看一下香蕉派的GPIO操作,以及利用GPIO来驱动这块继电器扩展版。注意:这块继电器扩展板支持220V交流电,不过最大吸合电流只有0.3A,也就是最大控制功率66W。可以控制比如台灯、电铃、手机充电器等小功率的电器。千万不能用它来控制烧水壶、空调等大功率电器。毕竟这块扩展板上采用的是微型信号继电器,主要用于弱电信号控制,比较适合桌面演示平台。
            本来这块继电器扩展板是为树莓派设计的。因为香蕉派的CON3上的26PIN IO和树莓派是兼容的,所以这块继电器扩展板也就同样适用于香蕉派。仅仅是局部略有干涉,需要稍加处理一下。
             需要处理的地方包括两处:
            (1)去掉5根排针(比较简单的方法是用斜口钳先把排针上的塑料挑上来,然后一根一根从根上剪断,比较锋利的剪钳基本都能剪得平平的,用烙铁反而不方便。即使剪钳不锋利,剪下来还有不平整的也没关系,香蕉派的排针脚离它挺远不会碰到,非处女座的完全可以不去管它)
    DSC01700.JPG

            下面是我剪的,很便宜的斜口钳,剪得也挺平整的。
    DSC01701.JPG

            (2)把支撑的尼龙柱移到角上。如下:
    DSC01720.JPG

            安装位置还是和树莓派一样,5PIN的排母插到CON3的9、11、13、15、17五个针上。就是内侧一排排针的居中位置,安装效果如下:
    DSC01721.JPG

            对了,继电器的接出端如果你不是接强电,仅仅是控制个12V的电机,或者信号控制类似应用的话,可以不用接端子,用排针代替比较方便。掰一段12PIN,2.54mm间距的排针,然后每隔一根拔掉一根,做一个5.08mm间距的排针,如下:
    DSC01702.JPG

            然后就可以焊到板子上了,这样可以很方便的用杜邦线链接低压受控电路。不过如果是强电应用的话,还是墙裂建议使用接线端子会比较安全。特别注意:强点有危险,需要在弱电下模拟试验好之后再接强电,有电时不能触摸板子。
    DSC01703.JPG


            下面就来试试GPIO来控制继电器。继电器扩展板上有状态指示LED,并且继电器吸合时有清脆的响声,所以我们什么都不接也能看到效果。
             由于我测试的系统是Raspbain,这个系统是从树莓派系统移植过来的,并且两块板子有GPIO接口兼容的设计。所以对于香蕉派,代码上的GPIO序号和树莓派是完全相同的。
    树莓派GPIO图.jpg     继电器扩展版IO.jpg

            那么,我们这里在香蕉派上写代码时,GPIO的序号就沿用树莓派博通的GPIO序号(注意:仅仅是Raspbain系统是如此,其他系统根据实际情况而定)。在树莓派上我们使用的是GPIO22来控制继电器的,所以这里还是用GPIO22。在此之前我们需要先进入到管理员权限模式下:
    1. bananapi@lemaker ~ $ sudo su
    复制代码
    首先我们要把需要的IO从内核空间暴露到用户空间,使用echo命令:
    1. root@lemaker:/home/bananapi# echo 22 > /sys/class/gpio/export
    复制代码
    这样之后,在/sys/class/gpio目录下会自动建一个/sys/class/gpio/gpio22的目录,然后我们要跳转到这个目录里,使用cd命令:
    1. root@lemaker:/home/bananapi# cd /sys/class/gpio/gpio22
    复制代码
    然后我们就可以用ls命令看看它下面的子目录文件,我们接下来对GPIO的各种控制命令文件都在里面:
    1. root@lemaker:/sys/class/gpio/gpio22# ls
    复制代码
    命令行会显示出控制命令文件列表:active_low  direction  edge  power  subsystem  uevent  value
            然后我们用echo命令操作direction文件,把这个GPIO设置为输出:
    1. root@lemaker:/sys/class/gpio/gpio22# echo out > direction
    复制代码
    然后我们用echo命令操作value文件,把这个GPIO设置为低电平,继电器吸合,状态LED点亮:
    1. root@lemaker:/sys/class/gpio/gpio22# echo 0 > value
    复制代码
    然后我们用echo命令操作value文件,把这个GPIO设置为高电平,继电器释放,状态LED熄灭:
    1. root@lemaker:/sys/class/gpio/gpio22# echo 1 > value
    复制代码
             代码.jpg

            实物效果如下,大家可以用此代码来测试板子是否正常:
    100007049090466.gif








    回复

    使用道具 举报

  • TA的每日心情
    奋斗
    2015-10-8 09:49
  • 签到天数: 430 天

    连续签到: 1 天

    [LV.9]以坛为家II

    发表于 2014-9-19 19:38:31 | 显示全部楼层
    做的非常好,学习了
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2020-9-28 10:10
  • 签到天数: 1018 天

    连续签到: 1 天

    [LV.10]以坛为家III

    发表于 2014-9-22 10:18:11 | 显示全部楼层
    非常好!必须顶~~~
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    发表于 2015-3-20 19:41:48 | 显示全部楼层
    完全可以控制大功率的电器呀,再接一个大功率的接触器就行了。
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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



    手机版|小黑屋|与非网

    GMT+8, 2024-12-19 19:09 , Processed in 0.144482 second(s), 24 queries , MemCache On.

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

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.