查看: 10167|回复: 5

Arduino教程中级 项目六 灯光调节器

[复制链接]
项目六 灯光调节器

本系列教程为DF创客社区版权所有,配套硬件套件新版Arduino中级套件
上一课


所谓灯光调节器,就是可以自由控制灯的亮度,我们这里通过一个模拟角度传感器来LED灯的亮度。随着旋转角度的变化,LED亮度也发生相应改变。角度越大,LED灯也就越亮,相反,角度越小,LED灯也就越暗。这里只是用了小小的LED来做演示效果,如果想运用到我们的生活之中的话,也是同样的原理。那就先做个小型的灯光调节器吧!
模拟角度传感器还能用到很多地方,比如我们后面会接触的舵机,可以通过这个传感器来控制转动角度,又或者以后有机会接触直流电机的小伙伴,可以尝试下用角度传感器来控制转速等等,用处很多!

所需元件

l  1×  数字食人鱼红色LED发光模块
image001.jpg

l  1×  模拟角度传感器
image003.jpg

硬件连接
模拟角度传感器 → 模拟0
数字食人鱼红色LED发光模块 → 数字10


image005.jpg

输入代码

样例代码6-1:
//项目六 —— 灯光调节器
int potPin = 0;                   //电位器连接到模拟0
int ledPin = 10;                  //LED连接到数字10
void setup() {
       pinMode(ledPin, OUTPUT);
}
void loop() {
  int sensorValue = analogRead(potPin);    //读取模拟口0的值      
  //通过map()把0~1023的值转换为0~255
int outputValue = map(sensorValue,0, 1023, 0, 255);   
analogWrite(ledPin,outputValue);   //给LED写入对应值        
  delay(2);                     
}  
缓慢旋转电位器,仔细观察LED的亮度是否发生变化。

硬件分析(模拟输入—模拟输出)

在呼吸灯一节,我们已经学会了如何用数字引脚的PWM口来做模拟输出。这一节将加入互动元素,通过模拟输入来控制模拟输出。

image007.jpg

代码回顾

这里主要讲下map函数。
函数格式如下:
map(value, fromLow, fromHigh, toLow, toHigh)
map函数的作用是将一个数从一个范围映射到另外一个范围。也就是说,会将 fromLow 到 fromHigh 之间的值映射到 toLow 在 toHigh 之间的值。
map函数参数含义:
value:需要映射的值
fromLow:当前范围值的下限
fromHigh:当前范围值的上限
toLow:目标范围值的下限
toHigh:目标范围值的上限
map的神奇之处还在于,两个范围中的“下限”可以比“上限”更大或者更小,因此map()函数可以用来翻转数值的范围,可以这么写:
y = map(x, 1,50, 50, 1);
这个函数同样可以处理负数,请看下面这个例子:
y = map(x, 1,50, 50, -100);
   
    回到代码中,
    int outputValue = map(sensorValue, 0, 1023, 0, 255);
    我们是想将模拟口读到的0~1023的值,转换为PWM口的0~255。

※ 在之后的Arduino学习之旅中,不管你遇到奇奇怪怪的问题,都希望你与我们交流,欢迎登陆我们的DFRobot创客社区!

Lesson6_1.ino

500 Bytes, 下载次数: 11, 下载积分: 创造力 -1

jiashe2011  见习技师

发表于 2017-2-22 00:53:58

学习6!!!!
回复 支持 反对

使用道具 举报

zhouyu77642017  学徒

发表于 2018-8-9 09:18:37

学习了
回复 支持 反对

使用道具 举报

uzi  见习技师

发表于 2018-10-18 19:49:37


请问需要买那些东西?
回复 支持 反对

使用道具 举报

gada888  版主

发表于 2018-10-28 10:14:44

有趣,学习了。
回复 支持 反对

使用道具 举报

小飞侠_  见习技师

发表于 2019-7-9 00:44:52

学习6!!!!
回复 支持 反对

使用道具 举报

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

本版积分规则

为本项目制作心愿单
购买心愿单
心愿单 编辑
wifi气象站

硬件清单

btnicon
我也要做!
点击进入购买页面
上海智位机器人股份有限公司 沪ICP备09038501号-4

© 2013-2019 Comsenz Inc. Powered by Discuz! X3.4 Licensed

mail