第五课--按钮PWM控制LED亮度实验/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年7月18日 (五) 09:46的版本 程序
跳转至: 导航搜索

目的

通过按键调节led亮度逐渐亮与逐渐灭。

设备

Microduino-CoreSTM32是采用 STM32F103CBT6芯片的ARM开发板,采用独特的Upin7接口,大小与一枚一元硬币差不多大,完全兼容Microduino其他扩展模块。

  • 其他硬件设备
  • 其他硬件设备
    • 面包板跳线 一盒
    • 面包板 一块
    • LED发光二极管 一个
    • 220欧姆电阻 一个
    • 按键 两个
    • USB数据连接线 一根

原理图

按键接法分别采用内部上拉和外部下拉,接数字口D0-D13。led控制口必须是使用PWM: 0,1,4,11,12,14(A0),15(A1),16(A2),17(A3),18(SDA),19(SCL),20(A6),21(A7)。

程序

int led=4;
int butt0n_1=2;
int butt0n_2=3;
int n=0;

void setup ()
{
  pinMode(butt0n_1, INPUT_PULLDOWN); //设置为内部下拉
  pinMode(butt0n_2,INPUT_PULLUP);//设置为内部上拉
  pinMode(led,PWM);//该端口需要选择有0,1,4,11,12,14(A0),15(A1),16(A2),17(A3),18(SDA),19(SCL),20(A6),21(A7)才能PWM控制
}

void loop()
{
  int up =digitalRead(butt0n_1);          //读取2号口的状态
  int down = digitalRead(butt0n_2);      //读取7号口的状态   
  if (up==HIGH)                    
  { 
    n=n+5;                         
    if (n>=255) {
      n=255;
    }              
  }
  if (down==LOW)             
  {
    n=n-5;
    if (n<=0) {
      n=0;
    }
  }
  pwmWrite(led,n*160);   //使用PWM控制11号口输出,变量n的取值范围是0- 65535 
  delay (300);
}

结果

一个按键使led亮度逐级递减,另一个按键使led亮度逐级递增。

视频