0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

通过Raspberry Pi闪烁LED项目学习欧姆定律、GPIO和晶体管知识

hsdou月半 来源:DevicePlus 作者:DevicePlus 2023-03-01 10:58 次阅读

这篇文章来源于DevicePlus.com英语网站的翻译稿。

本文最初发布在deviceplus.jp网站上,而后被翻译成英语。

Devices Plus的电子制作系列文章已经形成了一个庞大的体系。读者们也很喜欢根据我们的文章制作一些自己的作品。

然而,最近一位读者表示,“虽然我可以做出作品,但是我并没有真正掌握背后的原理。”确实,谈到电力、电子、电路和程序等内容,有些东西并不是那么简单,有时很难理解背后的基本原理。甚至我们编辑部的人员有时也会感到头疼!

此次的分享嘉宾是伊藤尚未先生,一位媒体艺术家和作家,以讲解“更深层次的原理”而闻名。本文将以闪烁LED灯项目为例讲述一些基本原理。要学的东西很多,所以我们直接学习最为重要的部分。当然,学完原理之后,我们还要理论联系实际,学以致用。

[目录]

前言

从闪烁LED学起

欧姆定律

Raspberry Pi的GPIO

通过晶体管控制LED

关于闪烁LED的更多知识

闪烁LED项目开发

如何应用我们的设计?

前言

在过去几年中,随着电子行业的发展,微控制器变得非常流行。现在,我们可以使用紧凑的小型器件来感知和控制各种事物,包括光、声音、运动和图像,这感觉很神奇。我小时候的未来梦想正在慢慢实现,这令我感慨万千。

电子制作的内容已经发生了变化,早已不再是用晶体管制作收音机的时代了。进入媒体艺术领域以后,我把电子作品视为工具和材料,就像画笔和颜料,帮助我在艺术领域更充分地表现自己。艺术的表达方式有很多种,而另一方面,爱好动手制作的这类人被称为“创客”。当我看到很多地方都在举办相关活动时,我感慨“兴趣爱好”作为一种亚文化的概念已经发生了变化。

现在,我喜欢用Raspberry Pi进行电子设计,人们可以轻松访问该系统的各种资源。其操作系统还安装了多种应用程序,而且简单易用。

poYBAGPzHGSAZeBiAANSu3glUfU653.png

本文使用的Raspberry Pi 3 Model B+

从闪烁LED学起

“闪烁LED”,顾名思义,您会在电路中看到LED灯交替点亮和熄灭。当然,让LED灯闪烁很简单,我们可以利用晶体管和电容等元件重现电路的构建。顺便说一下,下图这个电路是在我的电子作品中经常使用的一种电路,叫做非稳态多谐振荡器电路。该电路由两个晶体管、两个电容、四个电阻和一个LED组成。这些器件焊接在电路板上,用干电池供电

pYYBAGPzHGaACTIAAABiW45zLXQ630.jpg

电路示例:非稳态多谐振荡器

pYYBAGPzHGqAQEcNAALUPDVXYzk506.png

作品示例:铁路标志

在该电路中,LED灯会以大约一秒的间隔闪烁。如果想改变灯的闪烁速度,我们得改变电容的容值和电阻值。要加快闪烁速度,就要减小的电容容值。

我们可以通过微控制器实现这个调整。
通过Raspberry Pi的GPIO输出点亮LED非常简单且易于处理。这方面内容很多书籍中都有介绍,而且市面上有许多功能模块化的专用扩展板,都能提供相关详细信息。但是,他们并没有深入探讨构建电子电路所需的一些最基本的重要知识,所以让我们在这里回顾一下。请回忆一下小学和初中科技课本上学到的知识。

欧姆定律

欧姆定律的描述为:电流=电压/电阻。我学习这个定律的时候,该公式被写成I = E/R。现在的公式是A = V/Ω,对吧?

貌似现在的教科书用的基本都是这个公式,“A(安培)= V(伏特)/Ω(欧姆)”强调的是单位本身,可能更直观易懂。

poYBAGPzHGyAX6ekAAA2xCemnUo462.jpg

