【硬件操作入门】2–GPIO与门电路(二极管&三极管)、LED电路与操作
文章目录
一、GPIO与门电路
1.1、GPIO的应用
功能 | 例子 |
---|---|
输出功能 | LED、发射红外信号、电机控制、蜂鸣器、数码管等 |
输入功能 | 按键、接收红外信号、人体感应 |
实现各类协议 | 读取温湿度传感器数据、UART等 |
1.2、GPIO引脚操作
怎么用一个GPIO来控制LED?换句话说,怎么让一个GPIO输出高、低电平?
GPIO内部寄存器 名称 | 功能 |
---|---|
io_mux | 选择引脚 GPIO/UART 功能 |
gpio0_dir_reg | 控制引脚 输入/输出 方向 |
gpio0_data_reg | 设置引脚 输入输出 数值 |
1.2.1 设置引脚为GPIO功能(io_mux)
芯片内部有很多模块,比如GPIO、UART(串口)。
一个引脚,可以接到模块A,也可以接到模块B,比如上图中的引脚gpio0_0,可以接到GPIO group 0,也可以接到UART。可以设置某些寄存器(比如io_mux),选择引脚的功能。
1.2.2 设置引脚方向(gpio0_dir_reg)
当一个引脚被设置成GPIO功能,那么它既有可以作输入,也可以作输出,如何控制是输入还是输出呢?
在GPIO模块内部,一般都有一个方向选择寄存器,里面每一位用来控制一个引脚的方向。
比如GPIO group 0中有一个gpio0_dir_reg寄存器,
- 它的bit 0写入1,表示gpio0_0被设置为输出
- 它的bit 0写入0,表示gpio0_0被设置为输入
1.2.3 设置引脚数值(gpio0_data_reg)
个GPIO引脚被设置成输出,那么怎样设置它的输出电平?
一个GPIO引脚被设置成输入,那么怎样读取它的输入电平?
在GPIO模块内部,一般都有一个数据寄存器,里面每一位用来控制一个引脚的输出电平。
比如GPIO group 0中有一个gpio0_data_reg寄存器,
- 写数据
- 它的bit 0写入1,表示gpio0_0输出高电平
- 它的bit 0写入0,表示gpio0_0输出低电平
- 读数据
- 如果bit 0等于1,表示gpio0_0为高电平
- 如果bit 0等于0,表示gpio0_0为低 电平
二、二极管&三极管
2.1、二极管
2.1.1 二极管的特性
在模电中,大家都有学过,二极管是一种用锗或者硅半导体材料做成的,半导体材料导电性能在常温下介于导体和绝缘体之间,一百多年前就有这个东西了,是半导体器件家族中的元老了。
- 二极管最大的特性就是 单向导通性,也就是说,二极管的电流具有单向性;
- 假设正极、负极之间的电压差为ΔV
- 当ΔV > 某个阈值(比如0.7V),二极管就导通,导通时电阻约等于0
- 当ΔV < 0,二极管不会导通,电阻无穷大,相当于电路断路;
2.1.2 二极管的结构
-
内部结构如下:由PN节组成,P代表正极(positive),N代表负极(negative)
二极管的电流方向是由正极流向负极(P==>N),电子的流向与电流的流向相反,为什么会这样呢?
- P极 参杂“硼”原子;N极参杂”磷“原子,学过初中化学的朋友都知道:“硼”原子是三价元素,外围有3个电子环绕;”磷“原子是五价元素,外围有5个电子环绕;然而硅和锗有外层有四个电子。因此,硼原子周围少了个电子,”磷“原子周围多了个电子,我们把少了个电子的情况,形成空穴;多了个电子,形成自由电子
- 为了方便理解,可以把空穴抽象成正电荷,自由电子抽象成负电荷;这样一来,P极 正电荷多,N极 负电荷多,自然可以推测出电流的流向,是P==>N的,电子的方向是N==>P的。
至于扩散运动和漂移运动,以及二极管的伏安特性曲线图,想要了解的朋友可以看看这篇博客:图文详解二极管原理
2.1.3 二极管的作用
- 根据二极管的单向导通特性 可以用来设计保护电路;比如防止电源接反,扫坏电路。
2.2、三极管
可以使用二极管的特性制作成三极管,组成开关电路。
三极管实物图:
三极管可以分为:NPN三极管、PNP三极管。
2.2.1 NPN三极管
注意:三极管的箭头,是电流流向方向;
-
扩散
- 物质会从浓度大的地方扩散到浓度低的地方
- 比如墨水滴入水中,墨水会四处散开
- 比如臭味会四处散开
- 电子也会有扩散作用
-
三极管原理
- 当基极(b) 和发射极(e) 之间的PN节加上正向电压,也就是be的电势差:Vb - Ve > 截止电压时。 b ==P > Ne 的PN结导通,电流:基极(b) ==> 发射极(e),电子与电流呈反方向,由 发射极(e) ==> 基极(b);
- 电子在’P’大量聚集,一部分通过基极(b) 极流走,另一部分通过集电极© 扩散出去,(集电极c 起收集作用,所以被称为集电极)
- 电子流动方向如图中红色箭头所示
- 电流方向与电子流动方向相反:be之间电流从b到e,ce之间电流从c到e
-
三极管的使用
Vcon be 之间的 PN结 V2 0.7V 打通(c极相当于直接连接e) 0V(同GND) 0V 未打通 V(同Vcon) - 所以,可以用Vcon来控制V2 (相当于 一个反相器)
2.2.2 PNP三极管
-
扩散
- 物质会从浓度大的地方扩散到浓度低的地方
- 比如墨水滴入水中,墨水会四处散开
- 比如臭味会四处散开
- 电子也会有扩散作用
-
三极管原理
- 当发射极(e) 和 基极(b)之间的PN节加上正向电压,也就是eb的电势差:Ve - Vb > 截止电压时。 e ==P > Nb 的PN结导通,电流(空穴):发射极(e) ==> 基极(b),电子与电流呈反方向,由 基极(b) ==> 发射极(e) ;
- 空穴在’N’大量聚集,一部分通过b极流走,另一部分通过c极扩散出去 (c起收集作用,所以被称为集电极)
- 空穴流动方向如图中红色箭头所示
- 电流方向与空穴流动方向相同:eb之间电流从e到b,ec之间电流从e到c
-
三极管的使用
Vcon eb 之间的 PN结 V2 3.3V 打通(c极相当于直接连接e) 3.3V(同Vcon) 0V 未打通 0(GND) - 所以,可以用Vcon来控制V2
三、LED电路与操作
3.1. LED实物
3.2. LED电路
-
可以注意到 电路都加了 限流电阻,目的是 防止电流过大(I = U/R)烧坏发光二级管
-
方式1
-
芯片引脚 LED状态 低电平 LED熄灭 高电平 LED点亮 -
缺点:芯片发出来的 i 太小了,芯片引脚的驱动能力可能不够,LED亮度低;
-
-
方式2
-
芯片引脚 LED状态 低电平 LED点亮 高电平 LED熄灭 -
缺点:电流进入芯片过大时,可能烧毁芯片;
-
-
方式3
-
默认LED熄灭(芯片引脚低电平)
-
芯片不需要输出很大的电流就可以让发光二极管点亮,经常使用
-
芯片引脚 三极管状态 LED状态 高电平 导通 点亮 低电平 不导通 熄灭
-
-
方式4
-
默认LED点亮(芯片引脚低电平)
-
芯片引脚 第一个三极管状态 第二个三极管状态 LED状态 低电平 不导通 导通 点亮 高电平 导通 不导通 熄灭
-
欢迎大家一起交流讨论。