输入电路

按钮和开关

001

  如上所示,一个简单的按钮或开关非常容易连接到GPIO。 当按下按钮(或开关关闭)时,GPIO输入将为“0”。 当释放(或开关打开)时,GPIO将为“1”。 R1是一个上拉电阻,当开关打开时,它将GPIO输入“拉”为3.3V。

分压器

002
  该电路可用于将来自5V器件的数字信号连接到Pi上的GPIO引脚,这需要3.3V输入电平。 原理图中的Ov点应连接到Pi的GPIO连接器上的接地线之一,以及输入设备上的0v(或Ground)信号。
这里重要的是R2与(R1 + R2)的比例 ; 该比例应该使得5V被分为3.3V。 在这个例子中,这个比例是0.647(= 33 /(18 + 33)),所以5V被分成3.24V(= 0.647 * 5)。 这里显示的值应该适用于大多数用途,但请检查这些缺点。
缺点
  该电路对输出的电阻增加等于(R1 + R2)/ R1 * R2,所以您的电流不足以驱动困难的负载。 在大多数情况下,这不是问题,但是如果要驱动相对较高的负载或快速切换容性负载,则可能需要更好的方式。 另一个细节是,当输出为高电平时,会有一个非常小的电流泄漏到地(5V /(R1 + R2)〜= 0.1mA)。
(有关更多信息,请参阅维基百科关于分压器的文章 )。

输出电路

  GPIO引脚直接连接到Raspberry Pi中心的BCM2835芯片。 这些仅提供3.3V输出电平,并且不能提供大量功率。 更重要的是,如果它们被滥用损坏,Pi本身将需要更换。所以,如果连接任何不到一点点的LED到GPIO输出,你应该使用一个额外的电路来提高电压和/或电流。

使用NPN晶体管

003

  这显示了一种便宜的NPN晶体管用于开启和关闭负载。 当GPIO为“高”(逻辑1)时,负载将被打开; 当“低”时,负载将关闭。 该电路示出了5V电源轨,但是如果使用2N3904晶体管,则可以使用高达40V的电源(这是晶体管数据手册中给出的V CEO价值)。 适用于高达100mA的负载电流。对于较大的负载,您将需要一个更大的晶体管来切换更高的电压(V CEO值)或电流(I C值),但请注意,您将需要一个具有较高增益 (h FE值)的晶体管。 增益是R1中的电流(在这种情况下约为2.5mA)与负载电流的比值:1A负载将需要增益为400.所谓的达林顿晶体管,如TIP112(1A, 100V)在高电流下提供高增益。
注意! 专为大功率运行而设计的晶体管通常需要散热器。 在数据表中引用的当前评级表示提供了理想的冷却:如果没有足够的冷却,您将不会接近任何地方。

使用FET

004

  场效应晶体管是上述(“双极”)晶体管的另一替代方案。 再次,当GPIO为“高”(或1)时,负载将被接通,“低”或“0”将关闭负载。 提供电阻R1用于安全; 如果GPIO设置为输入,则可确保负载关闭。与双极晶体管电路一样,高于5V的电源电压可用于负载。 2N7000器件的最大(V DS )电压为60V; 适用于约100mA的负载电流。对于较大的负载,您可以选择更大的FET:数据手册中给出了额定电流(I D )和额定电压(V DS )。 不像双极晶体管,FET没有“增益”的担心。 相反,您应该寻找3V或更低的“阈值”电压(FET开始导通的输入电压),以便在从GPIO的3.3伏驱动时,它正确地“导通”。 一些数据表不给出阈值电压 – 而是给出了在2.5或2.7伏特下测量的值R DS (on)。 如果FET不适用于3.3V逻辑输入,则不会给出该值。 飞兆半导体的FQP30N06L具有低阈值电压(最大2.5V),可在60伏特下切换32安培。与双极晶体管一样,如果在任何接近额定电流的地方使用功率FET,功率FET都将需要良好的散热器。

中继继电器

004

  如果连接感性负载(基本上这意味着与绕组有任何关系,例如继电器,电机或螺线管),建议如上所示安装二极管D1(注意阴极连接到正电源轨)。 当电感负载关闭时,产生可超过晶体管Q1的最大额定值的电压尖峰; 二极管“钳位”此电压以防止损坏。

水平移位器

  许多数字逻辑电路(特别是较老的)使用5伏电源。 这些不能连接到使用3.3V电源的Pi上的GPIO信号。 有两种情况:a)驱动外设输入的Pi输出b)驱动Pi输入的外设输出。 如果a)Pi GPIO将为逻辑“高”输出+ 3.3V,小于大多数5V CMOS逻辑[1]所需的3.5V(= 0.7 * V DD )。 在b)5V逻辑输出将向Pi的GPIO输入端发送过高的电压,这可能损坏其中的一个或两者。 然而,这个问题可以用电阻分压器(见上文)来解决。
  解决方案是电平转换器电路。 电平转换器可以IC形式提供,也可以是许多供应商的预制模块(例如Adafruit,Sparkfun,Cool Components),但是很容易自己制作。

经典MOSFET006电平转换器

  这使用单个MOSFET; 当GPIO为“低”时,MOSFET导通(因为栅源电压为3.3V),所以5V侧连接到GPIO引脚,因此也是低电平。 当GPIO为“高”时,MOSFET关闭(栅源电压接近零),R2将5V侧拉高。该电路也可以在另一个方向工作,并允许您安全地从5V电源驱动一个3.3V的GPIO输入。 Q1在源极和漏极端子之间具有(隐藏)二极管 – 如果5V逻辑电路被驱动为低电平,则通过二极管将GPIO拉低。 当5V逻辑端为高电平时,一切都关闭,GPIO将通过R1拉至3.3V。为此,上述电路通常用于转换双向总线上的电平, 例如I 2 C。 请注意,对于I 2 C总线,您将需要两个电路副本,一个用于SDA线,一个用于SCL。

简单的二极管电路

007
  这种快速脏的电路已成功地用于将5V ATMega328处理器的串行端口(如许多Arduinos上使用的)连接到Pi的串行端口 。 Pi的TxD引脚上的0和3.3V逻辑电平通过D1和R1移位到大约0.7V和4.0V。 这是在ATMega328的RxD引脚的规范内,因此逻辑电平被正确识别。 请注意,它只是在规范内; 这意味着电噪声(干扰)比使用“正确”电平转换器时更容易造成误差。
  在ATMega328的TxD和Pi的RxD之间没有电平转换。 相反,电阻R2限制从一个器件流到另一个器件的电流到一个安全值(低于0.5mA)。

SN7407 IC

008

  SN7407集电极开路缓冲IC可用于各种电平转换和输出驱动任务。 当GPIO输出为“0”(低电平)时,7407输出为低电平。 当GPIO为“1”时,7407输出为“不驱动”,R1将电路输出拉高。 输出高电压可高达30V。
  当输出为低电平时,7407输出可以吸收高达30mA,因此可以直接连接低电流负载(例如LED)代替R1。 该IC在14引脚DIP封装中有六个独立电路,并且相当便宜(约0.50英镑)。

四月 19th, 2017

Posted In: Raspberry Pi

发表评论