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

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年7月18日 (五) 09:33的版本 (Created page with "{| style="width: 800px;" |- | ==目的== 通过按键调节led亮度逐渐亮与逐渐灭。 ==设备== * Microduino-CoreSTM32 Microduino-CoreSTM32是采用 STM32F103CBT6...")
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳转至: 导航搜索

目的

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

设备

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

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

原理图

按键接法分别采用内部上拉和外部下拉,接数字口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 n=0;
void setup ()
{
  pinMode(2, INPUT_PULLDOWN); //设置为内部下拉
  pinMode(7,INPUT_PULLUP);//设置为内部上拉
  pinMode(11,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(7);          //读取2号口的状态
  int down = digitalRead(2);      //读取7号口的状态   
  if (up==HIGH)                    
  { 
    n=n+5;                         
    if (n>=255) {
      n=255;
    }              
    pwmWrite(11,n*16);   //使用PWM控制11号口输出,变量n的取值范围是0- 65535 
    delay (300);
  }
  if (down==LOW)             
  {
    n=n-5;
    if (n<=0) {
      n=0;
    }
    pwmWrite(11,n*16); //使用PWM控制11号口输出,变量n的取值范围是0-65535 
    delay (300);
  }
}

结果

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

视频