Hi,大家好!在之前获取输入模拟信号的学习中,我们很早就是知道了如何使用旋转电位计。但在那一次的学习中,我们并没有进一步来完成控制LED神灯的亮度。今天呢,我们一方面复习之前的学习,另一方面完成用旋转电位计来控制LED神灯的亮度。
好!还是老规矩,先来看看这次我们需要哪些硬件吧!
硬件方面
图片来源:Arduino电路配件
具体包括如下:
- Arduino UNO电路板(1块)
- 面包板(1块)
- 220Ω电阻(1个)
- LED神灯(1盏)
- 面包线(若干)
上面配件中,都是熟悉的面孔,不多说。
软件方面Arduino官方提供的IDE
连接电路
图片来源:Arduino电路连接
电路的连接也很清晰,不多说。
最后一步!
添加几行代码首先,还是新建项目一个窗口。
图片来源:Arduino官方IDE
向其中添加几行代码:
- // 定义旋转电位计模拟信号输入针脚号
- const int analogInPin = A0;
- // 定义LED神灯数字信号针脚号
- const int analogOutPin = 9;
- // 定义存储旋转电位计模拟信号数值
- int sensorValue = 0;
- // 控制LED神灯亮暗的模拟信号数值
- int outputValue = 0;
- // 对Arduino电路板或相关状态进行初始化方法
- void setup() {
- // 开启串行通信,并设置其频率为9600。
- // 如果没有特别要求,此数值一般都为9600。
- Serial.begin(9600);
- }
- // 系统调用,无限循环方法
- void loop() {
- // 读取旋转电位计的数值
- sensorValue = analogRead(analogInPin);
- // 转换电位计的数值范围,
- // 将0~1023数值范围映射到0~255
- outputValue = map(sensorValue, 0, 1023, 0, 255);
- // 将转换后的数值,应用给LED神灯,
- // 以此控制LED神灯的亮度。
- analogWrite(analogOutPin, outputValue);
- // 向串口调试窗口打印数值
- Serial.print("sensor = ");
- Serial.print(sensorValue);
- Serial.print(" output = ");
- Serial.println(outputValue);
- // 延迟2毫秒,进入下一个loop循环。
- delay(2);
- }
复制代码
好!代码输入完毕!没有新内容,调用的方法也都是之前见用过的。
图片来源:Arduino官方IDE的文件编辑菜单选项
点击上图中标有向右指向的箭头图标,将编写完成的代码烧入Arduino电路板。如果一切顺利,现在就可以通过控制旋转电位计来调控LED神灯的亮度啦!
如果想查看串口调试窗口里的输出信息,可以点击上图中最右侧的放大镜图标,即可查看实时输出信息。
图片来源:Arduino串口调试窗口
总结这一次的试验,没有新内容,总的来说呢,是对之前所学的内容重新做了复习。这里需要特别注意的是map()方法,这个方法还是蛮常用到的。
下期预告下一次,我们将介绍一个新的Arduino家族的成员给大家认识,会是谁呢?Mega2560:http://www.51hei.com/bbs/dpj-43094-1.html
|