树莓派外设开发之控制继电器(组)

2023-10-27

控制继电器

选择7号引脚作为继电器信号输出控制端。

在这里插入图片描述
代码:

#include <wiringPi.h>
#include <stdio.h>
#define SWITCHER 7	// 7为树莓派物理引脚编码和wiringPi编码。在树莓派功能名为GPIO.7

int main()
{
	int cmd;
	if( wiringPiSetup() == -1){		//调用wiringPI库需要先wiringPiSetup()初始化
		printf("硬件接口初始化失败\n");
		return -1;
	}
	/* 通用GPIO控制函数 void pinMode (int pin, int mode)
	 * pin:配置的引脚
	 * mode:指定引脚的IO模式
	 * 可取的值:INPUT、OUTPUT、PWM_OUTPUT,GPIO_CLOCK
	 * 作用:配置引脚的IO模式
	 */
	pinMode(SWITCHER, OUTPUT);	
		
	while(1)
	{
		printf("请输入0或1:0->断开开关;1->导通开关\n");
		scanf("%d",&cmd);
		if(cmd == 1){
			digitalWrite(SWITCHER,LOW);		// void digitalWrite (int pin, int value)  pin:控制的引脚 value:引脚输出的电平值。可取的值:HIGH,LOW分别代表高低电平 让对一个已近配置为输出模式的 引脚  输出指定的电平信号
		}else if(cmd == 0){
			digitalWrite(SWITCHER,HIGH);
		}else{
			printf("输入错误\n");
		}
	}
}

运行程序:
在这里插入图片描述
继电器绿灯亮起
在这里插入图片描述

控制继电器组

GPIO引脚选择:
在这里插入图片描述

代码:

#include <wiringPi.h>
#include <stdio.h>
#define SWITCHER1 26
#define SWITCHER2 27	
#define SWITCHER3 28
#define SWITCHER4 29

int main()
{
	int cmd;
	if( wiringPiSetup() == -1){		//调用wiringPI库需要先wiringPiSetup()初始化
		printf("硬件接口初始化失败\n");
		return -1;
	}

	pinMode(SWITCHER1, OUTPUT);	
	pinMode(SWITCHER2, OUTPUT);	
	pinMode(SWITCHER3, OUTPUT);
	pinMode(SWITCHER4, OUTPUT);		
		
	while(1)
	{
		printf("请输入1~8:1->导通继电器1开关;2->断开继电器1开关;\n3->导通继电器2开关;4->断开继电器2开关;\n5->导通继电器3开关;6->断开继电器3开关;\n7->导通继电器4开关;8->断开继电器4开关\n");
		scanf("%d",&cmd);
		if(cmd == 1){
			digitalWrite(SWITCHER1,LOW);		
		}else if(cmd == 2){
			digitalWrite(SWITCHER1,HIGH);
		}else if(cmd == 3){
			digitalWrite(SWITCHER2,LOW);
		}else if(cmd == 4){
			digitalWrite(SWITCHER2,HIGH);
		}else if(cmd == 5){
			digitalWrite(SWITCHER3,LOW);
		}else if(cmd == 6){
			digitalWrite(SWITCHER3,HIGH);
		}else if(cmd == 7){
			digitalWrite(SWITCHER4,LOW);
		}else if(cmd == 8){
			digitalWrite(SWITCHER4,HIGH);
		}else{
			printf("输入错误\n");
		}
	}
}

运行程序:
在这里插入图片描述
继电器执行效果:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

树莓派外设开发之控制继电器(组) 的相关文章

