本节书摘来华章计算机《Arduino开发实战指南:机器人卷》一书中的第2章 ,第2.2节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区“华章计算机”公众号查看。

2.2 模拟I/O口的操作函数

2.2.1 analogReference(type)
analogReference函数的作用是配置模拟输入引脚的基准电压(即输入范围的最大值),它是一个无返回值函数,只有一个参数type,type的选项有DEFAULT/INTERNAL/ INTERNAL1V1/INTERNAL2V56/EXTERNAL,其具体含义如下。

  • DEFAULT:默认5V或3.3V为基准电压(以Arduino板的电压为准)。
  • INTERNAL:低电压模式,使用片内基准电压源(Arduino Mega无此选项)。
  • INTERNAL1V1:低电压模式,以1.1V为基准电压(此选项仅针对Arduino Mega)。
  • INTERNAL2V56:低电压模式,以2.56V为基准电压(此选项仅针对Arduino Mega)。
  • EXTERNAL:扩展模式,以AREF引脚(0~5V)的电压作为基准电压,

其中AREF引脚的位置如图2.1所示。

设置模拟输入引脚的基准电压为默认值的语句如下:

analogReference (DEFAULT);

注意
使用AREF引脚上的电压作为基准电压时,需接一个5kΩ的上拉电阻,以实现外部和内部基准电压之间的切换。但总阻值会发生变化,因为AREF引脚内部有一个32kΩ电阻,接上拉电阻后会产生分压作用,因此,最终AREF引脚上的电压为,Varef为AREF引脚的输入电压。

2.2.2 analogRead(pin)

analogRead函数的作用是从指定的模拟引脚读取值,读取周期为100μs,即最大读取速度可达每秒10?000次。参数pin表示读取的模拟输入引脚号,返回值为int型(范围在
0~1023)。
Arduino Uno主板有6个通道(Mega有16个)10位AD(模数)转换器,即精度为10位,返回值是0~1023。也就是说输入电压为5V的读取精度为5V/1024个单位,约等于每个单位0.049V(4.9mV)。输入范围和进度可通过analogReference()进行修改。
如输入电压为a,那么获取模拟输入引脚3的电压值的示例程序如下:

int potPin = 3;
int value = 0;
void setup()
{Serial.begin(9600);
}
void loop()
{value = analogRead(potPin) *a*1000/1023;    // 输入电压是aSerial.println(value);                // 输出电压值的单位为mV
}

注意
对Arduino Uno而言,函数参数的pin范围是0~5,对应板上的模拟口A0~A5。其他型号的Arduino控制板以此类推。

2.2.3 analogWrite(pin,value)

analogWrite函数的作用是通过PWM的方式将模拟值输出到引脚,即调用analogWrite函数后,相应引脚将产生一个指定占空比的稳定方波(频率大约为490Hz),直到下一次调用该函数,可应用在LED亮度调节、电机速度控制等方面。
analogWrite函数是无返回值函数,有两个参数pin和value。参数pin表示将输出PWM的引脚,这里只能选择函数支持的引脚。对于大多数Arduino板(板载ATmega168或ATmega328),这个函数支持引脚3、5、6、9、10和11,对于ArduinoMega,它适用于2~13号引脚。参数value表示PWM输出的占空比,因为PWM输出位数为8,所以其范围在0(常闭)~255(常开)之间,对应占空比为0~100%。带PWM功能的引脚均标有波浪号“~”。
从引脚11输出PWM的示例程序如下:

int sensor=A0;
int LED=11;
int value;
void setup()
{ Serial.begin(9600);
}
void loop()
{  value =analogRead(sensor);Serial.println(value,DEC);    // 可以观察读取的模拟量analogWrite(LED, value /4);    // 读回的值范围是0~1023,结果除以4才能得到0~255的区间值
}

注意
引脚5和6的PWM输出将产生高于预期的占空比。这是因为millis()和delay()函数共享同一个内部定时器,使内部计时器在处理PWM输出时分心。这种情况一般出现在低占空比设置时,如0~10的情况下。还有些情况是占空比为0时,引脚5和6并没有关闭输出。

