|
Post by 邱老师 on Jan 1, 2021 7:22:38 GMT
这也是个PWM信号的示例,控制LED亮度的参数,由一个可调电阻器决定 转到电阻器,可以调节LED灯的亮度 接线: D9口接到开发板的任意LED接口,可变电阻器接到A0口 链接:https://pan.baidu.com/s/12sitFg1ZdODR50GKxZ4DWQ 提取码:9zpj const int analogInPin = A0; // 定义一个A0口的常量
const int analogOutPin = 9; // 定义一个PWM输出接口常量
int sensorValue = 0; // 定义一个变量,并给他赋初值,为了存储传感器读取的值
int outputValue = 0; // 定义一个变量,并给他赋初值,该变量存储的是PWM的值
void setup() {
// 初始化串口工作频率
Serial.begin(9600);
}
void loop() {
// 读取模拟口的输入值,并放到sensorValue这个变量中
sensorValue = analogRead(analogInPin);
// 转换读取的值到0至255之间的相对值
outputValue = map(sensorValue, 0, 1023, 0, 255);
// 输出PWM信号
analogWrite(analogOutPin, outputValue);
// 打印结果在串口监视器中
Serial.print("sensor = ");
Serial.print(sensorValue);
Serial.print("\t output = ");
Serial.println(outputValue);
// 等候2毫秒再进入LOOP循环
// 用于模数转换器的解决方案
delay(2);
}
|
|
|
Post by 邱老师 on Jan 1, 2021 7:23:33 GMT
在开发板上,可调电阻器有两个,分别命名为W3和W4。 链接:https://pan.baidu.com/s/1vAasW1S9VtTei4VE2uNWfQ 提取码:t3h8
|
|
|
Post by 邱老师 on Jan 2, 2021 2:28:35 GMT
如果想控制LED的闪烁速度,可以把A0口收到的值,做为延迟的时间,代码如下:
const int analogInPin = A0; const int analogOutPin = 9; int sensorValue = 0; int outputValue = 0; void setup() {
Serial.begin(9600);
pinMode(analogOutPin,OUTPUT);
}
void loop() {
sensorValue = analogRead(analogInPin);
outputValue = map(sensorValue, 0, 1023, 0, 255);
Serial.print("sensor = ");
Serial.print(sensorValue);
Serial.print("\t output = ");
Serial.println(outputValue);
digitalWrite(analogOutPin,HIGH);
delay(sensorValue);
digitalWrite(analogOutPin,LOW);
delay(sensorValue);
}
|
|
徐晨涛
New Member
Posts: 29
|
Post by 徐晨涛 on Jan 17, 2021 8:16:03 GMT
完成。
|
|