您可能会在参考书中看到这样的图,但是请注意自己对这个公式的记忆方法。对了,我有一个动物园的朋友,他是这样记忆这个公式的:

pYYBAGPzHG6AWNPPAABRXfks0yA108.jpg

“地平线将地球分为上下两部分,天空中有海鸥,海中有鱿鱼和章鱼”

现在,我们就以电池点亮LED为例来说明欧姆定律的实际应用。您可以将LED连接到电源(此处为电池),但由于LED是一种二极管,因此电流有一个方向:将A(阳极)连接到电源正极,将K(阴极)连接到电源负极。

pYYBAGPzHHCAT6iaAAAV7dywDLU739.png

这个连接方向虽然正确,但实际上如果这样直接连接,LED可能会损坏。为避免损坏器件,流过器件的电流大小必须正确。

正确的电流值请参考器件的额定参数表(技术规格书)。我们以一个参数为3.5V/20mA的白光LED为例,这种电参数可以解释为“如果电压电流位于这个安全范围内,那么不会损坏”。换句话说,“如果电参数超出这个范围,它可能会损坏。”

因此,适用于该LED的最佳电压为3.5V,流过的最佳电流为0.02A。

首先,如果电压为3.5V,就得考虑使用电压更高的电源,比如一个由四节干电池组成的6V电源。严格来说,一节新电池的电压可能接近1.6V。当然,目前我们先按照四节电池总电压为6V进行讨论,稍后再介绍全新电池的电压情况。

我想把6V中的3.5V电压施加到LED上,那么剩下的2.5V就得施加到另一个元器件上。这可以通过分压来实现,因此LED需要串联一个负载,一个简单的电阻器即可。

我们来回想一下微型灯泡串联和并联的实验情况,它们的亮度不一样。负载(微型灯泡)串联时,电路电压分配到两个微型灯泡上,负载加倍,所以流过电路的电流为1/2,微型灯泡较暗。

poYBAGPzHHKANAPoAABrz06x83I043.jpg

微型灯泡存在个体差异(比如疲劳程度),这会导致负载有所不同

分压之后,每个元件得到一部分电压。现在,我们返回来讨论LED。由于LED是半导体,我们不将其视为负载。因此即使是分压电路,电路中的电流也得通过除LED以外的元件进行计算。

pYYBAGPzHHWAGoe1AAA2OL2TQzo580.jpg

流过电路的电流应该是20mA,那么我们应该使用多大的电阻呢?这可以使用欧姆定律计算。因为“电阻=电压/电流”,2.5V/0.02A=125Ω,所以LED应串联一个125Ω的电阻。电路电压由LED和电阻器分压。

然而,市场上并没有阻值是125Ω的电阻。最接近的电阻阻值为120Ω和130Ω。如果选用120Ω,那么根据欧姆定律,电路的电流为25/120 = 0.0208333。这个值超过了20mA,因此我们应选用130Ω的电阻。电流不超过20mA就可以了。

现在,我们讨论使用全新干电池的情况。如果每节电池的电压是1.6V,那么总电压就是6.4V。如果电阻上的电压为2.9V,那么经过计算其阻值为145Ω。所以,选用一个150Ω的电阻足够了。当然,电阻越大电路越安全,但是LED会变的更暗。请根据自己的设计环境选择适当的阻值。该电阻被称为限流电阻,因为它的作用就是控制流过电路的电流。

Raspberry Pi的GPIO

Raspberry Pi有许多称为GPIO的输入/输出端口,可用于控制外部设备。我没有描述这方面的细节,那我该如何解释电信号是如何产生的呢?

poYBAGPzHHiAfGpbAAE2I02kx0M307.png

比如,用这个端子能否点亮LED?

当然可以!然而,如前所述,不同LED的额定参数不同。比如,如果我们要点亮一个红色2.0V 20mA的LED,需要使用一个限流电阻。GPIO的输出电压为3.3V,那么分给限流电阻的电压为1.3V,通过的电流为20mA。不过,Raspberry Pi的GPIO最大只能提供16mA的电流,根据欧姆定律,限流电阻应为“1.3V/0.016 = 81.25Ω”,所以我使用了100Ω电阻。虽然这样无法达到该LED的额定性能,但是足以点亮它。您可以很容易地在面包板上做一下这个实验。

