LED亮度渐隐

LED亮度渐隐

本例向你展示如何使用analogWrite()函数来让LED亮度渐变。AnalogWrite 通过PWM技术(脉宽调制技术)工作,采用PWM技术能够快速的开关一个数字引脚,通电的时间和断电的时间按照一定的比例分配,这样一来就产生了亮度渐变效果。
【译者注:想不明白应该去了解下生物学视觉暂留的知识。】

完成本例所需的硬件设备

  • Arduino或Genuino板
  • LED灯
  • 220Ω电阻
  • 连接线
  • 面包板

电路搭建

将LED阳极(较长脚)通过220Ω电阻连接到板上的9号引脚。
连接LED阴极(较短脚)到GND。
这里写图片描述

电路原理图

这里写图片描述

例程代码

setup()函数只需声明9号引脚为输出引脚,其他什么都不做。

调用analogWrite()函数(在loop函数内)需要两个参数:第一个为要操作的引脚,第二个时要写出的PWM 脉冲宽度 值。

为了让LED的熄灭和点亮有渐变效果,你需要逐渐将PWM值从0(全部时间不通电)逐渐增加到255(全部时间通电)。然后,再从255调到0,以完成一轮亮度渐变。在下方的工程中,PWM值用一个名为brightness的变量存储。loop函数每执行一次,就将brightness变量的值与fadeAmount变量的值相加,并将和再赋给brightness变量。

当brightness变量的值是0或255时,如果发现fadeAmount值为-5,它就应被设为5;若为5则设为-5。如此一来,下次进入循环时亮度就会跟着由弱转亮或由亮转弱。analogWrite()函数能极其快速的改变PWM值,因此在loop函数最后的delay控制了渐变速度。试试看改变delay的时间,看看它如何影响渐变效果。

/*
 LED亮度渐隐

 本例向你展示如何用analogWrite()函数让9号引脚连接的LED亮度渐弱。
analogWrite()函数使用PWM技术,因此如果你想要使用其他引脚接LED,一定保证选择的引脚也支持PWM输出。大多数Arduino板支持PWM的引脚以“~”符号标明.比如: ~3, ~5, ~6, ~9, ~10和~11。

这个例子是公开的。
*/

int led = 9;           // LED连接的PWM引脚
int brightness = 0;    // LED亮度
int fadeAmount = 5;    // 亮度每次的变化值

// setup函数在通电或复位后仅运行一次。
void setup() {
  // 声明9号引脚为输出模式:
  pinMode(led, OUTPUT);
}

// loop函数永远循环运行:
void loop() {
  // 设置9号引脚LED的亮度值:
  analogWrite(led, brightness);

  // 改变下次的亮度值:
  brightness = brightness + fadeAmount;

  // 一次渐变结束后改变亮度变化的方向:
  if (brightness == 0 || brightness == 255) {
    fadeAmount = -fadeAmount ;
  }
  // 等待30毫秒以让人眼看出渐变效果
  delay(30);
}
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值