Arduino PWM教程
文件列表(压缩包大小 1016B)
免费
概述
Arduino UNO
杜邦线
面包板
在Arduino PWM教程中,您将学习什么是PWM以及如何从Arduino的数字引脚获取PWM输出。首先,我们将通过代码控制LED的亮度,然后通过添加电位计来手动控制它。
PWM代表脉冲宽度调制,它是一种用于控制LED亮度,控制直流电动机的速度,控制伺服电动机或必须通过数字方式获得模拟输出的技术。
Arduino数字引脚为我们提供5V(变为高电平时)或0V(变为低电平时),输出为方波信号。因此,如果要使LED变暗,则无法从数字引脚获得0至5V之间的电压,但可以更改信号的开启和关闭时间。如果我们足够快地改变ON和OFF时间,那么LED的亮度将会改变。
在继续之前,让我们讨论与PWM相关的一些术语。
TON(接通时间):这是信号为高的时间。
TOFF(关闭时间):这是信号低电平的时间。
时间:这是接通时间和断开时间的总和。
占空比:这是一段时间内信号为高电平的时间百分比。
因此,在占空比为50%和频率为1Hz时,LED将在半秒内保持高电平,而在另一半秒内保持低电平。如果将频率提高到50Hz(每秒50次ON和OFF),则人眼将看到发光二极管以一半的亮度发光。
Arduino IDE具有内置函数“ analogWrite()”,可用于生成PWM信号。对于大多数引脚,此生成信号的频率约为490Hz,我们可以使用此功能在0-255之间给出值。
AnalogWrite(0)表示占空比为0%的信号。
AnalogWrite(127)表示占空比为50%的信号。
AnalogWrite(255)表示占空比为100%的信号。
在Arduino Uno上,PWM引脚为3、5、6、9、10和11。引脚5和6上的PWM信号频率约为980Hz,其他引脚为490Hz。PWM引脚标有〜符号。
首先,如下所述进行连接。
将LED的正极(即较长的一端)连接到Arduino的数字引脚6。然后将220欧姆电阻器连接到LED的负极,并将电阻器的另一端连接到Arduino的接地引脚。
现在,让我们编写代码以使用PWM更改LED的亮度。
将代码上传到Arduino IDE中,LED将开始消失。
//Initializing LED Pin
int led_pin = 6;
void setup() {
//Declaring LED pin as output
pinMode(led_pin, OUTPUT);
}
void loop() {
//Fading the LED
for(int i=0; i<255; i++){
analogWrite(led_pin, i);
delay(5);
}
for(int i=255; i>0; i--){
analogWrite(led_pin, i);
delay(5);
}
}
在之前的连接中,添加10k欧姆电位计,并将电位计的两端连接到Arduino的5V和GND,然后将电位计的中心连接到Arduino的A0引脚。
将代码上传到Arduino IDE中,然后移动电位器的旋钮,LED的亮度就会改变。
int led_pin = 6;
int pot_pin = A0;
int output;
int led_value;
void setup() {
pinMode(led_pin, OUTPUT);
}
void loop() {
//Reading from potentiometer
output = analogRead(pot_pin);
//Mapping the Values between 0 to 255 because we can give output
//from 0 -255 using the analogwrite funtion
led_value = map(output, 0, 1023, 0, 255);
analogWrite(led_pin, led_value);
delay(1);
}
所有需要的文件在下载区均可找到。
如果遇到文件不能下载或其他产品问题,请添加管理员微信:ligongku001,并备注:产品反馈
评论(0)