zoukankan      html  css  js  c++  java
  • 树莓派使用python+继电器控制220V灯泡

    需要的材料

    1.继电器:继电器是一种电控制器件,它实际上是用小电流去控制大电流运作的一种“自动开关”,我们这里用它来控制电灯。控制了继电器就等于控制了电灯。

    我购买的是某宝上3块钱的“1路 5v继电器”,这里的“几路”指的是可用控制多少个电灯220v线路,5v指继电器本身需要5v电压来驱动,树莓派本身提供5v电压输出所以这里选用5v

    2.杜邦线:某宝几块钱一组40P,这里只需要三根,用于连接 树莓派与继电器

    3.电灯+灯座+铜线+电源插头

    GPIO说明

    GPIO是(General Purpose Input Output)的缩写,也就是通用输入输出,是一种常见的硬件接口,用以表示开关量。

    物理连接

    1.树莓派阵脚对应继电器:

     1.继电器连接电路(220v电源线):

     3.总示意图

    这里注意:GPIO18是针脚12,在BCM中的编码

     这种接线方法称为:“常开端”接线方法,还有另一种“常闭端”接线方法,只需要将“NO”火线出口移动到“NC”位置

    Python 控制脚本

     树莓派系统中自带python IDE可直接编译、调试代码,比使用java方便

      登录树莓派 点击“菜单->编程->Thonny Python IDE” 启动IDE代码如下:

    import RPi.GPIO as GPIO
    import time
    
    # BCM 编号方式
    GPIO.setmode(GPIO.BCM)
    # 设置[以BCM编号为18(实际在树莓派12针脚位置)]的GPIO口为输出模式
    GPIO.setup(18, GPIO.OUT)
    # 开启
    GPIO.output(18, GPIO.HIGH)
    time.sleep(5) #5秒后关闭
    # 关闭
    GPIO.output(18, GPIO.LOW)
    # 最后清理GPIO口
    GPIO.cleanup()

     micropython

    from machine import Pin
    import time
    
    #第一个灯
    relay_in1 = Pin(3, Pin.OUT)
    relay_in1.value(1)
    time.sleep(1)
    relay_in1.value(0)
    time.sleep(1)
    
    #第二个灯
    relay_in2 = Pin(4, Pin.OUT)
    relay_in2.value(1)
    time.sleep(1)
    relay_in2.value(0)
    time.sleep(1)

    我的继电器带有红绿两个LED指示灯,接通后红色LED灯常亮,运行程序 当听到 “啪” 的一声,绿色LED 灯就会亮,同时220v灯泡点亮,按程序控制5秒后,再听到 “啪” 的一声,绿色LED 灯就会熄灭,同时220v灯泡熄灭。

    知识扩展

    1. RPi.GPIO模块简单介绍

    函数 GPIO.setmode(mode)
      说明 设置引脚的编号系统
      输入 mode:编号系统,GPIO.BOARD使用BOARD编号系统;GPIO.BCM使用BCM编号系统
    函数 GPIO.setup(channel, dir)
      说明 设置引脚的IO模式
      参数 channel:引脚编号
         dir:IO方向,GPIO.IN输入;GPIO.OUT输出
    函数 GPIO.output(channel, state)
      说明 设置引脚的输出电平
      参数 channel:引脚编号
      参数 state:电平状态,高电平:1/GPIO.HIGH/True;低电平:0/GPIO.LOW/False
    函数 GPIO.input(channel)
      说明 读取引脚的输入电平
      参数 channel:引脚编号
      返回 电平状态,高电平:1/GPIO.HIGH/True;低电平:0/GPIO.LOW/False
    函数 GPIO.cleanup()
      说明 清理引脚

    2.继电器原理图:

     

  • 相关阅读:
    C# winform窗体自动停靠控件
    C# winform treeview checkbox 选中 循环 遍历
    解决WinForm(C#)中MDI子窗体最大化的问题
    tabcontrol的alignment属性设置成Left或Right时,tabPage的text内
    用伪随机数生成器Random生成随机数序列
    C#限制MDI子窗体重复打开——C#判断窗体是否已经打开 多种方法 20120626更新
    管理软件中融入“人、时间、流程”维度,提升软件社会价值
    如何让管理软件提升企业战略执行力
    2007年11月17日上午 ITIL与ITSM QQ群聊天记录: 欢迎加入QQ群:48132184
    Sharepoint 站点下应用程序虚拟路径下出现"不能进行输出缓存处理",错误ID 5787 解决方法
  • 原文地址:https://www.cnblogs.com/ejiyuan/p/15365792.html
Copyright © 2011-2022 走看看