继电器(Electric Relay)

[TOC]

一、简介

继电器有2种,一种是普通的继电器,一种是固态继电器。
这2种继电器,基本是一样的,实现的功能也基本是一样的,继电器是什么? 继电器是一种使用非常低的电压输入控制高压电的电气设备。由一个线圈缠绕的金属杆和两个小型金属节点构成的闭合电路。其中一个节点是固定的,其他的都是可移动的。无论何时,当电流通过线圈的时候,它会产生一个磁场,吸引可移动节点向静态节点运动,形成电路。通过给线圈供应小额电压,我们就能完成高压电路的轮回。同时,静态节点并非在物理上与线圈有联系,因此一旦有地方出错,微控制器驱动的线圈也很少出现故障。
这2种继电器,都有控制端,控制端又分为低电压控制高电压控制,也就是都有DC+DC-,以及IN,这个IN是几路电压,就有几个,也就是这个IN是树莓派GPIO控制的,继电器,还有支持外部供电的,这个要根据具体的类型,具体说了。

二、普通继电器

linux_raspberry_electric_relay_01.png

k1 到 k4为电流控制端,也就是我们控制的电流从这里控制。每组有三个端,一个为输入正电流,一个为闭合通电,一个为开通通电。这三个的接入,要根据自己的业务需求了。这里面也没有变压的概念,用树莓的5v或者3.3v,做下测试很简单就能得到结论,做一个假设树莓正极接入k1.1从k1.2输入跟led小灯的正极,led小灯的负极接回树莓派,这样闭合的时候小灯亮。

三、固态继电器

linux_raspberry_electric_relay_02.png

固态继电器每组是有2个端组成,固态继电器我了解的说明是,小电流控制交流电使用,接线的示意图为:
linux_raspberry_electric_relay_03.png

四、通过继电器控制灯(一)

说明

  • 如何使用树莓派及一些其他电子元件来控制房间的灯光
  • 有必要提醒一下关于实验中“电流”的危险性

硬件

  1. 树莓派2或树莓派3(或者任何5V输出功率的型号,均可)
  2. USB无线软件狗(树莓派2版本需要)
  3. 8路继电器
  4. 一些Female-Female跳线(40 PCS FEMALE TO FEMALE JUMPER WIRES)
  5. 灯头电线

软件

安装python的GPIO库

1
$ sudo pip install RPI.GPIO

了解元件

  1. 继电器
    试验中,我使用一个8路继电器,可以同时控制8个设备。你可以选择自己的继电器或者继电板,但是请确保你在继电器的额定电压之内处理,以避免任何事故的发生
  2. 跳线
    跳线就是我们链接树莓派GPIO插脚与继电器的简单连接电线。
  3. 树莓派2

连接电路

  • 电路非常简单。我们将连接GPIO插脚到继电板上。首先连接继电器板上的“GND”与树莓派上的任意“GND”。然后链接继电器的“IND1”到GPIO PIN 17,我们会把GPIO PIN 17作为一个控制第一继电器的输出。最后,将继电器的“VCC”连接到树莓派的“5V”GPIO插脚。让我们简单直接设置一下:
1
2
3
4
GPIO Pins   <—>     Relay Pins
5V <–> VCC
GND <–> GND
PIN 17 <–> IND1
  • 现在我们到了最为棘手的部分,我们要将继电器连接到接通主电路供电的灯头上。但是,我想先给你介绍一个如何通过直流屏电源开启及关闭灯光的简单操作。

  • 我们通常连接两根电线到灯泡上,来提供电流供给。其中一根电线是“中性”电线,另一根则是实际带着电流的“负极”电线,同样的这里也有一个控制整个电路的开关。因此,当开关(闭合)连接到流经灯泡的电流和负极电线时,电路便完整了。灯泡从而亮了起来。当开关(断开),破坏了电路和灯泡的电流,因此灯泡不亮。这里有一个小的电路图来解释具体情况:

  • linux_raspberry_electric_relay_04.png
  • 当我们在试验中,我们需要“负极电线”通过我们的继电器来打破电路,从而使用继电器开关的控制流经的电流。因此,当继电器打开,在闭合电路中灯泡也应该亮起来,反之亦然。请参考一下完整的电路:

linux_raspberry_electric_relay_05.png

控制脚本

lights.py

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#!/usr/bin/python
# lights.py
# command:
# 1. open led
# ~$ python lights.py 1
# 2. close led
# ~$ python lights.py 0

import sys
import RPi.GPIO as GPIO

GPIO.setwarnings(False)
GPIO.setmode(GPIO.BCM)

args = sys.argv
pin = 17 # GPIO PIN 17
ctl = args[1] # Argument 1 for ON/OFF

if (int(ctl) == 1):
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin,GPIO.HIGH)

if (int(ctl) == 0):
GPIO.setup(pin, GPIO.OUT)
GPIO.output(pin, GPIO.LOW)

五、通过继电器控制灯(二)

所需元器件

  1. 继电器一个(买的双路的)
  2. 发光二极管一个
  3. 红外传感器一个
  4. 面包板一个
  5. 杜邦线若干

连线

由于继电器和红外传感器输入电压是5v,所以需要用到一个面包板。

  1. 树莓派GND和5V接到面包板;
  2. 继电器GND和VCC分别接到面包板的GND和5V
  3. 红外传感器GND和VCC分别接到面包板的GND和5V,信号线OUT直接接继电器的IN端(这里不需要写代码就能控制);

    继电器的一些注意点,我用的可以控制交流(<=220v)和直流电(<=30V)。这里用的是led,所以用直流供电,也比较安全。B、C之间是“常开”触点,默认是断开;A、B之间是“常闭”触点,默认是连通。);

  4. 找一根电线,一端接通3v直流。我选择用A、B触点,将电线中两根其中一根剪断,两头分别接在继电器A、B端;最后另一端将led较长的一根引脚接正极,短的接负极。

测试

红外检测到有人led亮

linux_raspberry_electric_relay_06.png