《Arduino开发实战指南:机器人卷》一2.2 模拟I/O口的操作函数相关推荐

  1. 《Arduino开发实战指南:机器人卷》一2.1 数字I/O口的操作函数

    本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第2章 ,第2.1节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  2. 《Arduino开发实战指南:机器人卷》一3.3 直流电机驱动电路原理

    本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第3章 ,第3.3节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  3. 《Arduino开发实战指南:机器人卷》一3.6 编程原理与示例程序

    本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第3章 ,第3.6节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  4. 《Arduino开发实战指南:机器人卷》一2.4 时间函数

    本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第2章 ,第2.4节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  5. 《Arduino开发实战指南:机器人卷》一3.2 直流电机工作原理

    本节书摘来华章计算机<Arduino开发实战指南:机器人卷>一书中的第3章 ,第3.2节,黄文恺 伍冯洁 陈 虹 编著更多章节内容可以访问云栖社区"华章计算机"公众号查 ...

  6. 《Arduino开发实战指南:LabVIEW卷》——3.5 LabVIEW的程序结构

    本节书摘来自华章计算机<Arduino开发实战指南:LabVIEW卷>一书中的第3章,第3.5节,作者:余崇梓著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看 ...

  7. 《Arduino开发实战指南:LabVIEW卷》——3.2 LabVIEW的数据流编程方法

    本节书摘来自华章计算机<Arduino开发实战指南:LabVIEW卷>一书中的第3章,第3.2节,作者:余崇梓著, 更多章节内容可以访问云栖社区"华章计算机"公众号查看 ...

  8. 《Arduino开发实战指南:LabVIEW卷》6.6 基于Arduino的弹珠游戏

    6.6 基于Arduino的弹珠游戏 6.6.1 实现的功能 本节将使用LabVIEW及Arduino设计实现一个简单的弹珠游戏.该弹珠游戏规则为,左右移动挡板,使弹珠在矩形区域内运动而不掉落到矩形区 ...

  9. 《Arduino开发实战指南:LabVIEW卷》6.3 基于Arduino的简易示波器

    6.3 基于Arduino的简易示波器 6.3.1 实现的功能 LabVIEW在测试测量方面是应用非常广的一款软件,本节以Arduino为信号采集硬件,设计一个简易的"示波器".能 ...

最新文章

  1. Hibernate的主键生成器generator(zhuan)
  2. 剑指offerpython_剑指offer系列python实现 日更(一)
  3. 湖南省计算机二级程序题库,湖南省计算机二级单选题题库(直接打印)
  4. 在ZC702上运行Linux(4)-编译和使用U-Boot Linux
  5. 结合zuul网关的鉴权流程
  6. 一个sql题目, 统计每年每月的信息
  7. 【转】30种MySQL索引优化的方法
  8. python实现单例模式的三种方式及相关知识解释
  9. 笔记--Spring in action
  10. extjs grid显示html,Extjs grid column里添加button等html标签,并增加点击事件
  11. 英语词汇辨异 —— 同音字
  12. 【R可视化】你家乡的肯德基都在哪儿?
  13. matlab 颜色代码 大全_空客 | 红、绿、蓝、白,各类颜色代码的含义
  14. 千方百剂医药管理系统对接第三方WMS系统(天力士物流)
  15. Python局域网内搭建文件共享服务器 上传文件
  16. android命令行启动,Android中使用am命令实现在命令行启动程序详解
  17. 微信开发之网页返回关闭浏览器
  18. xp电脑自动锁定计算机,WinXP系统如何设置电脑自动关机?
  19. 交叉销售(Cross-Selling)与链接分析
  20. PuTTY 中文教程A

热门文章

  1. [javascript]实现登陆界面拖动窗口
  2. linux日常笔记4
  3. 记忆化搜索(DFS+DP) URAL 1223 Chernobyl’ Eagle on a Roof
  4. CWnd的派生类-1、CFrameWnd类
  5. rrdtool源码安装(转)
  6. RDD文件读取与保存
  7. 大数据平台基本功能有哪些
  8. 哪些是常见的大数据分析模型
  9. photon 服务器操作系统,photon 云服务器
  10. java处理xls_Java处理Excel文件