pYYBAGPzHHqANn9HAABwJOjLyc4816.jpg

实现LED灯闪烁最好的方法还是使用Scratch。

poYBAGPzHHyAYsnaAAByVaU55Mc261.jpg

声明GPIO,将GPIO4设为输出,然后向GPIO4输出ON (Hi)。
如果使用左图程序,LED会一直处于点亮状态所以要用OFF(low)来关闭它

pYYBAGPzHH-AUL4FAABUQfhZZFM068.jpg

如果按照上面的左图程序组装,每秒最多可开关10次

现在,我们已经设法制作出了闪烁的LED灯,但是,如前所述,Raspberry Pi的GPIO的输出电流存在限制。如果您想使用白光或蓝光3.5V LED,或者连接多个LED(想要更亮一些),或者使用大功率、超亮LED,怎么办呢?此时,单个GPIO输出很难实现这种功能。因此,我们需要使用另一个电源供电,并构建一个单独的电路来驱动LED。LED可以使用专用LED驱动器进行驱动,但是本节介绍一种使用晶体管的简单驱动方法。

通过晶体管控制LED

本文使用的是NPN型晶体管2SC1815(目前与2SC1815L、KSC1815等兼容)。晶体管的作用是放大和开关。

我们给基极一个输入,电流就会从集电极流向发射极。此时,基极的输入信号就被放大成一个较大的电流信号。这个过程称为开关。换句话说,模拟处理的过程是放大,数字处理的过程是开关。由于这是通过Raspberry Pi操作的,我们可以将其看成是一个开关功能。

poYBAGPzHIGAM4mRAAAuA6mc4XE084.jpg

NPN晶体管符号及外形示例

NPN晶体管的基极得到一个正输入后,集电极和发射极就会导通。如果是PNP型晶体管,就需要一个负输入。

根据2SC1815的额定参数表,流过集电极的电流可达150mA。晶体管产品是根据放大系数分级的,在Y级别中,放大系数为120至240。我们假设放大系数为200,要达到150mA的集电极电流,那么流过基极的电流应该为0.75mA。这意味着GPIO只需要输出一个很小的电流。

这里我们连接了一个10kΩ电阻,作为基极的输入。LED采用白光3.5V 20mA,并通过外部干电池供电,因此电路的电压为6V。根据前文的讨论,我们还给LED串联了一个150Ω的限流电阻。

我们按照下图连接好各个器件。

poYBAGPzHISADtMSAABTpSxFOuM919.jpg

现在,我们把晶体管基极连接到Raspberry Pi的GPIO。首先,我们用面包板进行实验。

pYYBAGPzHIaAGqwJAADiiOQ9Sr0675.jpg

剩下的就需要写程序了。但是,您可以像在Scratch中一样使用之前的程序。当然,如果所连接的GPIO引脚变了,那么应该在程序中更改引脚编号。

基本步骤如下,声明使用GPIO,设置该引脚输出、输入等,然后输出ON(Hi)或OFF(Low)。由于正输入通过ON (Hi) 输出施加到晶体管的基极,因此集电极和发射极之间导通,LED点亮。

程序中可能会描述PullUp和PullDown,但这里没有必要,因为引脚已经连接了一个10kΩ电阻到晶体管的基极,作为下拉电阻使用。换句话说,这是硬件设置。

关于闪烁LED的更多知识

如何才能让LED灯闪烁呢?这并不难,因为我们可以用程序来控制ON(Hi)输出或OFF(Low)输出。想像一下,第一个输出是OFF (Low),然后输出ON (Hi),并保持1秒,然后输出OFF (Low),也保持1秒,然后再次输出ON(Hi),只要这样反复即可。那么,我们就会看到LED灯在闪烁。这个Scratch程序例子就是前面文中提到的那个示例。

闪烁LED项目开发

