全志H616(Orangepi)控制继电器

文章展示了如何基于Linux操作系统,利用MobaXterm工具和wiringPi库,对全志H616开发板上的继电器进行编程控制。代码详细说明了如何设置GPIO针脚,通过输入命令切换继电器的状态,实现高电平和低电平的切换,从而控制继电器的开闭。
摘要由CSDN通过智能技术生成

基于Linux操作系统编程

    软件平台:MobaXterm

    硬件:全志H616开发板 (下图)、 一组继电器

 继电器(relay) 三根接线端:Vcc —接3.3v ,   GND —接地   ,信号引脚 IN —接 wPi  针脚 0 

 代码如下:

 运行结果如下:

继电器组:    (硬件如下图)

        

 有六根针脚分别是: Vcc —接5v,GND—接地,控制引脚 IN1— 接wPi  针脚 0   ,

     控制引脚 IN2— 接wPi  针脚 1,控制引脚 IN3— 接wPi  针脚 3,控制引脚 IN4—接 wPi  针脚 4

 代码如下

//调用wiringPi库函数 控制继电器(relay)
// 文件: relay2.c 
#include<stdio.h>
#include<wiringPi.h>
#include<string.h>

#define Relay_IN1  0 //设置针脚0为继电器的控制引脚1
#define Relay_IN2  1 //设置针脚1为继电器的控制引脚2
#define Relay_IN3  3 //设置针脚3为继电器的控制引脚3
#define Relay_IN4  4 //设置针脚4为继电器的控制引脚4
int main()
{
	char Cmd[12] = {'\0'} ; 
	//初始化硬件	
	if(wiringPiSetup() == -1)  
	{
		printf("Setup failed!");//error
		return -1;
	}

	pinMode(Relay_IN1 , OUTPUT) ;//设定I/O口的输入输出模式,设置为输出模式
	pinMode(Relay_IN2 , OUTPUT) ;//设定I/O口的输入输出模式,设置为输出模式
	pinMode(Relay_IN3 , OUTPUT) ;//设定I/O口的输入输出模式,设置为输出模式
	pinMode(Relay_IN4 , OUTPUT) ;//设定I/O口的输入输出模式,设置为输出模式
 
	digitalWrite (Relay_IN1 , HIGH) ; //初始设置为高电平,断开/关闭
 	digitalWrite (Relay_IN2 , HIGH) ; //初始设置为高电平,断开/关闭
 	digitalWrite (Relay_IN3 , HIGH) ; //初始设置为高电平,断开/关闭
	digitalWrite (Relay_IN4 , HIGH) ; //初始设置为高电平,断开/关闭

	while(1)
	{
		printf("请输入1/2/3/4 : NO:低电平导通  ,  OFF: 高电平断开 \n");
		memset(Cmd,'\0',sizeof(Cmd));
		scanf("%s",Cmd);    //一般少用gets(Cmd);(慎用gets()函数)

		if(strcmp(Cmd,"1-OFF") == 0)
		{
			digitalWrite (Relay_IN1 , HIGH) ; //输出高电平,关闭IN1
		}
		else if(strcmp(Cmd,"1-NO") == 0)
		{
			digitalWrite (Relay_IN1 , LOW) ; //输出低电平,打开IN1
		}
		else if(strcmp(Cmd,"2-OFF") == 0)
        {
            digitalWrite (Relay_IN2 , HIGH) ; //输出高电平,关闭IN2
        }
        else if(strcmp(Cmd,"2-NO") == 0)
        {
            digitalWrite (Relay_IN2 , LOW) ; //输出低电平,打开IN2
        }
		else if(strcmp(Cmd,"3-OFF") == 0)
        {
            digitalWrite (Relay_IN3 , HIGH) ; //输出高电平,关闭IN3
        }
        else if(strcmp(Cmd,"3-NO") == 0)
        {
            digitalWrite (Relay_IN3 , LOW) ; //输出低电平,打开IN3
        }
		else if(strcmp(Cmd,"4-OFF") == 0)
        {
            digitalWrite (Relay_IN4 , HIGH) ; //输出高电平,关闭IN4
        }
        else if(strcmp(Cmd,"4-NO") == 0)
        {
            digitalWrite (Relay_IN4 , LOW) ; //输出低电平,打开IN4
        }
		else if(strcmp(Cmd,"OFF") == 0)
        {
            digitalWrite (Relay_IN1 , HIGH) ; //关闭全部
			digitalWrite (Relay_IN2 , HIGH) ;
			digitalWrite (Relay_IN3 , HIGH) ;
			digitalWrite (Relay_IN4 , HIGH) ;
        }
        else if(strcmp(Cmd,"NO") == 0)
        {
            digitalWrite (Relay_IN1 , LOW) ; //打开全部
			digitalWrite (Relay_IN2 , LOW) ;
            digitalWrite (Relay_IN3 , LOW) ;
            digitalWrite (Relay_IN4 , LOW) ;
        }
        else
		{
			printf("Invalid Inputs!\n"); 
		}	
	}
	return 0;
}

 运行结果

 硬件显示如下:

以上是 利用wiringPi库函数输出高、低电平来控制继电器的操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值