Arduino-UNO
下面这张图就是Arduino UNO面板,它最重要的就是上下两排红框部分了,上面的是数字接口,下面的是模拟接口,除开这两类接口以外剩下的就是一些普通的玩意儿了。下面一一对这些结构进行讲解: 图1
1)14个数字接口:数字接口从图上可以看到总共有14个(0~13号),0号和1号口属于串口通信用的,一般我们不去占用;从2号口到13号口是我们可随意使用的数字接口数字接口可以读取数字信号,也可以输出数字信号,而在2到13号口中带有“~”符号的接口代表它不仅可以输出高电平和低电平信号,也可以输出调制的模拟信号,不带“~”符号的接口就只能输出5V高电平或者0V低电平(这里不深究高低电平的细节,因为事实上对于TTL型的接口高低电平并不严格等于5V和0V,而CMOS型的高低电平则是5V和0V,Arduino上的数字引脚属于TTL型所以严格的讲它们输出的高低电平是有一个误差范围的只要在这个误差范围之内Arduino都认可而不会误判)。输出高电平和低电平很好理解,你可以理解为只能输出5V和0V。这里需要讲解一下的是什么叫“调制模拟信号”,调制模拟信号就是通过在一段时间内来回切换高低电平从而控制这段时间内高低电平出现的时间比例,高电平出现的时间比例越多那么输出电压就越接近5V高电平,低电平出现的时间比例越多输出电压就越接近0V低电平。而这个所谓的时间比例就是所谓的“占空比”。如图2所示,0%的占空比就意味着在一段时间内全是低电平输出,这个时候输出当然就是0V;而100%的占空比就是说这段时间内全是高电平输出,输出当然就是5V;而50%占空比意味着这段时间内一半时间是高电平一半时间是低电平,由于高电平的出现时间占到了50%,所以叫50%占空比。那么这个时候输出是多少V呢?我们高中学过一个概念叫等效值,我们说占空比50%的时候输出的电压就是它的等效电压,没记错的话应该是二分之一,为2.5V(不明白的同学回顾一下等效电压或者等效电流,这里就不讲了,属于基本数学问题,不过其实你忘了也不影响你理解Arduino,所以无所谓了)。也就是说占空比50%的一段信号包含的能量等于在同样时间段内不间断输出2.5V电压所包含的能量,所以你看多妙,通过这种方法我们只通过输出5V和0V就可以得到其他值的电压了。
有的同学会问:那是不是意味着用Arduino可以得到0V到5V之间任意一个电压值呢?其实答案是对于Arduino UNO而言是不能的,你只能获得0V到5V之间255个等分点上的电压值。为啥?看图2,我们可以看到图2中把0~100%分成了6份,分别是0%,10%,25%,50%,80%,100%,那我们当然可以比图2分的更细,50份都行,也就是每隔2%我设置一份,这样为了方便点名我就需要一个计数器来计数,目的是给不同占空比命名,如果分了50份那就需要一个能存储50个数字的计数器,然后计数器记1代表2%占空比,计数器记2代表4%占空比,以此类推一直到计数器记50代表100%占空比,这里的1,2,50其实就是占空比2%,4%和100% 的名字,以后只要你告诉单片机说给我运行1号占空比,那么就会自动设置2%的占空比。So far so good, 不过现实中Arduino用了一个8位的二进制空间来充当这个计数器,见图3(8位就是8个bit,计算机最小计数单位,8个bit是一个byte,一个汉字占用两个byte),这个计数器最多可以记多少数呢?00000001,00000010,00000011…如此下去总共27+26+…2^0=255个,于是乎0%到100%占空比之间可以分出总共255份,所以理论上Arduino可以模拟0V到5V之间的255等份的电压值。所以你看到,要想约精确地得到0V到5V之间的值,就需要用越大的空间来计数。好了,数字输入输出讲完了,接下来讲模拟接口。

