这篇文章来源于deviceplus英语网站的翻译稿。
调光器只是另一种类型的电位器。我们已经探索过如何使用一个调光器来控制伺服,本指南将展示如何使用它来控制led。由于led(像大多数灯一样)在通过它们的功率过大时会被烧坏,本文将能够帮助您了解如何校准电位计以限制 arduino的电压输出。
led和调光电位计的工作原理
led在大多数项目中用于测试电路或指示某些部件是否正常工作。但是,在本项目中,我们想直接控制led的亮度。我们将通过两种方式来展示如何使用电位计直接控制通过led的电压,以及如何使用arduino的编程来对其进行间接控制。
首先,我们需要了解led的工作原理。当电流通过led时,它会发光。通过led的电流量将决定它的亮度,但电流过大会烧坏led。这就是为什么大多数使用led的项目需要一个220欧姆的电阻来阻碍电流流通。
电位计也是一种电阻可变的电阻器。表盘转的幅度越大,它给电路增加的电阻就越大。在接线环节的第一部分,我们将展示如何在不使用arduino的情况下直接降低led的亮度。然后,我们将调光器添加到电路中,以通过草图对亮度进行多的控制。
所需组件
我们在这里所进行的项目的两个版本都很简单,所以您可能已经具有所需的大部分组件了,尤其是如果您曾经购买过基本的电子设备套件的话。无论哪种版本,您都需要以下组件以及电源:
arduino uno
arduino ide
一个面包板
一个220 欧姆 电阻
一个电位计
任何电位计都可以,但是如果您有滑块电位计可以使用该电位计,因为在将灯光调暗时该电位计比表盘式更加自然
arduino和ide仅用于该电路的第二种版本。但是,我们将使用它为第一个版本的面包板供电。您还可以使用类似这样的电源模块来添加与 arduino供电效果相同的电源。请注意,如果您使用其他电源(例如9v电池),第一个电路可能无法正常工作,并且可能会烧坏您的led。
接线
我们将要使用的第一个接线模型完全不需要arduino,所以我们首先对第一个模型进行接线。使用该电路,您将能够看到电位计是如何直接影响其电阻的。首先,使用面板板将以下组件接线:
● 首先,将电源线和地线分别连接到面包板侧面的导轨和arduino上的5v和gnd引脚。
● 将电源轨连接到电位计的一侧引脚。
● 将电位计上的中心引脚连接到led的长引脚。
● 将led的短引脚连接到220欧姆电阻。
● 将电阻的另一端连接到接地轨。
为您的arduino或电源模块供电,led将亮起。现在,您可以滑动电位计,电路的电阻将发生变化,从而调整流经led的电流,使光线变得更亮或更暗。
这样就用一种小规模电路展示了大多数调光电路的工作原理。电路中加入220欧姆电阻,防止电流过载烧坏led灯。连接好电阻后,电位计将会在可调范围内对电流进行进一步限制。
然而,直接修改电路中的电流并不是调节灯光亮度的唯一方法。为了展示另一种方案,我们将扩展电路以读取电位计的电阻,并使用草图为led分配一个值(我们将在下一节解释)。
完成第一个版本的电路后,请进行以下更改:
● 将led的长端插入arduino上的引脚6(而不是之前电路中电位计的中心引脚)。
● 将电位计的中心引脚连接到arduino的引脚a0。
● 将电位计的第三个引脚连接到接地轨(第一个引脚仍然连接到电源轨)。
在该电路中,电位计的电阻不直接影响led的亮度,而是被arduino读取为模拟值。然后,可以在草图中对该值进行缩放和调整,我们将在下文中进行说明。
代码
首先,这是您可以直接上传到arduino中的完整代码。它的功能几乎与原始电路相同,只是添加了更多的软件控制。
int blueled = 6;
int dimmerpin = a0;
int dimmervalue = 0;
int ledvalue = 0;
void setup() {
pinmode(dimmerpin, input);
pinmode(blueled,output);
serial.begin(9600);
}
void loop(){
dimmervalue = analogread(dimmerpin);
ledvalue = map(dimmervalue, 0, 1023, 0, 255);
analogwrite(blueled, ledvalue);
}
大部分代码都是相当基础的——变量声明、分配引脚等等,但是我们需要注意loop()部分中的三行。
dimmervalue = analogread(dimmerpin);
ledvalue = map(dimmervalue, 0, 1023, 0, 255);
analogwrite(blueled, ledvalue);
这里的第一行用于从引脚a0读取电位计的值,该值的测量范围为0到1023。我们可以将此值转换为用于控制led的引脚6的输出。该代码的第二行用于将电位计的值重新映射到0到255的范围内(pwm引脚的输出范围)。最后一行代码用于将该值写入引脚6。
但是,我们可以通过调整第二行的最后两个数字来设置最小或最大亮度。第二个0用于设施最小亮度级别(在这种情况下将完全熄灭)。提高此级别之后,即使您将调光器调到最低,灯光也会保持您所设置的最低级别的亮度。同样,此行中的255是设置的最高级别。如果您想降低最大亮度级别—毕竟led可以变得非常亮—降低这个数字可以保证即使一直将亮度调高灯光也不会变得太亮。
在此特定示例中,将0到5v范围内的值(取决于您设置的限制)写入led引脚输出,并且使用220欧姆电阻进一步限制通过led的电流。当您处理更大、更复杂的灯光设备(如led灯条、灯泡或任何电压高于arduino可以输出的5v电压的设备)时,请牢记这一点。
deviceplus 编辑团队
设备升级版适用于所有热爱电子和机电一体化的人。
切换到嵌入式 Android 时要知道什么
芯动科技全系高端DDR存储接口解决方案
专用与通用的富士伺服马达驱动器的市场分析
VGA-BNC适配器电路图讲解
汽车界的“好老婆”-新款本田CRV,拥有它足以让你自豪16年
如何用调光器控制灯光
用齐纳二极管设计简单的过压保护电路
工业自动化设备MOS管应用方案:100N8F6A场效应管
iOS12.4正式版来袭!
软件工具决定了FPGA发展水平?
Sigal-gate、Dual-gate和Triple-gate面板驱动技术
贝尔温湿度振动三综合试验设备
限制中国半导体产业发展与海外收购,开启知识产权大战
京东方独供OLED,红魔9 Pro系列电竞新机发布,4399元起
亚马逊宣布“AI就绪”新计划,到2025年向200万人提供免费AI技能培训
学生党用什么蓝牙耳机好?适合学生党平价蓝牙耳机推荐
如何在您的项目中添加LCD显示器
LLC电路的控制策略
aigo国民好物固态U盘为何如此倍受消费者青睐?
机智云Arduino与ESP8266 ESP12-F之间的连接