Arduino PWM 调节LED 亮度

标签:
arduinopwm智能控制杂谈大帅机器人工作室 |
分类: Arduino |
淘宝店铺:http://dsrobot.taobao.com 群号: 259189548
实验器材:Arduino 168P 基础套件 互动媒体
实验目的:学习LED的工作原理,深刻理解Arduino进行PWM占空比的调节,从而改变LED的亮度。
实验电路:实验电路如下图所示
注意:这里要提醒大家了220欧姆的电阻在这非常重要(这里起限流保护的作用)
实验原理:Pulse Width Modulation 就是通常说的PWM,译为脉冲宽度调制,简称脉冲宽度调制。脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法,由于计算机不能输出模拟电压,只能输出0V或5V的数字电压值,我们就通过使用高分辨率计数器,利用方波的占空比被调制的方法来对一个具体的模拟信号的电平进行编码。PWM信号仍然是数字的,因为在给定的任意时刻,满幅值的直流供电要么是5V(ON),要么是0V(OFF)。电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。通的时候即是直流供电被加到负载上的时候,断的时候就即是供电被断开的时候。只要带宽足够,任何模拟值都可以使用PWM进行编码。输出的电压值是通过通和断的时间进行计算的。
计算公式:输出电压= (接通时间/脉冲时间)*最大电压值
http://s16/middle/624e2b45t9a93344203ff&690PWM
PWM被用到许多地方,如:调光灯具、电机调速、声音的制作等等。
我再看看LED原理图
http://s16/middle/624e2b45t9a9337c2c2bf&690PWM
我们在使用LED时一定要注意加限流电阻,这个是我反复重复的。LED具有二极管正向导通的特性,我们在做实验是可能出现LED不亮的情况不要着急,可能是我们把LED的极性搞错了。调换一下正负极就好了。这里我教大家一个简单的方法区分电子原件正负极的方法:我看到上图中LED有两个引脚一长一短,那么较短的引脚就是正极、较长的引脚就是负极。
实验步骤:
一.
二.
三.
http://s11/middle/624e2b45t9a933b066dfa&690PWM
实验程序:
int redpin=11;//定义LED接口
int yellowpin=10;
int greenpin=9;
int redval;//定义LED变量
int yellowval;
int greenval;
int i=0;
void setup()
{
}
void loop()
{
if(i<200)
{
}
else if(i<400)
{
}
else if(i<600)
{
}
else
{
}
analogWrite(redpin,redval);//给LED接口付模拟值
analogWrite(yellowpin,yellowval);
analogWrite(greenpin,greenval);
Serial.print(i,DEC);//显示出i的值
Serial.print(
Serial.print(redval,DEC);
Serial.print(
Serial.print(yellowval,DEC);
Serial.print(
Serial.println(greenval,DEC);
}