tag 标签: led

相关帖子
相关博文
  • 2022-7-27 10:27
    216 次阅读|
    0 个评论
    Arduino基础: 读取开关状态 这篇文章来源于DevicePlus.com英语网站的翻译稿。 本文最初发布在deviceplus.jp.网站上,而后被翻译成英语。 目录 前言 Arduino的数字输入 使用轻触开关切换输入 使用轻触开关输入数据 使用Arduino上拉功能 按下开关时点亮LED 相关文章 前言 在本文中,您可以了解如何在您的Arduino项目中使用轻触开关以及其实际工作原理。 我们已经利用数字输出使数字输出引脚在HIGH (5V) 和LOW (0V) 两种状态之间切换,从而实现了对LED和电机的控制。 另外,您还可以使用数字输出来确认电子部件的状态。数字输出引脚还可以切换为数字输入引脚。通过这样切换,可以确认引脚上的电压,并通过“LOW”和“HIGH”两种状态输入。这些输入值可用于控制其他电子部件。比如您可能希望在数字输入为HIGH时使电机运转,在输入为LOW时使电机停止。 实际上,利用开关等电子器件,可以使数字输入引脚的状态切换为0V或5V。 在本文中,我们将介绍如何使用开关实现数字输入。 Arduino的数字输入 使用Arduino Uno,您可以将最初用于数字输出的引脚D0到D13作为数字输入引脚使用。可以通过程序切换为数字输入模式,来确认引脚状态。 0V输入为“LOW”,5V输入为“HIGH”。在程序中,LOW会被读取为“0”,HIGH会被读取为“1”。通过确认这些输入值并执行条件分支等处理,即可控制工作状态。 下面我们来实际尝试一下用Arduino进行数字输入。在这里,我们使用跳线连接引脚5,并确认连接到5V电源和GND时的变化。创建以下程序并将其发送给Arduino: 在第4行中,通过pinMode()指定“INPUT”,以将本次使用的引脚7切换为输入模式。现在,您可以通过程序确认引脚状态了。 获取第11行由digitalRead()指定的引脚的状态,并将其存储在value变量中。如果是0V,则存储为“0”,如果是5V,则存储为“1”。 当您想确认获取的状态时,请使用“串行监视器”。对于Arduino而言,您可以使用用来从电脑传输程序的USB数据线将数据从Arduino发送到电脑。使用串行通信可以收发数据。您可以使用串行通信将通过数字输入获取的状态发送到电脑进行确认。 如果您想在程序中使用串行通信,请通过第5行的Serial.begin()进行初始化。此时需要指定通信速度。然后,通过第12行的Serial.println()指定一个值,即可将数据发送到电脑。在本文中,我们使之发送存储着数字输入状态的value变量的内容。 要确认Arduino通过串行通信发送过来的数据时,请使用Arduino IDE中内置的“串行监视器”。要使用串口监视器,请单击Arduino IDE右上角的“串口监视器图标”(放大镜图标),即可显示串行监视器画面。将右下角的通信速度设置为与程序的Serial.begin()中指定的通信速度(本文为9600)相同的值。然后,屏幕上将会显示0或1。 接下来,将跳线插入引脚7。将另一端连接到 GND,串行监视器上显示“0”。也就是说,如果数字引脚为0V,您可以看到“0”(LOW)。同样,当引脚7与5V电源连接时,您可以看到显示内容变为“1”(HIGH)。 现在我们已经确认,输入会根据引脚的状态发生变化。 使用轻触开关切换输入 下面,我们尝试用一个开关使数字输入引脚在HIGH和LOW状态之间切换。在本文中,我们使用的是按钮型“轻触开关”。 对于轻触开关而言,当按下上方按钮时,内部电路接通,进入通电状态。当松开按钮时,电路断开,没有电流流过。通常,在开关的四个角会配有引脚。如上图所示配置时,左右引脚之间的间隙起到开关的作用。右侧的上下引脚和左侧的上下引脚是始终连接的。 如果将轻触开关的一个引脚与数字引脚相连接,另一引脚连接到GND,则按下开关时内部电路会接通,引脚将直连GND。通过这样做,您可以判断只要按下开关,数字输入就会变为“HIGH”。 但是,当没有按下开关时,数字引脚将会处于没有任何连接的状态。在这种状态下,施加在引脚上的电压会变得不稳定。在不稳定状态下,当用手触碰引脚或有电池等靠近时,输入可能会发生变化。 因此,我们在使用开关时会连接一种称为“上拉电路”或“下拉电路”的电路。这种方法是借助电阻器将数字引脚连接到电源或GND,可以起到稳定输入状态的作用。该电路连接到电源端时称为“上拉电路”,连接到GND端时称为“下拉电路”。在本文中将以上拉电路为例进行说明,但下拉电路的原理也是一样的。 使用上拉电路时,在未按下开关的状态下,开关通过一个电阻器连接到电源。这样,就与数字引脚连接电源时的状态相同,输入会稳定在5V(HIGH)。当按下开关后,数字引脚处于直接连接GND的状态,因此输入切换为0V(LOW)。 虽然处于电源与GND连接的状态,但它们之间夹着一个电阻器(通常为10kΩ左右),因此只会流过少量电流,不存在短路风险。 使用轻触开关输入数据 现在,让我们使用轻触开关实际输入数据看看。需要准备好以下电子元器件: ・ 轻触开关 轻触开关有很多种颜色可供选择。您可以选择任何您喜欢的颜色。 ・ 10kΩ (1/4W)电阻器 用于上拉电路的电阻器。在10kΩ电阻器上印有“棕黑橙金”颜色代码。 准备好所需组件后,如下图所示连接它们。将轻触开关跨越面包板中心的凹槽插入。 接下来,将前述的程序发送给Arduino,以通过串行监视器确认数字引脚7的输入。可以看到,在未按下开关的状态下,显示“1”(HIGH),在按下开关时变为“0”(LOW)。 使用Arduino上拉功能 在Arduino Uno中,数字引脚内置有“上拉”功能,可以通过程序激活该功能。如果使用内部的上拉功能,就不再需要外接电阻器了。您只需连接开关即可,省时省力。 激活上拉功能的程序如下: 您只需在第4行的数字引脚模式设置中指定“INPUT_PULLUP”即可。这样就能激活内置的上拉功能,从而能够在未按下按钮的状态下稳定HIGH输入。请注意,Arduino Uno中未内置下拉功能。 按下开关时点亮LED 开关的输入还可用来控制其他电子元器件。在这里,让我们利用Arduino中安装的LED(引脚13),尝试实现在按下开关时点亮LED,并在松开开关时熄灭LED。所用的电路与前述的仅将开关连接到数字引脚时的电路相同。编写程序如下: 确认第14行的数字输入值是否为“1”。在Arduino程序中,您也可以将“1”写为“HIGH”,将“0”写为“LOW”。为了便于理解,我们在这里使用“HIGH”和“LOW”。 如果输入为HIGH(未按下按钮),则执行第15行,使引脚13切换到LOW,LED熄灭。如果输入不是HIGH(按下按钮),则执行第17行,使引脚13切换到HIGH,LED点亮。将程序发送到Arduino并按下轻触开关,即可确认LED点亮。 我们成功了!现在,您可以在您的Arduino项目中使用开关来执行输入了。 来源:techclass.rohm
  • 2022-7-27 10:21
    171 次阅读|
    0 个评论
    Arduino基础: 调节LED的亮度 这篇文章来源于DevicePlus.com英语网站的翻译稿。 Originally published by Feb 5, 2020 目录 前言 数字不能调节亮度 使用数字输出改变LED亮度 通过PWM调节亮度 让LED逐渐闪烁 相关文章 前言 本文最初发布在deviceplus.jp网站上,而后被翻译成英语。 Device Plus网站中介绍了有关Arduino的各种应用和作品示例,但无论创作任何作品,基础知识都很重要! 在本文中,我们将通过使Arduino能够调节LED亮度,为您带来“关键”的Arduino基础知识。 ◆ 我们曾介绍过,通过将LED连接到Arduino的数字输出引脚,并设置HIGH (5V) 和LOW (0V) ,可以轻松地切换LED的开和关。但是,由于数字输出只能输出两种状态,因此无法进行亮度调节等控制。 要想解决这个问题,您可以使用“PWM”输出。PWM可在HIGH和LOW状态之间反复切换输出,所以可以用来调节LED的亮度。 在本文中,我们将学习如何使用PWM来调节LED的亮度。我们还将学习如何编写使用PWM输出逐渐点亮LED的程序。 数字不能调节亮度 正如我们上次介绍过的,LED的亮度会随电流的变化而变化。比如,分别通过330Ω的电阻和10kΩ的电阻来调节连接到LED的电流量,并对它们的结果进行比较时,会发现连接330Ω小电阻时电流量更大,这会使LED更亮。或者,改变连接到LED的电源电压,也会使流过的电流量发生变化。 如果分别施加5V和3.3V的电压,施加5V电压时LED灯更亮。根据上一次介绍过的电阻和流过LED的电流之间的关系式,要想让LED更亮,要么“降低电阻”,要么“提高电压”。 然而,Arduino的数字输出只有HIGH (5V)或 LOW (0V)两种状态,这意味着直接连接并不能改变电压和电阻值,也就是说,无法调节LED的亮度。但是,虽然只有HIGH和LOW两种输出状态,通过一些努力还是可以改变LED亮度的。 使用数字输出改变LED亮度 让我们尝试一下只用数字输出来改变LED的亮度吧。亮度可以通过让LED闪烁来调节。我们按照步骤一步一步来实际操作,看看LED的亮度是如何变化的。将LED连接到Arduino的数字引脚5,如下图所示: 接下来,创建如下所示的程序并将其传送给Arduino。此时,LED应该会每隔1秒闪烁1次。 在程序中,通过第11行的“digitalWrite( LED_PIN, HIGH )”输出HIGH,使LED亮起,然后通过第12行的“delay (ON_TIME)”在指定的时间内保持亮灯。持续时间以毫秒为单位,如果指定1000,则LED将保持点亮1秒钟。 接下来,通过第14行的“digitalWrite( LED_PIN, LOW )”输出LOW,使LED熄灭,然后通过第15行的“delay( OFF_TIME )”在指定的时间内保持熄灭状态。通过反复执行该程序即可实现LED的闪烁。 下面,让我们尝试一下缩短点亮和熄灭的持续时间。可以使用第3行的“const int ON_TIME”来更改点亮状态的持续时间,使用第4行的“const int OFF_TIME”来更改熄灭状态的持续时间。将这两个值都更改为“500”并发送程序,然后确认LED的状态。可以看到闪烁速度增加。接着,当将值逐渐减小到“250”、“100”、“75”、“50”等数字时,闪烁速度变得更快。当值为“10”左右时,LED看起来像在保持点亮状态。这是因为如果它闪烁得太快,人眼就跟不上它的速度,从而使灯看起来就像一直亮着。 接下来,我们试着改变点亮和熄灭的持续时间。将“ON_TIME”和“OFF_TIME”都设置为“10”。然后,依次将“ON_TIME”的值更改为“9”、“8”、“7”……“1”,并确认LED的点亮状态。可以看到当减小该值时,LED会逐渐变暗。 这是因为持续亮灯时间缩短,发光量减少,从而使LED看起来变暗。也就是说,通过改变“点亮持续时间”也可以调节LED的亮度。使用该方法,可以实现用仅能控制开/关的Arduino数字输出功能来控制LED的亮度。 通过PWM调节亮度 如上所述,通过调整HIGH和LOW的比例,使LED以较短的周期闪烁,即可调节LED的亮度。但是,自己创建程序来控制闪烁持续时间并不现实。因为处理其他程序需要时间,而这会使闪烁间隔出现偏差,从而会使亮度发生变化。 Arduino可以使用PWM(Pulse Width Modulation,脉冲宽度调制)功能来周期性地输出HIGH和LOW。PWM是以指定的速率周期性地在HIGH和LOW之间切换的一种功能,可用于上述的LED亮度调节。 但是,需要注意的是,可用于PWM功能的引脚在Arduino中是固定的。只有数字旁边带有“〜”标记的引脚(即引脚3、5、6、9、10和11)可使用PWM功能,其他引脚不支持PWM输出。 另外,由于PWM是通过Arduino的微控制器产生的功能,因此具有输出稳定、不影响程序运行的优点。 在这里,我们将LED连接到引脚5来试一下。用与前述电路相同的方式连接LED。 接下来,创建如下所示的程序并将其发送给Arduino,LED将会亮起,但是较暗。 通过PWM功能输出时,需要通过第6行的“pinMode()”将对象引脚设置为输出模式。实际输出时,使用第10行的“analogWrite()”。指定对象引脚编号,然后在0到255的范围内设置保持HIGH的比率。如果设置为“0”,将始终输出LOW,如果设置为“255”,则始终输出HIGH。如果设置为“127”,将会以各一半的比率输出HIGH和LOW。 在这个程序中,可以通过第3行的“const int DUTY”来指定PWM比率。更改该值可以确认亮度的变化情况。 让LED逐渐闪烁 我们使用PWM输出拓展了LED点亮的方法。现在,让我们逐渐改变PWM来尝试实现LED逐渐变亮的效果。 编写如下程序: 在上述程序中,将PWM比率存储在loop()函数中使用的“i”变量中,以使其可以逐渐增加该值,从而使LED逐渐变亮。 第14行的while处理以STEP指定的增量增加值,直到i达到 255。增加的值由第15行的analogWrite()输出,以使LED的亮度改变。此外,每次第16行的PWM输出改变时,将等待由WAITTIME指定的持续时间。 当PWM比率达到255时,它会逐渐减小该值直到0,以使LED逐渐变暗(第21到25行)。可以通过更改第3行的WAITTIME或第4行的STEP的值来调节闪烁速度。 来源:techclass.rohm
  • 2022-7-18 16:42
    161 次阅读|
    0 个评论
    摘要 RT8487 是一具有内部高端驱动元件,可用于降压或升–降压架构中的边界模式恒流控制器,能提供恒定输出电流至 LED 负载。它包含了可实现高功率因数和低输入电流总谐波失真率 (THDi) 的特殊电路,同时也大大减少了外部元件数量。RT8487 所用的 SOT23-6 封装使它只需使用很小的 PCB 空间,并使它成为具有很高性价比的离线式 LED 驱动器解决方案。 本文提供了如何用 RT8487 设计一个 8W 降压型 LED 驱动器的详细信息。 1. 简介 低成本离线式 LED 驱动器要求具备高效率、满足 IEC61000 C 级规格的高功率因数、低输入电流总谐波失真率 (THDi)、精确 LED 电流、快速启动、仅用低成本标准零组件构成和电路设计简单等条件。以下将探讨在浮动式降压架构下以 RT8487 设计而成的 8W LED 驱动器,它能符合上述所有的要求。 主要规格: 输入范围 230V +/-15% (稍作改变,可将此设计变成全范围输入) 针对一般替代型照明应用:LED 灯串 27V,I-LED = 300mA +/- 5%,P-out = 8W 输入电流总谐波失真率 (THDi) < 20% ,满足 IEC61000 C 级规格 启动时间 < 300毫秒 完整保护: 输出短路、LED 开路、过电流及过温度保护 无变压器设计,使用标准低成本零组件,主要目的是降低材料清单 (BOM) 的成本 2. 应用电路 以 RT8487 为核心所构成的 8W LED 驱动器的完整应用电路如下图所示: 图一 在图一的完整应用电路图中,RT8487 被使用于浮动式控制器降压架构下。该芯片可控制高端开关 Q1 的导通时间,借着与电感器串联之电阻 RS 来检测 LED 的平均电流,如此可检测到真正的负载电流。边界导通模式 (BCM) 切换也是透过检测零电感电流(同样是透过RS)而成。在最小漏极-源极电压 (VDS) 时的谐振点开关则是透过由 R3 调整的、从零电流侦测点 (ZCD) 算起的导通延迟时间来实现的,并透过智能算法控制导通时间以获得高输入功率因数和低输入电流总谐波失真率 (THDi)。 IC 所需的偏压是由 D2 和 C2 构成的自举电路所提供,省去外加辅助线圈,所以只需用到一般的标准磁鼓线圈,而不需较贵、客制的变压器。因启动 IC 的偏压电流低,所以可用高阻值的启动电阻 R1 和 R2,且依然能达到快速启动(一般为 123 毫秒)。完整的应用电路可建构于一个 18 x 36 平方毫米的单面 PCB。 3. 主要元件值的计算 以下各节将解释各应用参数的设定。 设定平均输出电流 流过 LED 灯串的平均输出电流可由连于 RT8487 之 GND 和 SENSE 两接脚之间的外部电阻 RS 决定。由于 RS 是串连于电感器,LED 的平均电流可以透过此电阻精确地检测到。输出电流 IOUT 和 RS 的关系如下: 本应用中,LED电流定为300mA,所以 选用电阻 1Ω//4.7Ω 以得 0.824Ω。 启动电阻 启动电阻 (R1+R2) 的选择条件是在最低输入电压下,经此二电阻的电流须大于 RT8487 的启动电流,否则 RT8487 的 Vcc 可能永远无法达到启动电压。其常规启动电流为 25μA。 启动电阻也不能使启动电流超过操作电流,否则 VCC 电压会比自举电路设定的 VCC 还高,因此 IC 可能会启动过压保护 (OVP)。操作电流通常为 1mA。 启动电阻值和 VCC 电容 C2 会决定启动时间,定义如下: 其中 VUVLO 为 17V,而 Istart-up 可近似为: 大多数应用中,C2 多选用 1μF。 且 R1 和 R2 都选用 1MΩ,代入后,得其常规启动电流为: 启动时间则为: 图二 图二显示在 230V 交流输入条件下 IC 启动时的波形。当交流電源輸入时,流经 R1 和 R2 的电流即开始对 C2 充电。当 IC 的 VCC 电压超过 UVLO 值时,功率开关即开始作开关动作,并快速地对输出电容进行充电。实际测得的启动时间为 150msec。 输入电容器的选择 对高功率因数的应用来说,输入电容 C1 必须够小,才能整流正弦波的输入电压。输入滤波电容器的额定电压 VCIN 须够大,以承受最大输入电压。100nF/500V 薄膜电容器会是一个恰当的选择。为减低差模电磁干扰 (EMI),可由两个 47nF 电容器和一个适当的电感器组成 π 型滤波器来达成。 降压电感器的选择 由于在边界导通模式下切换,电感值会影响转换器的开关切换频率。若要较小尺寸的线圈,就选择小的电感值,但它通常受限于 IC 最小导通时间(通常是 0.5μsec)和最小关断时间(通常是 0.5μsec)。 最大电感值则受限于 IC 最大导通时间(通常是 15μsec)和最大关闭时间(通常是 33μsec)。 要计算电感值,首先要计算在整流过的正弦波峰上 (Vpeak) 的最大尖峰电流值 (Ipeak): 其中Pin为转换器的输入功率,a是LED电压与最高输入电压之比: 而F(K(a)) 是为 PFC 降压且能有低 THDi 的一个复变函数: 图三 在8W应用中,Pin可以由 算出。(以效率为86%作估计) 在整流过的正弦波峰上,因子 a 先被算出: 从图三或公式 (1) 可得, 电感值的范围也可由此算出: 当电流绝对最大额定值为 1.2 A时,选择 330μH 作为 L1 值,这是在尺寸、成本和效率等方面考虑后的最佳折衷选择。 在正弦波峰上,开关频率可由此而得: (Tdelay 由连于 AND 接脚的电阻决定,见下小节。) 设定开关导通延迟时间 电感电流为零之后,电感和开关结点上的总电容会产生谐振,该电容主要为开关晶体的漏极—源极电容。为尽可能减少开关晶体管的开关损耗,RT8487 可灵活调整下一导通周期的延迟时间,以期能在最大谐振点时导通,该点即对应到最小漏极—源极电压值。 图四 要决定所需的延迟时间,要考虑两个因子: a.从零电流侦测 (ZCD) 点到实际零电流点的延迟时间 (如图四之 t1)。因为 ZCD 点是定义在 Vsense = 20mV 时,ZCD 延迟时间可由此式算出: 在此应用中,其值为: b.从零电流点到开关谐振最大值的延迟时间 (如图四之 t2) 可由此式算出: 其中 CSW 是开关结点的电容,主要就是开关晶体管的漏极—源极电容;在本应用中,此电容值为 38pF。谐振延迟时间即为 最佳谐振导通点所需的总延迟时间 Tdelay 即为 290nsec + 352nsec = 642nsec。 从零电流侦测点 (ZCD) 至下一开关晶体管导通周期的延迟时间 (Tdelay) 可藉电阻 R3 调整,R3 连接于芯片的 AND 接脚和 GND 接脚之间。 • Tdelay = 大约的延迟时间,以 μs 为单位(从零电流侦测点即 Vsense = 20mV 时开始) • R3 阻值以 kΩ 为单位 根据公式 (2),R3 = 8.2kΩ 时可得 628nsec 的延迟时间。但最后将 R3 值设为 6.8kΩ,以补偿由于开关晶体管的导通时间所造成的额外延迟。下面的图五显示了开关在最佳谐振点导通时的波形。 图五 开关晶体管MOSFET的选择 开关晶体管的电压绝对最大额定值须够大,才能承受最大输入峰值电压及瞬间突起电源的裕量。最好选用漏极­–源极绝对最大额定值至少 500V 的开关晶体管。开关晶体管的额定电流值和温度有关,为达到低成本、低功耗和高效率,折衷后选用 2A 的开关晶体管。 顺向二极管的选择 当开关晶体管关闭时,电流路径是流经连接于开关的输出点和地之间的二极管 (D1)。顺向偏压时,二极管必须有低顺向导通电压降和快速的恢复时间。二极管的反向电压绝对最大额定值则须大于最大输入峰值电压并加上裕量,而电流绝对最大额定值须大于电感的峰值电流。为求低功耗和较高效率,选用 600V/2A 的快速二极管。 输出电容的选择 为实现高功率因数和低输入电流总谐波失真率 (THDi),电感电流会包含相当成分的低频纹波。输出电容会过滤开关的和低频纹波的电流以传输低纹波电压至 LED 灯串。有了输出纹波电压的大小与 LED 灯串的微分电阻即可决定流过 LED 的纹波电流。在此低成本的设计中,选用 220μF 的电容器,大约可过滤 330mApp 流过 LED 灯串的纹波电流。为了减少这种纹波,须要选用较大的输出电容。 4. 主要性能的量测 图六显示了输入和输出端的电压和电流的波形。 从交流输入波形可看出有高 PFC 和低 THDi,输出的 LED 平均输出电流则精确地落在 296mA 上。 图六 图七为开关工作波形。为要实现低 THDi,电感电流峰值最好是 LED 平均电流的四倍之高。从单一开关周期可看出在最小漏极–源极电压时,开关在边界导通模式 (BCM) 下切换的情形。 图七 下表列出了整个设计的主要性能参数。在电源电压范围内,它具有优异的 LED 电流稳定性,典型的效率 (efficiency) 为 86%,且有满足 IEC61000 C 类规格的低 THDi。 Vin ac Pin ac PF THD V-LED I-LED Pout Efficiency Ploss 195.5 9.59 0.96 11.6 27.69 0.299 8.279 86.3% 1.31 231.8 9.64 0.94 13.3 27.74 0.299 8.294 86.0% 1.35 264.2 9.68 0.90 17.7 27.68 0.300 8.304 85.8% 1.38 5. 材料清单 一个完整的 8W LED 驱动器的材料清单如下所示: Item Quantity Reference Part / Value Footprint Remark 1 1 F1 1A/250V --- Fuse 1A 2 1 LX1 4.7mH (DR0612) DR0612 EMI drum coil 3 1 L1 330μH (CKPK1012) DR1012 Buck drum coil 4 1 CX1 0.1μF/275Vac DIP X-capacitor 5 1 C1 0.1μF/450V DIP MPP Cap 6 1 C2 1μF/50V 1206 7 1 C3 0.1μF/50V 0603 8 1 C4 1nF/50V 0603 9 1 EC1 220μF/35V DIP Output E-cap 10 1 RX1 10K 1206 11 2 R1, R2 1M 1206 12 1 R3 6.8K 0603 13 1 R4 10R 0805 14 1 R5 100R 0603 15 1 R6 47k 0805 16 1 RS 1R // 4R7 1206 17 1 D1 SF28 DIP Fast 2A/600V 18 1 D2 FFM107 SOD-123L Fast 1A/1000V 19 1 Extra-D 1N4148 SOD-123 250mA/75V 20 1 DB TB6S --- 600V/1A diode bridge 21 1 Q1 STD2HNK60 TO-251 2A/600V MOSFET 22 1 IC1 RT8487GJ6 TSOT23-6 LED driver controller 6. 印刷电路板 (PCB) 的布局 可将 8W LED 驱动器的应用电路建构于一个很小的单面 PCB 上。因为是浮动式控制器的拓扑结构,IC 周围的零组件都要紧密排放且靠近 IC。布局时,应为高电压振幅提供足够的沿面距离和隔空间隙的裕量。 要注意的是,这里只是初步的布局。若要达到更优化的性能表现,还需要进一步微调:降压电感器相对于 EMI 线圈的方向需要作些修正,因目前 L1 的杂散磁场会耦合到 LX1,反而量测到较高的 EMI 读数。 图八 图九 7. 结论 使用 RT8487 能够设计出极具成本效益,同时具备良好性能,且满足现今市场对 LED 驱动器要求的 8W LED 驱动器。 来源:立锜官网
  • 2022-7-15 09:15
    503 次阅读|
    0 个评论
    本项目将使用智能手机设置RGB LED灯带的颜色,这些RGB灯带内建蓝牙功能,可接收智能手机上的android应用程序发送的指令。这样,我们就可以通过手机控制RGB LED灯带的颜色了。如果你觉得这还不够酷,文章后部分介绍的是声控RGB LED灯带的制作,同一电路,两种用途! 电路图及BOM表 本项目只有三个关键组件,BOM表如下: - Bluetooth模组(HC05) - Arduino NANO开发板 - 可寻址RGB LED灯带 - 杜邦线 RGB LED灯带只有三个接口线:12V、Gnd、Din。其中,Din用于数据输入,连接于Arduino开发板的数字引脚D13;灯带和Arduino NANO开发板使用来自适配器的同一12V电源供电。 HC05具有四个引脚:Vcc、Gnd、TXD、RXD。其中,Vcc引脚从Arduino开发板的5V供电;Gnd连接于公共接地引脚,TXD和RXD分别连接于数字引脚D4、D5。 操作说明 电路从适配器供电后,灯带的所有LED熄灭,只有HC05模组闪烁,表示正在寻找另一个即将配对的蓝牙设备。 如果希望改变灯带颜色,就用智能手机发送配对信息,HC05模组的默认密码为1234。当手机与HC05模组连接后,闪烁速度将会慢下来。 用手机输入并发送字母‘R’,手机就通过蓝牙把‘R’发送给HC05模组。HC05模组收到‘R’后,将通过串口将其发送给 Arduino。 Arduino收到‘R’后,就把数据传递给 RGB 灯带,并设置灯带中所有RGB LED灯珠的颜色为红色(RED),灯带中的所有LED灯珠以红色(RED)方式点亮。 同样,用android应用程序发送如下字母,将看到预期的灯带颜色。 最后,如果希望灯带上的所有LED熄灭,那就用android程序发送字母一个‘X’吧。 有趣吧!以下是本项目的Arduino代码: #include #include #define NUM_LEDS 40 #define DATA_PIN1 13 #define Tx_pin 4 #define Rx_pin 5 int i; char recv_char; CRGB led_strip1 ; SoftwareSerial BT_serial(Rx_pin,Tx_pin); void setup() { FastLED.addLeds(led_strip1, NUM_LEDS); for(i=0;i FastLED.show(); delay(1000); for(i=0;i FastLED.show(); delay(1000); for(i=0;i FastLED.show(); delay(1000); BT_serial.begin(9600); BT_serial.println("select desire colour"); } void loop() { if(BT_serial.available()) { recv_char = BT_serial.read(); BT_serial.println(recv_char); switch(recv_char) { BT_serial.println(recv_char); case 'R': for(i=0;i FastLED.show(); break; case 'Y': for(i=0;i FastLED.show(); break; case 'O': for(i=0;i FastLED.show(); break; case 'G': for(i=0;i FastLED.show(); break; case 'L': for(i=0;i FastLED.show(); break; case 'B': for(i=0;i FastLED.show(); break; case 'S': for(i=0;i FastLED.show(); break; case 'C': for(i=0;i FastLED.show(); break; case 'P': for(i=0;i FastLED.show(); break; case 'M': for(i=0;i FastLED.show(); break; case 'x': for(i=0;i FastLED.show(); break; case 'W': for(i=0;i FastLED.show(); break; } } } 项目升级:声控LED灯带 如果觉得蓝牙还不够方便,那就来个声控的!也就是说,你可以说出想要的LED灯带颜色。例如,你大声说“BLUE”,LED灯带就显示蓝色了!!!! 其实,这无需额外电路,只要从Google商店下载一个“Arduino Bluetooth controller” app即可,这个app会将语音命令转化成text文本,并通过手机的蓝牙功能发送给另一部手机。具体操作步骤如下: 1.下载并安装 Arduino Bluetooth controller 应用程序。 2.打开并安装该,程序会提示你开启手机的蓝牙功能。 3.Turn ON 蓝牙功能。 4.程序将寻找另一台蓝牙设备,点按 “available device”就会发现 HC05模组。 5.最后,连接 HC05 模组。 6.下载如下 Arduino 代码: #include #include #define NUM_LEDS 43 #define DATA_PIN1 4 #define Tx_pin 3 #define Rx_pin 2 int i,j=0,k; char recv_color_str ; char red = "red"; char green = "green"; char blue = "blue"; char magenta = "Magenta"; char yellow = "yellow"; char orange = "orange"; char white = "white"; char purple = "purple"; char rainbow = "rainbow"; char black = "black"; CRGB led_strip1 ; SoftwareSerial BT_serial(Rx_pin,Tx_pin); void setup() { FastLED.addLeds(led_strip1, NUM_LEDS); for(i=0;i FastLED.show(); delay(1000); for(i=0;i FastLED.show(); delay(1000); for(i=0;i FastLED.show(); delay(1000); BT_serial.begin(9600); // Serial.begin(9600); //Serial.println("select desire colour"); } void loop() { while(BT_serial.available()) { 0) { recv_color_str = BT_serial.read(); Serial.print(recv_color_str ); j++; } } if(strcmp(recv_color_str,black)==0) { //Serial.println(recv_color_str); for(i=0;i FastLED.show(); j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } else if(strcmp(recv_color_str,red)==0) { //Serial.println(recv_color_str); for(i=0;i FastLED.show(); j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } else if(strcmp(recv_color_str,purple)==0) { // Serial.println(recv_color_str); for(i=0;i FastLED.show(); j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } else if(strcmp(recv_color_str,white)==0) { // Serial.println(recv_color_str); for(i=0;i FastLED.show(); j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } else if(strcmp(recv_color_str,green)==0) { // Serial.println(recv_color_str); for(i=0;i FastLED.show(); j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } else if(strcmp(recv_color_str,blue)==0) { // Serial.println(recv_color_str); for(i=0;i FastLED.show(); j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } else if(strcmp(recv_color_str,yellow)==0) { //Serial.println(recv_color_str); for(i=0;i FastLED.show(); j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } else if(strcmp(recv_color_str,orange)==0) { // Serial.println(recv_color_str); for(i=0;i FastLED.show(); j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } else if(strcmp(recv_color_str,magenta)==0) { //Serial.println(recv_color_str); for(i=0;i FastLED.show(); j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } else if(strcmp(recv_color_str,rainbow)==0) { //Serial.println(recv_color_str); for(i=0;i<3;i++) {led_strip1 = CRGB::Yellow;} for(i=3;i<6;i++) {led_strip1 = CRGB::Magenta;} for(i=6;i<9;i++) {led_strip1 = CRGB::Orange;} for(i=9;i<12;i++) {led_strip1 = CRGB::Blue;} for(i=12;i<15;i++) {led_strip1 = CRGB::Green;} for(i=15;i<18;i++) {led_strip1 = CRGB::Red;} for(i=18;i<21;i++) {led_strip1 = CRGB::Cyan;} for(i=21;i<24;i++) {led_strip1 = CRGB::Yellow;} for(i=24;i<27;i++) {led_strip1 = CRGB::Magenta;} for(i=27;i<30;i++) {led_strip1 = CRGB::Orange;} for(i=30;i<33;i++) {led_strip1 = CRGB::Blue;} for(i=33;i<36;i++) {led_strip1 = CRGB::Green;} for(i=36;i<39;i++) {led_strip1 = CRGB::Red;} for(i=39;i<43;i++) {led_strip1 = CRGB::Cyan;} FastLED.show(); j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } else { j=0; for(k=0;k<8;k++) recv_color_str = '\0'; } } 将这些代码上传到 Arduino IDE后,只要对着手机喊出颜色名称,灯带就会按照你的要求改变颜色了。
  • 2022-7-14 11:42
    3 次阅读|
    0 个评论
      【哔哥哔特导读】随着整体技术的持续突破及生产规模的不断提升,光伏发电总成本持续下降,进入稳定发展阶段,平价上网有望在全球范围内逐步实现,2021年,国内也开始正式进入平价上网阶段。      平价上网意味着光伏领域将由过去的政策补贴思维转化为盈利思维,储能将是分布式光伏后续发展重要推动力,配置储能设备后,分布式光伏发电系统基本能实现电能的自发自用,仅余较少量输入电网。   分布式光伏的优点   分布式光伏发电系统主要采用微型逆变器,单体容量一般在 5 kW 以下,只对应单块或数块光伏组件,能够对每块光伏组件进行独立的最大功率跟踪控制,从而实现对每块光伏组件的输出功率进行精细化调节及监控。      分布式光伏微型逆变器控制方式      集中式、组串式、分布式光伏逆变器技术指标对比   安全性高。分布式光伏微型逆变器与每一块光伏组件连接逆变后并联接入电网,系统运行时直流电压一般在 80V 以下,降低了较高的直流高压导致的运维触电、火灾、施救三大风险,提高了分布式光伏发电系统的安全性。   发电效率高。微型逆变器能够对单块光伏组件实现最大功率点跟踪功能,保证每块光伏组件以最大功率输出,解决组件被阴影遮挡、系统失配等因素导致的“短板效应”,有效提升分布式光伏发电系统的整体发电效率。   可靠性高。微型逆变器独立性更高,发生故障后互不干扰,即使出现单台逆变器故障,分布式光伏系统仍可继续发电。   灵活性高。微型逆变器在建设使用方面具有较高的灵活性,一是安装灵活,微型逆变器体积小巧,质量较轻,安装使用方便,可以直接安装在光伏组件或者支架上;二是运维灵活,在出现单个微型逆变器故障的情况下,无需整个系统停止运行进行更换,运维操作简单方便,灵活性高;三是扩容简便灵活,后期分布式光伏发电系统因增加规模而需要新增设备投资时,无需更改之前配置,可以直接安装新增设备,扩容简便,同时微型逆变器单机功率较小,扩容功率灵活性高,使得整个分布式光伏发电系统的投资建设具有更高的灵活性。   分布式光伏需求爆发推动微型、储能逆变器快速增长   未来光伏行业的发展仍将呈现集中式和分布式光伏共同发展的市场格局,并且随着分布式光伏发电的优势逐渐发挥,中国、巴西、印度等分布式市场快速增长,预计至 2025年,全球分布式光伏新增装机占比达 45%左右。      全球集中式、分布式光伏新增装机量占比情况,据来源:IEA、方正证券研究所、天风证券   2021年,内国分布式光伏新增装机占比 53%,历史上首次突破50%,主要是户用分布式光伏市场发展火热,随着“整县推进”试点工作在全国各省市全面展开以及国补 0.03 元/ kWh 的政策刺激下分布式光伏装机迎来爆发式增长。   分布式光伏发电系统的蓬勃发展,带动微型逆变器出货量快速增加。2018-2020 年期间,全球微型逆变器出货量从 1.18GW 增加到 2.28GW,创造历史新高,年均复合增长率达到 39.12%;市场规模从3.84 亿美元增加到 7.41 亿美元,年均复合增长率达到 38.91%。   此外,根据分布式光伏逆变器龙头企业古瑞瓦特招股书数据显示,2019-2021年储能系统营收分别为0.72亿、2.15亿、6.7亿,均呈高速增长态势,储能系统营收占比也越来越高。      储能系统营收增长情况,图片来源:瑞瓦特招股说明书   目前北美、欧洲是微型逆变器最主要的两大市场,根据 WoodMackenzie 数据,2016-2020 年期间,北美市场及欧洲市场微型逆变器出货量合计占比均在 80%以上。随着国内分布式光伏项目的推进,国内微型逆变器市场也有望进入快速增长阶段。   分布式光伏发展趋势   光储一体化是市场发展的重要趋势。随着储能技术的快速发展,储能装备性能不断提升、成本不断下降,集成光伏并网发电、储能电站的光储充一体化项目在电网中的安装容量将大幅增加,市场前景广阔。   功率密度越来越高。高功率密度意味着更高效的电能变换与更低的原材料成本,是反映逆变器设计能力的核心技术指标。根据禾迈股份招股书披露的数据显示,其一拖一微型逆变器产品的最高功率密度为 454W/L,一拖四微型逆变器的功率密度甚至达到 922W/L,越来越高的功率密度,对功率器件的转换效率提出了更高的要求。   组件级控制是市场发展的重要趋势。分布式光伏发电主要应用于家庭户用、工商业用等领域,安全性是其重要考虑因素,近年来陆续出台光伏屋顶安全规范政策,要求发电系统设计时应尽量减少使用直流线路,直流系统电压不宜高于80V。通过微型逆变器避免直流串联,实现了较高的市场成长性,尤其在中小功率应用场景中更具有性价比优势。   对系统稳定系要求越来越高。禾迈股份曾建设过微型逆变器并联台数达 6 千余台、并联功率达3.7MW的分布式光伏发电系统。随着国内分布式光伏发电逐步推进,多台并联的工商业建筑屋顶分布式光伏将会越来越多,增加储能系统后,还需要加入锂电池管理系统,对光储充系统稳定性的要求也会越来越高。   导入第三代半导体材料。第三代半导体能促进光伏储能逆变器走向高效、高可靠性、低成本化,尤其是光伏电站电压等级从1000V提升至1500V以上,耐高压SiC功率元件将在组串式和集中式逆变器中大展身手;对功率最多5kW的微型逆变器,GaN功率元件则更具优势,能改善转换效率,降低光电转换成本(LCOE),提高微型逆变器功率密度。目前光伏储能领域已成为第三代半导体第二大应用市场。      供不应求 国产化率有望快速攀升   IGBT 元器件国内生产商较少,与进口部件相比,产品稳定性、技术指标存在一定差异,未能完全产品技术要求,2020 年国内光伏储能国产化率接近为零。分布式光伏的推进望改变这一状况。   分布式光伏主要采用 IGBT 单管或模块(单相一般采用IGBT 单管,三相可选择 IGBT 单管或模块),整体功率相对更低,而国内功率器件厂商在低功率段技术上已取得一定突破,成本方面则有优势。   2021 年,斯达半导、时代电气、扬杰科技、新洁能光伏 IGBT 收入均为几千万,且处于快速放量阶段。光伏IGBT龙头英飞凌5月公布的二季报显示,其积压订单达370亿欧元(2021 年公司收入为 111 亿欧元,预计 2022 年收入为 130~140 亿欧元),且 80%需求集中于 12 个月交付。在供需失衡,海外厂商扩产普遍谨慎,且IGBT 交期达 39~50 周的情况下,国内半导体厂商有望迎来发展机遇。   如何提高沟道密度、电流密度、最大工作温度和,降低导通压降、开关损耗降低,减少芯片厚度,是国产厂商需要重点考虑的问题,也是能否实现国产替代的关键。而随着第三代半导体材料的导入,国内厂商是否又有相应的产品布局和研发配套?   2022年8月5日,新电源 智能域 赋能“芯”生态-2022'中国电子热点解决方案创新峰会(CESIS)将在深圳举办,峰会将设置光储充专场技术创新研讨会,共同探索光储充这一蓝海市场的技术难点与商业模式,为众多BMS、逆变器、充电桩厂商展示当前国内厂商最新技术解决方案。   转发福利   转发可获得20元现金奖励:会前分享峰会链接至朋友圈7天及以上(不可分组),在会议结束后即可出示朋友圈到会议现场签到处领取20元现金奖励。   参会福利   【推荐参会叠加福利】   叠加奖励说明:推荐1人参会成功,可获得20元福利红包,以此类推!1000元封顶,奖励将于会后3个工作日内核实兑换。   【注:如推荐成功满5人起,即自动成团】   【组团参会福利】   5人起成团,团长可获得200元现金奖励,团员直接获20元现金福利。   10人以上成团,团长可获得400元现金奖励,团员直接获得20元现金福利。   20人以上成团,团长可获得800元现金奖励,团员直接获得20元现金福利。   签到福利:准时入场及开场前15分钟签到,即可领取会议书签一枚。   【注:转发福利和组团福利,只能参与其中一项!】   以上福利仅限新能源汽车、光储充、智能快充、智能家居、5G基站电源、智能照明、电源、便携式设备锂电BMS等行业研发/技术工程师及管理层参与!   此外还有会议现场抽奖,各个场次均设有超级大奖(1名)和幸运奖(3名),具体抽奖福利可持续关注峰会后续报道。   峰会期间,新方案服务赋能“芯”生态,通过八个专场会议,展示当前最具市场发展潜力应用市场的前沿解决方案,为广大整机端工程师构筑行业交流桥梁,了解上游供应商最新技术解决方案,为变幻莫测的市场新形势练兵秣马。   新电源 智能域 赋能“芯”生态   2022’中国电子热点解决方案创新峰会(CESIS)     本文为哔哥哔特资讯原创文章,如需转载请在文前注明来源 搜索 复制
相关资源