图2
图3
2)6个模拟接口:Arduino下方A0,A1…,A5这几个带A的接口就是模拟接口。需要点出一下的是模拟接口只能读取不能输出模拟量(其实也可以输出,不过只能输出5V和0V,并且模拟接口输出的是CMOS信号而非数字接口那种TTL信号),总之呢我们基本上是用模拟接口接收传感器信号就对了,模拟接口是否有其余的功能目前我也还没用到。好,大家肯定会问一个模拟信号是怎么通过模拟接口传入单片机的呢?单片机只认0和1这种数字信号,它怎么认得模拟信号?其实这里面用的是一个“映射”的方式来实现模数转换的。具体的模数转换电路我也不懂不过这不妨碍我们去理解它的工作方式。记住一句话:在学习过程中不要过于计较背后的硬件原理,而要把理解力专注在硬件的工作方式上,这一点很重要不然会学的很痛苦且进入死胡同。这个模数转换的工作方式其实就和前面的数字接口里讲到的“计数器”差不多,不同的是模拟接口里面的模数转换器用的是一个10位二进制空间,如图4所示。所以按照二进制的计算方法我们可以知道这个10位二进制空间总共可以计量29+28+…+21+20=1023个数字.按照十进制的表述就是说我们总共可以用这个计数器获得0,1,2…,1023这些个数字标签,接下来需要做的就是把这些数字标签一一对应上外部传入的模拟信号值,这就叫映射了。例如,我们输入一个5V的电平,那么模数转换器会自动把0对应0V,1023对应5V,然后我们可以算出5V/1023=0.0048V=4.8mV,所以1对应4.8mV,2对应9.6mV,以此类推一直到5V。可见这里面的分辨率是4.8mV,也就是说我们通过这种方法可以辨认出0V到5V之间的电平,例如2.5V就会对应到512这个数字上,然后将512这个数字传入单片机,单片机就知道原来输入了一个2.5V电压。此外还需要讲一点,Arduino模拟接口可输入的电平最高就是5V,再高就会烧坏板子,所以在开发过程中需要确认传感器传入的电平高低,太高了就要降压。

图4
好了,模拟引脚和数字引脚全讲完了,第一部分最重要的内容也结束了,有人问我看了半天大概也明白了说的内容,可有啥用呢?为啥模拟引脚和数字引脚最重要?因为理论上你已经可以搭建系统了。比如你可以做一个可控亮度的LED小灯。如图5图6,你可以通过调节电位器来变换LED灯的亮度。下一期我会以此为例更进一步讲解,不过在此之前第一部分还没结束,剩下的几个Arduino UNO的结构我会快速介绍一下。
3)USB接口:有两个功能 a. 用来给Arduino供电 b. 和电脑串口通信。串口通信是一个非常重要的内容后面会介绍。
4)外部电源接口:也是用来给Arduino供电的,和USB的区别在于你可以把电池通过这个接口插上供电。不过记得电压得是5V。
5)工作状态灯:如果L和On两个灯亮,则说明Arduino在工作。
6)TX,RX灯:这两个灯和串口通信有关,TX闪说明Arduino正通过串口通信发送信息,RX闪说明Arduino正通过串口通信接受信息。
好了第一部分结束~下课!

图5

