Arduino教程入门系列-第二十四课-数码管显示器,使用电位器控制数字 显示器,教程,电位器,数码管

好久没写教程了,在网上找到一个好用的数码管的驱动库,这样就能比较轻松惬意的玩数码管了,所以将数码管翻出来玩一玩,简单介绍数码管的库,和在语法手册里学会的一个新函数 map()



首先介绍下库文件,需要解压缩后放到arduinoIDE目录的libraries内,然后重启arduinoIDE就能加载这个库了

库作者的发布页面:https://docs.google.com/file/d/0Bwrp4uluZCpNN1Q4dmFZX1MzWVE/edit


网盘下载SevSeg library 2.1.zip
http://pan.baidu.com/s/1dExdYV3




简单介绍一下,这个库,可以驱动四位数码管,支持显示数字与小数点,使用简单方便。具体请自己参悟研究



我们用这个库驱动我们的一位共阳数码管电路图如下:


arduino 教程



连线很简单,所以我们来插接出电路,以下就是我接的电路照片


arduino 教程





然后我写了一个小程序,主要用到了map()函数将A0口的0-1023数值映射到数码管的0-9这十个数字上,起到的效果就是我转动电位器,数码管显示对应位置的数字。



ARDUINO 代码复制打印

/*  
 作者:极客工坊-迷你强
 时间:2013年1月11日
 IDE版本号:1.0.1
 发布地址:www.geek-workshop.com
 作用:arduino驱动数码管使用电位器旋转调整数值
 
 
 
7段数码管具体表现方法如下
      
           A
          ____
         |    |
      F  |____|  B
         | G  |
      E  |____|  C 
                o DP
           D
           
      引脚分布情况是这样滴
      
      10 9 8 7 6 
       ________
      |   __   |
      |  |__|  |
      |  |__|o |
      |________| 
      
      1 2 3 4 5  
      
      * 怎么接到arduino上呢?
      * 首先看3和8这两个管脚,一般是共级,套件是共阳数码管,所以这两个是+极,两个引脚其实是接在一起的,所以我们使用其中一个即可
      * 1 (E) 接到arduino的 10号引脚
      * 2 (D) 接到arduino的 9号引脚
      * 3 因为我们只使用1位数码管,所以请将本引脚或者8号引脚的任意一个接到arduino的5号数字口即可
      * 4 (C) 接到arduino的 8号引脚
      * 5 (DP) 接到arduino的13号引脚
      * 6 (B) 接到arduino的7号引脚
      * 7 (A) 接到arduino的6号引脚
      * 8 因为我们只使用1位数码管,所以请将本引脚或者3号引脚的任意一个接到arduino的5号数字口即可
      * 9 (F) 接到arduino的11号引脚
      * 10 (G) 接到arduino的12号引脚
      
*/
 
#include "SevSeg.h"
SevSeg sevseg;
void setup() {
//定义需要使用的引脚
  sevseg.Begin(1,2,3,4,5,6,7,8,9,10,11,12,13);
 
}
 
void loop() {
  //激活输出功能
  sevseg.PrintOutput();
 int val = analogRead(A0);
 val = map(val,0,1023,0,9);    //使用map函数来做数值映射
 
    sevseg.NewNum(val, 4);     //数码管函数输出数字,其中数值为小数点所在位置,我放在第四格所以效果就是不显示小数点
  }



简单的介绍一下MAP函数

语法:

map(value, fromLow, fromHigh, toLow, toHigh)

参数:

value:需要映射的值

fromLow:当前范围值的下限

fromHigh:当前范围值的上限

toLow:目标范围值的下限

toHigh:目标范围值的上限

返回结果:

返回:被映射的值。



在程序中我们使用了map(val,0,1023,0,9),这段代码代表的是。判断val值在0-1023内的范围,然后输出0-9范围内对应的数值。



例如val为200,0-9为十等分,所以每一份为102.4。200刚好没有超出204.8的范围,所以输出数值是1.



最后老规矩,附上演示视频



via - 极客工坊

标签: Arduino教程