Difference between revisions of "Matrix - Relay/zh"

From FriendlyELEC WiKi
Jump to: navigation, search
Line 1: Line 1:
 
[[Matrix - Relay|English]]
 
[[Matrix - Relay|English]]
  
==Introduction==
+
==介绍==
 
[[File:relay01.png|thumb|Relay]]
 
[[File:relay01.png|thumb|Relay]]
This is an SPDT relay. Its coil voltage is 5V. The contact current can be up to 10A. It can drive AC or DC high power loads. NO is Normally Open. NC is Normally Closed. COM is Common. When write high to pin S NO will be open and NC will be closed.
+
模块Matrix-Relay这是一个单刀双掷继电器,线圈电压为直流5V,触点电流可达10A,适合驱动直流或交流大功率负载。NO为常开触点,NC为常闭触点,COM为公共触点。当向S引脚施加高电平,继电器线圈导通,此时NO触点断开,NC触点闭合。
  
==Features==
+
==特性==
 
* 1 Form C
 
* 1 Form C
* 5V coil voltage, 3.3/5V control signal
+
* 5V线圈电压,控制信号为3.3/5V
* Contact current up to 10A
+
* 触点电流可达10A
* LED indicator
+
* LED指示
* 2.54mm spacing pin
+
* 2.54mm排针接口,接线方便,通用性强
 +
* PCB尺寸(mm):24x48
 +
[[File:relaypcb.png|frameless|400px|继电器PCB]]
  
==How To==
+
引脚说明: <br>
===Connection===
+
* V:接电源5V
*Connect to Tiny4412 SDK (1506)
+
* G:接地
::Connect the module's pin S to GPIO PIN1, V to 5V and G grounded
+
* S:接GPIO
  
===Code Sample in C Under Linux===
+
==工作原理==
<syntaxhighlight lang="c">
+
这是一个单刀双掷继电器,线圈电压为直流5V,触点电流可达10A,适合驱动直流或交流大功率负载。NO为常开触点,NC为常闭触点,COM为公共触点。当向S引脚施加高电平,继电器线圈导通,此时NO触点断开,NC触点闭合。
#include <stdio.h>
+
#include <string.h>
+
#include "libfahw.h"
+
  
 +
==下载Matrix源码==
 +
Matrix配件相关的代码是完全开源的,统一由一个仓库进行管理:git://github.com/friendlyarm/matrix.git <br>
 +
该仓库里不同的分支代表着Matrix配件所支持的不同开发板。<br>
 +
*matrix-nanopi分支包含了Matrix对NanoPi的支持;
 +
*matrix-tiny4412分支包含了Matrix对Tiny4412的支持;
 +
*matrix-raspberrypi分支包含了Matrix对RaspberryPi的支持;
 +
 +
在主机PC上安装git,以Ubuntu14.04为例
 +
<syntaxhighlight lang="bash">
 +
$ sudo apt-get install git
 +
</syntaxhighlight>
 +
 +
克隆Matrix配件代码仓库
 +
<syntaxhighlight lang="bash">
 +
$ git clone git://github.com/friendlyarm/matrix.git
 +
</syntaxhighlight>
 +
克隆完成后会得到一个matrix目录,里面存放着所有Matrix配件的代码。
 +
 +
==与NanoPi连接使用==
 +
===准备工作===
 +
