arduino 各接口示意图

 

4个数字接口:数字接口从图上可以看到总共有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......如此下去总共2^7+2^6+......2^0=255个,于是乎0%到100%占空比之间可以分出总共255份,所以理论上Arduino可以模拟0V到5V之间的255等份的电压值。所以你看到,要想约精确地得到0V到5V之间的值,就需要用越大的空间来计数

 

  • 12
    点赞
  • 59
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值