随机推荐

  • linux脚本实现scp命令自动输入密码和yes/no等确认信息

    实现方式 通过expect工具实现 bin bash yum y install expect expect c spawn scp r root 192 168 10 106 root qumf Agoly txt root qumf e
  • mysql 查询 投影_sql--查询(基本,条件,投影,排序)

    要查询数据库表的数据 我们使用如下的SQL语句 SELECT FROM 使用SELECT FROM students时 SELECT是关键字 表示将要执行一个查询 表示 所有列 FROM表示将要从哪个表查询 该SQL将查询出students
  • 位域(bit fields)简介

    1 简介 位域是指信息在存储时 并不需要占用一个完整的字节 而只需占几个或一个二进制位 例如在存放一个开关量时 只有0和1 两种状态 用一位二进位即可 为了节省存储空间 并使处理简便 C语言又提供了一种数据结构 称为 位域 或 位段 所谓
  • 信息学奥赛-逻辑运算

    学习内容 1 逻辑运算概念介绍 非 not 与 and 或 or 异或 xor 2 运算规则 AVB 两个命题中至少有一个真命题时 其复合命题为真 A B 两个命题必须全为真命题 其复合命题才是真命题 A 将原命题取反 A B 两个命题一真
  • 【深度学习】tensorflow各个版本下载地址

    tensorflow与CUDA对应表如下 需要装低版本的tensorflow 下载地址 http mirrors aliyun com pypi simple tensorflow gpu
  • 吴晓波:2020年怎么看,怎么办?

    origin https 36kr com p 5274524 快公司 时代已经过去了 编者按 本文来自微信公众号 正和岛 ID zhenghedao 口述 吴晓波 财经作家 890新商学创始人 采写 曹雨欣 36氪经授权发布 再次见到吴晓
  • C++笔记-用指定字符串替换目标字符串中的字串-find-substr-replace

    功能是 用字符串zhangsan lisi wangwu替换目标字符串names 1 2 3 中的 1 2 3 结果是 names zhangsan lisi wangwu 1 使用std string的replace方法 std stri
  • three.js 创建文本的几种方式

    精灵贴图文本 text width 128px height 128px font size 16px text align center color ffffff background ff0000 div class text 精灵贴图
  • 基于javaweb+mysql的二手交易平台二手商城二手物品(前台、后台)

    基于javaweb mysql的二手交易平台二手商城二手物品 前台 后台 运行环境 Java 8 MySQL 5 7 Tomcat 8 开发工具 eclipse idea myeclipse sts等均可配置运行 适用 课程设计 大作业 毕
  • [题解]-整理药名

    题目 医生在书写药品名的时候经常不注意大小写 格式比较混乱 现要求你写一个程序将医生书写混乱的药品名整理成统一规范的格式 即药品名的第一个字符如果是字母要大写 其他字母小写 如将 ASPIRIN aspirin 整理成 Aspirin 输入
  • MySQL数据库之DML(数据操纵语言)

    1 DML 数据操纵语言 在进行数据库操作时 首先就是要使用DML 数据操纵语言 数据操纵语言主要由插入数据 insert 更新数据 update 以及删除数据 delete 组成 这些操作主要是针对 数据表中的数据 2 插入数据 INSE
  • 论文解读:Inpaint Anything: Segment Anything Meets Image Inpainting

    论文 https arxiv org pdf 2304 06790 pdf 代码 https github com geekyutao Inpaint Anything 图1 Inpaint Anything示意图 用户可以通过点击图像中的
  • Kanzi入门学习教程

    锋影 e mail 174176320 qq com 1 安装Kanzi 2 使用Kanzi studio创建工程 Kanzi创建的工程会包含以下目录结构 其中 Tool project文件夹中存放的是设计师设计的工程 包含kanzi UI
  • 不同业务场景下数据同步方案设计

    企业开发实践中通常需要提供数据搜索的功能 例如 电商系统中的商品搜索 订单搜索等 通常 搜索任务通常由搜索引擎担当 如Elasticsearch 而我们的原始数据为了安全性等问题通常存储在关系型数据库中 在搜索数据前 我们需要先将数据从关系
  • 前端性能优化指南

    一 常用指标 1 FP First Paint 页面在导航后首次呈现出不同于导航前内容的时间点 计算方式 白屏时间 firstPaint pageStartTime 2 FCP First Contentful Paint 从页面开始加载到
  • pandas 选取行和列的方法

    本文介绍在 pandas 中如何读取数据行列的方法 数据由行和列组成 在数据库中 行被称作记录 record 列被称作字段 field 回顾一下我们对记录和字段的获取方式 比较常见的 字段根据名称获取 记录根据筛选条件获取 比如获取 stu
  • 【MQTT协议】学习笔记(3.1.1版本)

    MQTT协议学习 3 1 1版本 MQTT基础知识 MQTT 术语 数据表示 Data representations MQTT控制报文格式 MQTT Control Packet format 固定报头 Fixed header MQTT
  • 打造基于终端命令行的IDE,Termux配置Vim C++开发环境

    Termux配置Vim C 开发环境 打造基于终端命令行的IDE 主要利用Vim Coc插件 配置C 的代码提示等功能 Termux换源 打开termux 输入termux change repo 找到mirrors tuna tsingh
  • bert cnn知识抽取模型_结合Bert字向量和卷积神经网络的新闻文本分类方法

    刘凯洋 摘要 目前的文本分类大多使用词向量 且词向量大多由Word2vec Glove等方法训练得到 其存在的问题是部分文本中词语的数量较多而训练速度较慢 且准确率受到切词的影响 由于中文字词和英文差异较大 提出结合Bert字向量的文本分类
  • 树莓派外设开发之控制继电器(组)

    目录 控制继电器 控制继电器组 控制继电器 选择7号引脚作为继电器信号输出控制端 代码 include