在NanoPi上运行Debian系统,然后在主机PC上安装并使用相应的编译器。参考wiki:[[http://wiki.friendlyarm.com/wiki/index.php/NanoPi]]
 +
 +
===硬件连接===
 +
参考下图连接模块Matrix-Relay和NanoPi <br>
 +
[[File:matrix-relay_nanopi.jpg|frameless|600px|matrix-relay_nanopi]]
 +
 +
===编译测试程序===
 +
进入Matrix代码仓库,切换到matrix-nanopi分支
 +
<syntaxhighlight lang="bash">
 +
$ cd matrix
 +
$ git checkout matrix-nanopi
 +
</syntaxhighlight>
 +
 +
编译Matrix配件代码
 +
<syntaxhighlight lang="bash">
 +
$ make CROSS_COMPILE=arm-linux- clean
 +
$ make CROSS_COMPILE=arm-linux-
 +
$ make CROSS_COMPILE=arm-linux- install
 +
</syntaxhighlight>
 +
注意:请确保你的主机PC当前使用的交叉编译器为NanoPi-Debian配套的arm-linux-gcc.4.4.3。<br>
 +
编译出来的库文件位于install/lib目录下,而测试程序则位于install/bin目录下,模块Matrix-Relay对应的测试程序为matrix-relay。<br>
 +
 +
===运行测试程序===
 +
拷贝库文件和测试程序到NanoPi的文件系统上
 +
<syntaxhighlight lang="bash">
 +
$ cp install/bin/* nanopi_rootfs/bin/
 +
$ cp install/lib/* nanopi_rootfs/lib/ -d
 +
</syntaxhighlight>
 +
 +
然后启动NanoPi,在Debian的shell终端中执行如下命令运行模块Matrix-Relay的测试程序 <br>
 +
<syntaxhighlight lang="bash">
 +
$ matrix-relay
 +
</syntaxhighlight>
 +
 +
===代码展示===
 +
<syntaxhighlight lang="c">
 
int main(int argc, char ** argv)
 
int main(int argc, char ** argv)
 
{
 
{
Line 33: Line 88:
 
     }
 
     }
  
     int pin = TINY4412_GPIO_PIN1;
+
     int pin = GPIO_PIN1;
 
     int ret = -1;
 
     int ret = -1;
     if ((ret = exportGPIOPin(pin)) != 0) {
+
     if ((ret = exportGPIOPin(pin)) != 0) {
 
         printf("exportGPIOPin(%d) failed!", pin);
 
         printf("exportGPIOPin(%d) failed!", pin);
 
     }
 
     }
Line 43: Line 98:
  
 
     if (strcmp(status, "on") == 0) {
 
     if (strcmp(status, "on") == 0) {
        ret = setGPIOValue(pin, GPIO_LOW);
 
    } else {
 
 
         ret = setGPIOValue(pin, GPIO_HIGH);
 
         ret = setGPIOValue(pin, GPIO_HIGH);
 +
    } else {
 +
        ret = setGPIOValue(pin, GPIO_LOW);
 
     }
 
     }
 
     return ret;
 
     return ret;
Line 51: Line 106:
 
</syntaxhighlight>
 
</syntaxhighlight>
  
===Compile and Run===
+
==与Tiny4412连接使用==
 +
===准备工作===
 +
参考Tiny4412光盘里的《友善之臂Ubuntu使用手册》,在Tiny4412上运行UbuntuCore系统,然后在主机PC上安装并使用相应的编译器。<br>
 +
注意:只能使用Tiny4412SDK-1506的底板。
 +
 
 +
===硬件连接===
 +
参考下图连接模块Matrix-Relay和Tiny4412 <br>
 +
[[File:matrix-relay_tiny4412.jpg|frameless|600px|matrix-relay_tiny4412]]
 +
 
 +
===编译测试程序===
 +
进入Matrix代码仓库,切换到matrix-tiny4412分支
 
<syntaxhighlight lang="bash">
 
<syntaxhighlight lang="bash">
git clone http://github.com/friendlyarm/fa-hardware.git
+
$ cd matrix
cd fa-hardware
+
$ git checkout matrix-tiny4412
cd demo
+
cd matrix-relay
+
make
+
 
</syntaxhighlight>
 
</syntaxhighlight>
Copy your compiled bin to your board and you are ready to go.
 
  
==Resources==
+
编译Matrix配件代码
 +
<syntaxhighlight lang="bash">
 +
$ make CROSS_COMPILE=arm-linux-gnueabihf- clean
 +
$ make CROSS_COMPILE=arm-linux-gnueabihf-
 +
$ make CROSS_COMPILE=arm-linux-gnueabihf- install
 +
</syntaxhighlight>
 +
注意:请确保你的主机PC当前使用的交叉编译器为tiny4412-UbuntuCore配套的arm-linux-gnueabihf-gcc-4.7.3。<br>
 +
编译出来的库文件位于install/lib目录下,而测试程序则位于install/bin目录下,模块Matrix-Relay对应的测试程序为matrix-relay。
 +
 
 +
===运行测试程序===
 +
拷贝库文件和测试程序到Tiny4412的UbuntuCore的文件系统上
 +
<syntaxhighlight lang="bash">
 +
$ cp install/bin/* tiny4412_rootfs/bin/
 +
$ cp install/lib/* tiny4412_rootfs/lib/ -d
 +
</syntaxhighlight>
 +
 
 +
然后启动Tiny4412,在UbuntuCore的shell终端中执行如下命令运行模块Matrix-Relay的测试程序 <br>
 +
<syntaxhighlight lang="bash">
 +
$ matrix-relay
 +
</syntaxhighlight>
 +
 
 +
===代码展示===
 +
<syntaxhighlight lang="c">
 +
int main(int argc, char ** argv)
 +
{
 +
    char *status = "off";
 +
    if (argc != 2) {
 +
        printf("Set relay on\n");
 +
    } else {
 +
        status = argv[1];
 +
        printf("Set relay %s\n", argv[1]);
 +
    }
 +
 
 +
    int pin = GPIO_PIN1;
 +
    int ret = -1;
 +
    if ((ret = exportGPIOPin(pin)) != 0) {
 +
        printf("exportGPIOPin(%d) failed!", pin);
 +
    }
 +
    if ((ret = setGPIODirection(pin, GPIO_OUT)) != 0) {
 +
        printf("setGPIODirection(%d) failed", pin);
 +
    }
 +
 
 +
    if (strcmp(status, "on") == 0) {
 +
        ret = setGPIOValue(pin, GPIO_HIGH);
 +
    } else {
 +
        ret = setGPIOValue(pin, GPIO_LOW);
 +
    }
 +
    return ret;
 +
}
 +
</syntaxhighlight>
 +
 
 +
==与RaspberryPi连接使用==
 +
 
 +
==与Arduino连接使用==
 +
 
 +
==相关资料==

Revision as of 05:37, 5 September 2015

English

1 介绍

Relay

模块Matrix-Relay这是一个单刀双掷继电器,线圈电压为直流5V,触点电流可达10A,适合驱动直流或交流大功率负载。NO为常开触点,NC为常闭触点,COM为公共触点。当向S引脚施加高电平,继电器线圈导通,此时NO触点断开,NC触点闭合。

2 特性

  • 1 Form C
  • 5V线圈电压,控制信号为3.3/5V
  • 触点电流可达10A
  • LED指示
  • 2.54mm排针接口,接线方便,通用性强
  • PCB尺寸(mm):24x48

继电器PCB

引脚说明:

  • V:接电源5V
  • G:接地
  • S:接GPIO

3 工作原理

这是一个单刀双掷继电器,线圈电压为直流5V,触点电流可达10A,适合驱动直流或交流大功率负载。NO为常开触点,NC为常闭触点,COM为公共触点。当向S引脚施加高电平,继电器线圈导通,此时NO触点断开,NC触点闭合。

4 下载Matrix源码

Matrix配件相关的代码是完全开源的,统一由一个仓库进行管理:git://github.com/friendlyarm/matrix.git
该仓库里不同的分支代表着Matrix配件所支持的不同开发板。

  • matrix-nanopi分支包含了Matrix对NanoPi的支持;
  • matrix-tiny4412分支包含了Matrix对Tiny4412的支持;
  • matrix-raspberrypi分支包含了Matrix对RaspberryPi的支持;

在主机PC上安装git,以Ubuntu14.04为例

$ sudo apt-get install git

克隆Matrix配件代码仓库

$ git clone git://github.com/friendlyarm/matrix.git

克隆完成后会得到一个matrix目录,里面存放着所有Matrix配件的代码。

5 与NanoPi连接使用

5.1 准备工作

在NanoPi上运行Debian系统,然后在主机PC上安装并使用相应的编译器。参考wiki:[[1]]

5.2 硬件连接

参考下图连接模块Matrix-Relay和NanoPi
matrix-relay_nanopi

5.3 编译测试程序

进入Matrix代码仓库,切换到matrix-nanopi分支

$ cd matrix
$ git checkout matrix-nanopi

编译Matrix配件代码

$ make CROSS_COMPILE=arm-linux- clean
$ make CROSS_COMPILE=arm-linux-
$ make CROSS_COMPILE=arm-linux- install

注意:请确保你的主机PC当前使用的交叉编译器为NanoPi-Debian配套的arm-linux-gcc.4.4.3。
编译出来的库文件位于install/lib目录下,而测试程序则位于install/bin目录下,模块Matrix-Relay对应的测试程序为matrix-relay。

5.4 运行测试程序

拷贝库文件和测试程序到NanoPi的文件系统上

$ cp install/bin/* nanopi_rootfs/bin/
$ cp install/lib/* nanopi_rootfs/lib/ -d

然后启动NanoPi,在Debian的shell终端中执行如下命令运行模块Matrix-Relay的测试程序

$ matrix-relay

5.5 代码展示

int main(int argc, char ** argv)
{
    char *status = "off";
    if (argc != 2) {
        printf("Set relay on\n");
    } else {
        status = argv[1];
        printf("Set relay %s\n", argv[1]);
    }
 
    int pin = GPIO_PIN1;
    int ret = -1;
    if ((ret = exportGPIOPin(pin)) != 0) {	
        printf("exportGPIOPin(%d) failed!", pin);
    }
    if ((ret = setGPIODirection(pin, GPIO_OUT)) != 0) {
        printf("setGPIODirection(%d) failed", pin);
    }
 
    if (strcmp(status, "on") == 0) {
        ret = setGPIOValue(pin, GPIO_HIGH);
    } else {
        ret = setGPIOValue(pin, GPIO_LOW);
    }
    return ret;
}

6 与Tiny4412连接使用

6.1 准备工作

参考Tiny4412光盘里的《友善之臂Ubuntu使用手册》,在Tiny4412上运行UbuntuCore系统,然后在主机PC上安装并使用相应的编译器。
注意:只能使用Tiny4412SDK-1506的底板。

6.2 硬件连接

参考下图连接模块Matrix-Relay和Tiny4412
matrix-relay_tiny4412

6.3 编译测试程序

进入Matrix代码仓库,切换到matrix-tiny4412分支

$ cd matrix
$ git checkout matrix-tiny4412

编译Matrix配件代码

$ make CROSS_COMPILE=arm-linux-gnueabihf- clean
$ make CROSS_COMPILE=arm-linux-gnueabihf-
$ make CROSS_COMPILE=arm-linux-gnueabihf- install

注意:请确保你的主机PC当前使用的交叉编译器为tiny4412-UbuntuCore配套的arm-linux-gnueabihf-gcc-4.7.3。
编译出来的库文件位于install/lib目录下,而测试程序则位于install/bin目录下,模块Matrix-Relay对应的测试程序为matrix-relay。

6.4 运行测试程序

拷贝库文件和测试程序到Tiny4412的UbuntuCore的文件系统上

$ cp install/bin/* tiny4412_rootfs/bin/
$ cp install/lib/* tiny4412_rootfs/lib/ -d

然后启动Tiny4412,在UbuntuCore的shell终端中执行如下命令运行模块Matrix-Relay的测试程序

$ matrix-relay

6.5 代码展示

int main(int argc, char ** argv)
{
    char *status = "off";
    if (argc != 2) {
        printf("Set relay on\n");
    } else {
        status = argv[1];
        printf("Set relay %s\n", argv[1]);
    }
 
    int pin = GPIO_PIN1;
    int ret = -1;
    if ((ret = exportGPIOPin(pin)) != 0) {	
        printf("exportGPIOPin(%d) failed!", pin);
    }
    if ((ret = setGPIODirection(pin, GPIO_OUT)) != 0) {
        printf("setGPIODirection(%d) failed", pin);
    }
 
    if (strcmp(status, "on") == 0) {
        ret = setGPIOValue(pin, GPIO_HIGH);
    } else {
        ret = setGPIOValue(pin, GPIO_LOW);
    }
    return ret;
}

7 与RaspberryPi连接使用

8 与Arduino连接使用

9 相关资料