版主: wanchong , wangyu , eepwwp , firedom

分享到:
共145条 9/15 |‹ « 6 7 8 9 10 11 12 13 14 15 »   

RE: Edison教程系列+官方样例集合

kindyu
我是MM
普通会员

最后登陆时间:2015-01-14 10:52:31

81# 发表于 2014-10-26 15:21:32
楼主什么专业滴?

RE: Edison教程系列+官方样例集合

holgerqy
我是MM
普通会员

最后登陆时间:2015-01-14 10:52:32

82# 发表于 2014-10-26 16:32:36
不错学习下

RE: Edison教程系列+官方样例集合

xjverygood
我是MM
普通会员

最后登陆时间:2015-01-14 10:52:36

83# 发表于 2014-10-26 16:33:05
问一下,作为初学者做这个上手合适吗?

RE: Edison教程系列+官方样例集合

wangzaihu
我是MM
普通会员

最后登陆时间:2015-01-14 10:52:37

84# 发表于 2014-10-26 16:39:05
请给新的资料连接,以前的挂了

RE: Edison教程系列+官方样例集合

emmahou
我是MM
普通会员

最后登陆时间:2015-01-14 10:52:38

85# 发表于 2014-10-28 13:08:08
好帖子,学习了。.

RE: Edison教程系列+官方样例集合

付秀彩
我是MM
普通会员

最后登陆时间:2015-01-14 10:52:39

86# 发表于 2014-10-28 13:08:14
楼主,继续更新啊,顶你哦

RE: Edison教程系列+官方样例集合

pengrui
我是MM
普通会员

最后登陆时间:2015-10-30 14:51:20

87# 发表于 2014-10-28 18:18:49
Edison教程系列03 灯光调节器
作者:Angelo 来自 DFRobot
http://www.dfrobot.com.cn/commun ... thread&tid=3288

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


所需元件
  •         1×  数字食人鱼红色LED发光模块
  • e01.jpg 
  •         1×  模拟角度传感器
  • 302.jpg 

  •         1×   IO 传感器扩展板 V7.1
  • e05.jpg 

  •          1×   英特尔® Edison for Arduino开发板
  •    e06.jpg 



硬件连接

模拟角度传感器 → 模拟0
数字食人鱼红色LED发光模块  数字9

305.jpg 


输入代码
  1. //灯光调节器
  2. int potPin = 0;                   //电位器连接到模拟0
  3. int ledPin = 9;                  //LED连接到数字9

  4. void setup() {
  5.        pinMode(ledPin, OUTPUT);
  6. }

  7. void loop() {
  8.   int sensorValue = analogRead(potPin);    //读取模拟口0的值       
  9.   //通过map()把0~1023的值转换为0~255
  10. int outputValue = map(sensorValue, 0, 1023, 0, 255);   
  11. analogWrite(ledPin, outputValue);   //给LED写入对应值        
  12.   delay(2);                     
  13. }
复制代码
缓慢旋转电位器,仔细观察LED的亮度是否发生变化。


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

307.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。

此帖由pengrui于2015-01-14 10:52:59最后编辑

RE: Edison教程系列+官方样例集合

haha3123
我是MM
普通会员

最后登陆时间:2015-01-14 10:52:40

88# 发表于 2014-10-28 18:58:28
顶一下楼主!

RE: Edison教程系列+官方样例集合

qqwerty
我是MM
普通会员

最后登陆时间:2015-01-14 10:52:42

89# 发表于 2014-10-28 19:12:22
顶楼主!

RE: Edison教程系列+官方样例集合

lcs142536刘
我是MM
普通会员

最后登陆时间:2015-01-14 10:52:42

90# 发表于 2014-10-28 19:26:28
必须得顶啊
共145条 9/15 |‹ « 6 7 8 9 10 11 12 13 14 15 »   
快速回复主题
  • 匿名不能发帖!请先 [ 登陆 注册 ]