我们已经完成了LED灯的闪烁设计,现在,让我们来尝试控制多个LED。让两个LED灯交替闪烁的方法如下。该电路利用了两个GPIO,每个GPIO驱动一个带晶体管的LED。

pYYBAGPzHImAF6ALAADny1kV1Lo072.jpg

这是我制作的两个晶体管驱动电路。电路很简单,但是如果您在面包板上组装,电线会很复杂,所以要注意走线情况。Scratch程序的工作原理如下。

poYBAGPzHIuAdai1AABnlzC-3N4188.jpg

我用的是GPIO3和GPIO4。4先点亮,1秒后关闭4,然后3立即点亮,1秒后关闭3,以此类推。重复10次,如果您想一直重复,应该使用“all”模块。

通过此应用,LED的数量可以根据可用GPIO数量增加,4个或10个。它们不仅可以顺序闪烁,而且可以同时全部闪烁,甚至还可以反向闪烁,具体取决于您的程序。

如何应用我们的设计?

顺便说一句,如果说让LED点亮或闪烁只是实验、编程实践和电子制作培训程度的事,那么,最大的问题是如何应用我们的设计。当然,作为圣诞树的装饰或者照明是个不错的选择。然而,光效不仅仅意味着闪亮,还涉及比如投射阴影、混合颜色、反射和折射、光谱和偏振等各种建模元素。

您还可以根据设备使用光效来创作艺术作品。

这是我的作品。


让埴轮【日本的一种陶俑-译注】舞动起来(2010)(C)伊藤尚未

该设备的这一部分依次点亮六个LED。在这里,六个埴轮的影子通过LED灯投射到墙上,但每个影子都投射在同一个位置,所以影子的形状=身体姿势。换句话说,阴影形成了动画。

我用现代技术将静止的陶土造型创作成了一个富有表现力的艺术品,并取名为“舞动的埴轮”。当然,这个作品需要很长时间才能完成。

所有这一切的基础是闪烁LED灯,但是正如您所见,当您知道如何应用它们时,您可以做更多的事情。当然,您不一定非得要创作这种艺术作品,但偶尔发挥创意很有趣,不是吗?

总结

电子设计很有趣,但是除了构建设备,您还可以做些什么?您怎样才能让它更有趣?其实您可以考虑不同的应用场景和表现方式,创作出更加复杂和有趣的内容。然后,您就能百尺竿头更进一步。

pYYBAGPbhjqAbi1JAAAGd6_rQT0867.png

DevicePlus 编辑团队

设备升级版适用于所有热爱电子和机电一体化的人。

审核编辑黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • led
    led
    +关注

    关注

    237

    文章

    22444

    浏览量

    645843
  • 晶体管
    +关注

    关注

    76

    文章

    9045

    浏览量

    135162
  • 欧姆定律
    +关注

    关注

    4

    文章

    124

    浏览量

    19020
  • GPIO
    +关注

    关注

    16

    文章

    1132

    浏览量

    50560
  • Raspberry Pi
    +关注

    关注

    1

    文章

    552

    浏览量

    22052
