树莓派 GPIO详细介绍与使用
树莓派
介绍
Raspberry Pi(中文名为“树莓派”,简写为RPi,(或者RasPi / RPI) [1] 是为学习计算机编程教育而设计),只有信用卡大小的微型电脑,其系统基于Linux。
GPIO
树莓派总共40个引脚
40根引脚有不同的编号规则来定义,虽然不同的规则叫的名字不一样,但实际的用途是一致的,这里只学习一种编号规则,也就是物理位置编号,这样更容易进行物理连接。
比如:1号引脚,是输出1个3.3伏的电压,也就是如果用数字万用表去测量这根引脚的电压,会一直测出来是一个恒定并且不能变化的3.3伏。2号与4号引脚相同,只不过输出的是5伏的电压。
6号引脚,是一个GND,也就是接地,如果测量电压的话,就是0伏。(9、14、20、25、30、34、39相同)
11号引脚,是绿色图标,其实这个接口就是普通的接口,可以输入也可以输出。如果设置为输出,则可以输出高电压或者低电压。输出高电压就是3.3伏,输出低电压就是0伏。可以通过程序来控制。
控制GPIO 方法一 通过终端命令
cd /sys/class/gpio # 进入 GPIO 目录
ls # 查看GPIO目录中的内容
# GPIO 操作接口从内核空间暴露到用户空间
echo BCM引脚编码 > export # 例如 echo 26 > export 执行之后该目录下会增加一个引脚文件
ls
这时候会看到目录下会出现一个gpio26的目录
cd gpio26
进入目录后就可以通过终端命令控制引脚了
控制GPIO 方法二 通过Python控制
import RPi.GPIO as GPIO
import timeGPIO.setmode(GPIO.BCM) # 采用BCM编码
GPIO.setup(18, GPIO.OUT)for i in range(1,100): GPIO.output(18, GPIO.HIGH)time.sleep(0.5)GPIO.output(18, GPIO.LOW)time.sleep(0.5)
GPIO.cleanup()
如果遇到这个警告可以忽略
RuntimeWarning: This channel is already in use, continuing anyway. Use GPIO.setwarnings(False) to disable warnings.
控制GPIO 方法三 通过C语言控制
#include<wiringPi.h>
#define Pin 25
int mian()
{if(wiringPiSetup() < 0)return1;pinMode(Pin,OUTPUT);for(int i=0;i<30;i++){digitalWrite(Pin,1);delay(200);digitalWrite(Pin,0);delay(200);}return 0;
}
编译运行
gcc -o 文件名 文件名.c -lwiringPi
sudo ./文件名
树莓派遇到的问题
gpio readall 未找到命令
原因是缺少[[wiringPi]]库
树莓派4 自带的 wiringPi 库默认是 2.50 ,无法映射到 gpio ,所以需要更新到 2.52及以上才能与树莓派映射。zero2w 则需要 2.60及以上
安装wiringPi库
git clone https://github.com/zhuhaoxlj/WiringPi
cd ~/WiringPi
./build
如果提示make 找不到命令
sudo apt update
sudo apt-get install make
sudo make
然后再执行
./build
编译成功后执行一下命令
gpio -v
如果看到这个提示就说明安装wiringPi库成功了
树莓派安装非官方系统没有raspi-config命令的解决方法
1、安装依赖
sudo apt install whiptail parted lua5.1 alsa-utils psmisc
2、从Raspberrypi官网下载最新的deb安装包
wget http://archive.raspberrypi.org/debian/pool/main/r/raspi-config/raspi-config_20200707_all.deb
官网下载地址:
Index of /debian/pool/main/r/raspi-config (raspberrypi.org)
3、安装Deb安装包
sudo dpkg -i raspi-config_20200707_all.deb
4、装好软件还是提示缺少依赖执行错误
sudo apt install -f -y
5、运行raspi-config,需要sudo或以上权限
sudo raspi-config
树莓派 GPIO详细介绍与使用相关推荐
- 【STM32】GPIO详细介绍
目录 GPIO概述 GPIO功能及特性 GPIO的电路结构 GPIO的工作模式 GPIO概述 GPIO是通用输入输出接口(general purpose input/output)的简称主要用于数字量 ...
- 树莓派开发笔记(五):GPIO引脚介绍和GPIO的输入输出使用(驱动LED灯、检测按键)
若该文为原创文章,未经允许不得转载 原博主博客地址:https://blog.csdn.net/qq21497936 原博主博客导航:https://blog.csdn.net/qq21497936/ ...
- gpio引脚介绍 树莓派3b_gpio引脚介绍 树莓派3b
陈拓chentuo@ms.xab.ac.cn 2018.06.09/2018.06.10 从网上下载了几张精美的图片,感谢图片的制作者! 0. 概述 本文介绍树莓派 Zero W的GPIO控制,并用L ...
- 树莓派GPIO口的使用(外设相关开发WringPi库的使用,超声波、继电器)
树莓派的接口: 大而简单的类别:IO口,input和output是相对于主控芯片来说的,是根据MCU和外设之间的关系将IO口的功能分为output和input.当IO作为input使用时外设有:人体传 ...
- 树莓派pythongpio编程_树莓派gpio接口及编程方法
树莓派现在越来越火,网上树莓派的资料也越来越多.树莓派源自英国,国外嵌入式开源领域具有良好的分享精神,树莓派各种集成库也层出不穷,下面详细介绍一下树莓派gpio接口及编程方法. GPIO基本介绍 GP ...
- 树莓派GPIO驱动原理
1.前言 最近认真学习了树莓派,从浅到深认真分析了wiringPi实现代码,借助树莓派学习linux收获颇丰.深入学习linux一段时间后发现它非常有魅力,一个简单的IO口输出操作尽有那么多的&quo ...
- [转载] python中pass的使用_Python pass详细介绍及实例代码
参考链接: Python pass语句 Python pass详细介绍及实例代码 Python pass的用法: 空语句 do nothing 保证格式完整 保证语义完整 以if语句为例,在c或c++ ...
- 树莓派GPIO控制/使用的教程
树莓派GPIO控制/使用的教程 介绍 使用说明 (一)导入库 (二)设置编码规范 (三)引脚设置 (四)电平控制 (五)读取引脚的输入状态 (六)释放GPIO资源 (七)示例代码 (八)PWM设置 一 ...
- 基于树莓派GPIO口和光电传感器的障碍物检测
花了相当多的时间探讨了GPIO口的使用方法,接下来将重点探讨如何进行实际的应用.现有的一个简单的光电传感器为例,讲述如何实现外界障碍物的检测系统的设计. 所需的器件: 树莓派(B版本) TPLINK无 ...
最新文章
- Spring MVC那点事儿
- CCS5中的小钥匙标志是什么意思
- autofac 的好博文
- 【记录】 安装qflow on ubuntu 16.04
- visual assist破解
- Jmeter添加断言
- UA MATH563 概率论的数学基础 中心极限定理6 独立随机变量的和与Kolmogorov扩展定理
- MyBatis使用MySQL存储过程
- linux 编辑文件vim,linux下通过vim编辑文件的方法
- bytebuf池_netty源码解析(4.0)-26 ByteBuf内存池:PoolArena-PoolSubpage
- 採集和输出 DeckLink Studio 4K
- Python3 Socket和SocketServer 网络编程
- BZOJ2879 [Noi2012]美食节
- Atitit 泛型的知识点 目录 1. 为什么需要泛型 why	2 2. 定义分类 what	2 2.1. 编辑类型参数	2 2.2. 模板	2 2.3. 简单理解 占位符 代替object、	3
- 集成电路设计的运作模式
- 线性表文档之静态链表
- 大华平台linux密码,大华指纹锁管理员密码忘了
- word选择粘贴没有html格式,Word选择性粘贴怎么用?Word设置无格式文本粘贴快捷键的方法...
- 2017埙箫简谱清单分享(附音频Demo)
- 《Real-Time Rendering 4th Edition》全文翻译 - 第5章 着色基础(上)5.1 ~ 5.2
热门文章
- mint 19.3 解决 mtk flashtool 下载软件问题
- Oracle VM VirtualBox虚拟机配置(配置Windows7为例)
- Thinkpad R400 2786k26系列在Debian Squeeze上解决无线网卡问题
- 基于两阶段鲁棒优化的微网电源储能容量优化配置
- mysql10分钟备份一次_做好mysql运维,必须熟练掌握备份和恢复,实战一次不行多来几次...
- Thinkphp课程表小程序源码
- vs2019创建c++项目步骤_创建django项目的步骤(超级详细)
- 搞笑版《史记,陈冠希列传》
- Unite’17 开发者大会经验分享
- mysql日常使用中常见报错汇总