Arduino教程入门系列-第五课-按钮PWM控制LED亮度 led

昨天,我们学习了怎么玩延时开关,我想大家应该也玩了不少新鲜的玩法,今天我们来介绍一种更好玩的东西。通过PWM的方式来调整LED的光亮度。什么是PWM呢,具体请参考极客工坊WIKI词条:PWM

试验用元器件列表:

ocrobot mango控制板(Arduino兼容) 一块
专用面包板跳线 一盒
面包板 一块
镊子 一把
LED发光二极管 一个
按钮开关 两个
10K欧姆电阻 两个
220欧姆电阻 一个
USB数据连接线 一根

接着我们来看电路连接图

arduino pwm 调光电路连接图

从上图我们可以看到两个开关分别接到了数字接口,做输入检测,LED接到了板子上带有#号标识的数字接口上,注意只有带#号标识的接口才具备PWM输出功能。

好了,我们照设计的电路来在面包板上搭建电路

电路搭建好如上图。这样仔细检查一遍确认没有问题后,我们来下载程序

ARDUINO 代码复制打印

/*
 作者:极客工坊
 时间:2012年5月29日
 IDE版本号:1.0.1
 发布地址:[url=http://www.geek-workshop.com]www.geek-workshop.com[/url]
 作用:通过两个开关来控制led的亮度
 */
 
int n=0;
void setup ()
{
  pinMode(4,INPUT);
  pinMode(6,OUTPUT);      //该端口需要选择有#号标识的数字口
  pinMode(10,INPUT);
}
 
void loop()
{
  int up =digitalRead(4);          //读取4号口的状态
  int down = digitalRead(10);      //读取10号口的状态   
  if (up==HIGH)                    //判断4号口目前是否是高电平
  { 
   n=n+5;                         //每次累加值为5
    if (n>=255) {
      n=255;
    }            //限定最大值为255   
analogWrite(6,n);               //使用PWM控制6号口输出,变量n的取值范围是0-255 
    delay (300);
  }
  if (down==HIGH)                    //减少亮度
  {
   n=n-5;
    if (n<=0) {
      n=0;
    }
 analogWrite(6,n);
    delay (300);
  }
}

下载好程序后就能进行实验了,以下是实验视频


via - 极客工坊

标签: Arduino教程