第十五课--Microduino 数码管实验二-电位器控制/zh

来自Microduino Wikipedia
Pkj讨论 | 贡献2014年2月21日 (五) 05:50的版本 设备
跳转至: 导航搜索

目的

本教程将教大家如何在Microduino上使用数码管,并电位器来控制显示数字,在网上找到一个好用的数码管的驱动库,这样就能比较轻松惬意的玩数码管了,简单介绍数码管的库,和在语法手册里学会的一个新函数 map()

设备

  • Microduino-Core
  • Microduino-FT232R
  • 其他硬件设备
    • 面包板跳线 一盒
    • 面包板 一块
    • 数码管 一个
    • 电位器 一个
    • 10kO电阻 一个
    • USB数据连接线 一根

电位器

第十五课-电位器.jpg

简介:

  电位器 (英文:Potentiometer)是可变电阻器的一种。通常是由电阻体与转动或滑动系统组成,即靠一个动触点在电阻体上移动,获得部分电压输出。

作用:

  调节电压(含直流电压与信号电压)和电流的大小。

电位器的结构特点:

  电位器的电阻体有两个固定端,通过手动调节转轴或滑柄,改变动触点在电阻体上的位置,则改变了动触点与任一个固定端之间的电阻值,从而改变了电压与电流的大小。

  电位器是一种可调的电子元件。它是由一个电阻体和一个转动或滑动系统组成。当电阻体的两个固定触点之间外加一个电压时,通过转动或滑动系统改变触点在电阻体上的位置,在动触点与固定触点之间便可得到一个与动触点位置成一定关系的电压。它大多是用作分压器,这时电位器是一个四端元件。电位器基本上就是滑动变阻器,有几种样式,一般用在音箱音量开关和激光头功率大小调节电位器是一种可调的电子元件。

  用于分压的可变电阻器。在裸露的电阻体上,紧压着一至两个可移金属触点。触点位置确定电阻体任一端与触点间的阻值。按材料分线绕、碳膜、实芯式电位器;按输出与输入电压比与旋转角度的关系分直线式电位器(呈线性关系)、函数电位器(呈曲线关系)。主要参数为阻值、容差、额定功率。广泛用于电子设备,在音响和接收机中作音量控制用。

原理图

第十五课-Microduino电位器控制数码管原理图.jpg

电位器一共有3个引脚,中间的为地线,左右分切时电源线和信号线,左右是部分的。

程序

/*  
     作用:Microduino驱动数码管使用电位器旋转调整数值
     
     
     
    7段数码管具体表现方法如下
          
               A
              ____
             |    |
          F  |____|  B
             | G  |
          E  |____|  C
                    o DP
               D
              
          引脚分布情况是这样滴
          
          10 9 8 7 6
           ________
          |   __   |
          |  |__|  |
          |  |__|o |
          |________|
          
          1 2 3 4 5  
          
          * 
          * 首先看3和8这两个管脚,一般是共级,套件是共阳数码管,所以这两个是+极,两个引脚其实是接在一起的,所以我们使用其中一个即可
          * 1 (E) 接到Microduino的 10号引脚
          * 2 (D) 接到Microduino的 9号引脚
          * 3 因为我们只使用1位数码管,所以请将本引脚或者8号引脚的任意一个接到Microduino的5号数字口即可
          * 4 (C) 接到Microduino的 8号引脚
          * 5 (DP) 接到Microduino的13号引脚
          * 6 (B) 接到Microduino的7号引脚
          * 7 (A) 接到Microduino的6号引脚
          * 8 因为我们只使用1位数码管,所以请将本引脚或者3号引脚的任意一个接到Microduino的5号数字口即可
          * 9 (F) 接到Microduino的11号引脚
          * 10 (G) 接到Microduino的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);     //数码管函数输出数字,其中数值为小数点所在位置,我放在第四格所以效果就是不显示小数点
      }

调试

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

库作者的发布页面:[1]

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

简单的介绍一下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.


步骤一:把代码复制到IDE中,编译

步骤二:电路连接,我们用一位共阳数码管电路图照片如下:

第十五课-Microduino电位器控制数码管连接图.jpg

步骤三:运行代码

结果

转动电位器,数码管将会显示从0到9。

视频