找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 11349|回复: 0
打印 上一主题 下一主题
收起左侧

Arduino教程-旋钮控制LED神灯

[复制链接]
跳转到指定楼层
楼主
Hi,大家好!在之前获取输入模拟信号的学习中,我们很早就是知道了如何使用旋转电位计。但在那一次的学习中,我们并没有进一步来完成控制LED神灯的亮度。今天呢,我们一方面复习之前的学习,另一方面完成用旋转电位计来控制LED神灯的亮度。
好!还是老规矩,先来看看这次我们需要哪些硬件吧!
硬件方面
图片来源:Arduino电路配件
具体包括如下:
  • Arduino UNO电路板(1块)
  • 面包板(1块)
  • 220Ω电阻(1个)
  • LED神灯(1盏)
  • 面包线(若干)
上面配件中,都是熟悉的面孔,不多说。
软件方面Arduino官方提供的IDE
连接电路
图片来源:Arduino电路连接
电路的连接也很清晰,不多说。
最后一步!
添加几行代码首先,还是新建项目一个窗口。

图片来源:Arduino官方IDE
向其中添加几行代码:


  1. // 定义旋转电位计模拟信号输入针脚号
  2. const int analogInPin = A0;
  3. // 定义LED神灯数字信号针脚号
  4. const int analogOutPin = 9;
  5. // 定义存储旋转电位计模拟信号数值
  6. int sensorValue = 0;
  7. // 控制LED神灯亮暗的模拟信号数值
  8. int outputValue = 0;
  9. // 对Arduino电路板或相关状态进行初始化方法
  10. void setup() {
  11.   // 开启串行通信,并设置其频率为9600。
  12.   // 如果没有特别要求,此数值一般都为9600。
  13.   Serial.begin(9600);
  14. }
  15. // 系统调用,无限循环方法
  16. void loop() {
  17.   // 读取旋转电位计的数值
  18.   sensorValue = analogRead(analogInPin);
  19.   // 转换电位计的数值范围,
  20.   // 将0~1023数值范围映射到0~255
  21.   outputValue = map(sensorValue, 0, 1023, 0, 255);
  22.   // 将转换后的数值,应用给LED神灯,
  23.   // 以此控制LED神灯的亮度。
  24.   analogWrite(analogOutPin, outputValue);
  25.   // 向串口调试窗口打印数值
  26.   Serial.print("sensor = ");
  27.   Serial.print(sensorValue);
  28.   Serial.print("         output = ");
  29.   Serial.println(outputValue);
  30.   // 延迟2毫秒,进入下一个loop循环。
  31.   delay(2);
  32. }
复制代码


好!代码输入完毕!没有新内容,调用的方法也都是之前见用过的。

图片来源:Arduino官方IDE的文件编辑菜单选项
点击上图中标有向右指向的箭头图标,将编写完成的代码烧入Arduino电路板。如果一切顺利,现在就可以通过控制旋转电位计来调控LED神灯的亮度啦!
如果想查看串口调试窗口里的输出信息,可以点击上图中最右侧的放大镜图标,即可查看实时输出信息。

图片来源:Arduino串口调试窗口
总结这一次的试验,没有新内容,总的来说呢,是对之前所学的内容重新做了复习。这里需要特别注意的是map()方法,这个方法还是蛮常用到的。
下期预告下一次,我们将介绍一个新的Arduino家族的成员给大家认识,会是谁呢?Mega2560:http://www.51hei.com/bbs/dpj-43094-1.html

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表