收藏 人收藏

    评论

    相关推荐

    MSP-EXP430G2ET让LED通过晶体管闪烁,使用外部电源为LED供电时,代码不起作用的原因?

    我在切换晶体管时遇到了一个问题。我正在尝试让 LED 通过晶体管闪烁。当我从评估板(即 MSP-EXP430G2ET)获取电源 (3.3V)
    发表于 01-22 06:00

    欧姆定律公式的适用范围

    欧姆定律是电流、电阻和电压之间的数学关系表达式,它是电学中最基本和最重要的定律之一。根据欧姆定律,电流通过一个导体时与该导体的电阻成正比,与通过
    的头像 发表于 01-16 15:50 652次阅读

    欧姆定律三个公式应如何计算

    欧姆定律是电路中的一种基本关系,用于描述电压、电流和电阻之间的关系。根据欧姆定律,当电流通过一个导体时,电流与电压成正比,与电阻成反比。在这篇文章中,我们将详细介绍欧姆定律的三个公式:
    的头像 发表于 01-10 13:53 664次阅读

    闭合欧姆定律欧姆定律有什么不同

    闭合欧姆定律欧姆定律是电学领域中两个重要的定律,它们都描述了电流、电压和电阻之间的关系。然而,它们在一些细节上有所不同,下面将详细介绍这两个定律的差异。 首先,让我们先来了解一下
    的头像 发表于 01-10 13:49 330次阅读

    闭合电路中欧姆定律的应用

    欧姆定律是电学的基本定律之一,它描述了电流、电压和电阻之间的关系。在闭合电路中,欧姆定律的应用非常广泛,从电子设备到电力系统都可以看到它的身影。本文将详细介绍闭合电路中欧姆定律的应用,
    的头像 发表于 01-10 13:46 280次阅读

    欧姆定律适用于非线性电路吗

    欧姆定律(Ohm's law)是描述电流、电压和电阻之间关系的基本电学定律。它是针对线性电路的一项基本规律,但在非线性电路中,欧姆定律的适用性存在一定的限制。 在线性电路中,电流与电压成正比,电阻
    的头像 发表于 01-10 13:42 678次阅读

    基于Raspberry Pi 5的蜂窝物联网项目

    今天小拜年给大家带来的是来自美国的Maker Rob Lauer的基于树莓派5的蜂窝网络项目,了解如何为新的 Raspberry Pi 5 单板计算机添加低带宽蜂窝连接。
    的头像 发表于 12-25 10:55 682次阅读
    基于<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b> 5的蜂窝物联网<b class='flag-5'>项目</b>

    基于磁路的欧姆定律

    通过铁磁材料,而是经过空气或其他材料闭合,通过铁芯的磁通叫做主磁通,铁芯外的磁通叫做漏磁通,一般情况下,漏磁通较小,常忽略不计。 二、磁路定律 1、磁路的欧姆定律 1)下图是一个简单
    的头像 发表于 09-28 14:27 1147次阅读
    基于磁路的<b class='flag-5'>欧姆定律</b>

    欧姆定律的基本应用

    欧姆定律是表示电压(或电动势)、电流和电阻三者之间关系的基本定律。 一、部分电路欧姆定律 部分电路欧姆定律表示不包含电源的一段电路中,电流与这段电路两端的电压及电阻三者之间的关系。下图
    的头像 发表于 09-20 16:31 1227次阅读
    <b class='flag-5'>欧姆定律</b>的基本应用

    不同类型的晶体管及其功能

    及其应用。 什么是晶体管 晶体管是电子设备。它是通过p型和n型半导体制成的。当半导体放置在相同类型半导体之间的中心时,这种排列称为晶体管。我们可以说
    发表于 08-02 12:26

    使用驱动晶体管LED闪光电路

    或许你会疑惑一个晶体管怎么做成振荡电路的?可是它就是只有一个晶体管,关键在于电路中用到一个自闪烁LED
    的头像 发表于 07-26 17:00 504次阅读
    使用驱动<b class='flag-5'>晶体管</b>的<b class='flag-5'>LED</b>闪光电路

    通过USB对Raspberry Pi进行编程

    电子发烧友网站提供《通过USB对Raspberry Pi进行编程.zip》资料免费下载
    发表于 06-30 10:24 0次下载
    <b class='flag-5'>通过</b>USB对<b class='flag-5'>Raspberry</b> <b class='flag-5'>Pi</b>进行编程

    如何通过SPI使用Raspberry PI零与FPGA通信

    电子发烧友网站提供《如何通过SPI使用Raspberry PI零与FPGA通信.zip》资料免费下载
    发表于 06-13 15:52 0次下载
    如何<b class='flag-5'>通过</b>SPI使用<b class='flag-5'>Raspberry</b> <b class='flag-5'>PI</b>零与FPGA通信

    如何通过ESP模块打开/关闭树莓派GPIO电路?

    负载,PNP 或 NPN 晶体管似乎可以做到这一点?我对 NPN/PNP 晶体管知之甚少,无法确定工程?由于 Pi 和 ESP 模块有共同点,不需要光耦合器吗?还是我在这里遗漏了一些基本的东西?
    发表于 05-15 06:13