Arduino-UNO相关推荐

  1. 利用AVR单片机 专用下载 USBtinyISP对Arduino UNO下载程序

    简 介: 测试了利用USBtinyISP对于Arduino UNO,也就是ATmega系列的单片机下载Bootloader的过程.通过测试可以看到,利用USBtinyISP可以更快的下载ATmega系 ...

  2. 从0 开始 DIY你的Arduino UNO

    简 介: 通过实验,验证了利用CH340C制作Arduino UNO最小系统的电路正确性.利用Arduino的IDE对于制作的电路板下载Bootloader的时候,选择开发板为Arduino UNO, ...

  3. 【arduino】arduino ISP下载程序方法,用arduino uno给M5 Module DC MOTOR下载程序

    微信关注 "DLGG创客DIY" 设为"星标",重磅干货,第一时间送达. 今天用arduino uno给M5的Module DC motor下载程序,别的就不多 ...

  4. ESP32cam蓝牙模块与arduino uno通信实验

    网上关于esp32cam与arduino通信的资料几乎没有,有的还得付费,于是自己动手琢磨,实验成功. 实验有多个版本,成功实现蓝牙收到数据后发送单个字符给arduino板,匹配到对应字符亮对应颜色的 ...

  5. arduino电源接口直径多大_求助:Arduino UNO(如下图)有三种供电方式:USB供电,5v(供应芯片,下面一排接口中“...

    1.首先在你的电脑上插上"aroduino",这时候电脑右下角就会显示出来: 插上"aroduino" 2.因为找不到驱动,所以过一会就会看到提示"未 ...

  6. Arduino UNO WIFI开发板,学习必备开发套件

    Arduino Uno Wi-Fi是一款带有集成式Wi-Fi模块的新型Arduino Uno板!该板基于ATmega328P(数据手册),具有集成式ESP8266 Wi-Fi模块(数据手册).它拥有1 ...

  7. arduino的esp32程序无法上传_原装正版arduino uno R3无法上传程序

    RT,本人在网络上买的原装意大利产正版Arduino uno R3(售价159RMB,坏了很可惜,实在找不到问题所在.)无法上传程序. 已排除问题如下:1.驱动已正确安装 端口.PNG (2.12 K ...

  8. arduinowin7_win7系统64位系统安装Arduino uno R2 驱动的方法

    恶心的ghost win7 好久没有折腾arduino uno了,今天拿出来准备折腾一下DHT11温度模块,结果悲剧了-因为前期重装了系统,用的Ghost win7 64位,结果ghost系统安装ar ...

  9. Arduino笔记-Arduino UNO与WeMos D1串口通信(数据交互)

    原理图是这样的: 设备A代表Arduino UNO设备B代表WeMos D1. 实际连接图如下: 程序运行截图如下: 这个是Arduino上的串口打印,前面那个S表示Arduino发送字符S,当接收到 ...

  10. arduino uno 掌控板实现数据上传到阿里云平台

    实验原理:arduino uno采集数据,通过UART接口发送数据到掌控板,掌控板连接阿里云,发送数据到阿里云. 硬件:arduino uno Mind+ 软件平台:arduino ide Mind+ ...

最新文章

  1. 《Visual C++ 开发从入门到精通》——1.4 技术解惑
  2. hdu4990 矩阵快速幂
  3. BZOJ 2049: [Sdoi2008]Cave 洞穴勘测
  4. python概念英文版_和我一起学python,基本概念 (life is short ,we need python)
  5. postgres xshell copy 命令 内存溢出_良心国产工具,比Xshell好用还免费!
  6. 【转】如何在编程生涯中有一个好的开端
  7. mysql必知必会_5天学完《MySQL必知必会》学习笔记之第四天
  8. mmap从低向高增长的legacy模式和从高向低增长的modern模式
  9. A5如何备份oracle数据库,oracle的数据库的导入导出
  10. OpenXml开发-向文档中添加样式
  11. python 迭代器 生成器 区别_Python的生成器和迭代器之间的区别
  12. 网络神偷 v7.6 免费
  13. 笔记本开机循环显示:this product is covered by one or more of the following patents 解决办法
  14. 脚本小子_python数据类型代码
  15. 回首2013,寄语步入社会的我——自强不息,厚德载物
  16. IT行业产品经理和项目经理的区别?
  17. 应用VB语言程序生成十个随机数
  18. BOX物联网盒子的作用和调试程序
  19. 学习记录,linux使用wget命令实现整站下载
  20. 币须知道 |马云又抢占了一块高地,蚂蚁金服区块链跨境汇款正式落地,2018世界杯板块排名涨幅第一...

热门文章

  1. docker安装gitlab中文版(gitlab-ce:11.3.0-ce.0社区版)
  2. Solo 博客搭建指南
  3. 7代cpu能装虚拟xp系统吗_小米手机最新系统MIUI 11 推荐
  4. Oracle ERP 11i中英对照词汇表(转)
  5. C++(类与对象)虚函数实现多态求长方体和圆柱体的体积
  6. 职高计算机论文,浅谈职高计算机的教学--专业论文.doc
  7. Timeon云网管给出网络时间黑洞解法
  8. 框架学习——带你了解SpringBoot框架
  9. C语言之printf简介
  10. C语言程序设计实验14,C语言程序设计——实验.doc