ArduinoUNO实战-第七章-PWM调光

概述

通过电位器控制LED的亮度。
脉宽调制(PWM)基本原理:控制方式就是对逆变电路开关器件的通断进行控制,使输出端得到一系列幅值相等但宽度不一致的脉冲,用这些脉冲来代替正弦波或所需要的波形。也就是在输出波形的半个周期中产生多个脉冲,使各脉冲的等值电压为正弦波形,所获得的输出平滑且低次谐波少。按一定的规则对各脉冲的宽度进行调制,既可改变逆变电路输出电压的大小,也可改变输出频率

学习目标

  • 学会PWM的使用:PuleWidth Modulation脉冲宽度调制,简称脉宽调制。是利用微处理器的数字输出来模拟电路进行控制的一种非常有效的技术,广泛应用在从测量,通信到功率控制与变换的许多领域中。
    脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法,由于计算机不能输出模拟电压,而只能输出0V或5V的数字电压值,(0V为0,5V为1)所以通过高分辨率计数器,利用方波的占空比被调制的方法对一个具体模拟信号的电平进行编码。单PWM信号仍然是数字的,因为在给定的任意时刻,只留供电要么是5V(数字值为1),要么是0V(数字值是0)。电压或电流源以一种通(ON)、断(OFF)的重复脉冲序列加到模拟负载上,只要带宽足够,任何模拟值都可以使用PWM进行白拿,

  • 输出的电压值是通过通和断的时间进行计算的,计算公式为:输出电压=(接通时间/脉冲时间)* 最大电压值

  • PWM的三个基本参数:
    1、脉冲宽度变化幅度(最小值/最大值)
    2、脉冲周期(1秒内脉冲频率个数的倒数)
    3、电压宽度(例如:0V-5V)
    Arduino UNO控制器上有6个PWM的接口分别是数字接口3、5、6、9、10、11

  • Arduino中的设置PWM的语句:analogWrite(pin, value);
    // pin:用于输入数值的引脚
    // value:占空比:0(完全关闭)到255(完全打开)之间

led

在这里插入图片描述

LED灯的长脚表示是正极,短脚则表示是负极

接线图

在这里插入图片描述

  • 电阻接入1K
  • 5V电压接到面包板,整个横线都是5V
  • 红色表示正极,接入到LED的正极
  • ~3接到LED的负极,只需要给3号引脚低电平,led就会点亮

Mind+开始

在这里插入图片描述

IDE

/*
  测试PWM控制LED
*/

// 定义一个LED
#define LED 3
// 定义电位器引脚
#define POT A0

// 定义接收电位器的值
int PotBuffer = 0;

// the setup function runs once when you press reset or power the board
void setup() {
  // 打开串口
  Serial.begin(9600);
  // LED设置为输出
  pinMode(LED, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
  // 电位器控制led灯亮度
  PwmLed();
}

void PwmLed()
{
  // 读取电位器的值
  PotBuffer = analogRead(POT); 
  PotBuffer = map(PotBuffer, 0 ,1023 , 0, 255);  
  analogWrite(LED, PotBuffer);  
}

此时转到电位器,发现led的亮度会变化


版权声明:本文为Blueeyedboy521原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。