菜鸟日志4------关于Arduino的各类端口和I/O模式

一、数字输入/输出端口                                                                                                                        如下图所示,在 Arduino UNO R3 开发板中,标有数字1、0处的端口同时还分别标有字母TX、RX。它们是串口通信的引脚,一般情况下不会去占用。

   由于现在的电脑多数只有USB口,一般没有串口,所以在实现Arduino与用户电脑的通信时需要一个转换器(下面左图为Arduino与电脑连接的数据线)。上图中大椭圆圈住的为USB接口,可与电脑直接相连,小椭圆圈住的是将USB转换TTL(晶体管-晶体管逻辑电平)的芯片,官方板采用的是 Atmega 16U2 芯片。

 

转换的大致示意图

   还有一点,其他的2到13号数字引脚中有的带有“~”标志,意思是这些个端口也能进行模拟输出。不过这些引脚输出的不是真正的模拟信号,而是利用PWM(脉冲宽度调制)技术近似拟合成的信号。

二、模拟输入端口

  带有大写字母A的引脚就是模拟输入端口(A是指Analog),这些引脚都配备有ADC(模数转换器),可以将外部输入的模拟信号(从引脚上读取到的电平值)转换为可在芯片内部运算的数字信号。Arduino UNO 可以接受 0 ~ 5V的模拟信号

  值得一提的是,Arduino UNO 的模拟输入/输出有精度限制即 0 ~ 5V的电压值只能用 0 ~ 255的数字表示,具体原因在于Arduino采用了8个bit大小的二进制空间来充当数据传输的计数器,也就是说该计数器只能计255个数,也恰好解释了此前做的模拟信号输入(利用按键开关控制LED的亮度)实验中,为何在代码中设置LED最高亮度不超过255的原因。同理,PWM波的脉冲范围上先也不会超过255,故模拟输出的幅值最高只能到255。

 三、电源端口

  当Arduino通上电源时,标有3.3V和5V的端口能分别提供3.3V、5V的电压,GND则是接地端口,在此不详细叙述。

四、I/O模式

输出:指信号从外部传输到Arduino;输入:指信号从Arduino传输到外部;(以Arduino为参照物

当然,Arduino要实现输入和输出离不开各端口/引脚,而Arduino程序中的 INPUT 和 OUTPUT 是用于控制数字引脚的两个常量

INPUT:通过pinMode()函数可以将某一数字引脚配置成输入模式,它用于让Arduino读取外部传输的数字信号。在该模式下,数字引脚将呈现高阻抗状态,也即接入一个高电阻(有外部电流流入,保护电路),从而使用digitalRead()函数来读取外部信号;

OUTPUT:同理,将数字引脚配置成输出模式后,它可让Arduino通过设置引脚电平的高低来控制外部设备,如LED、电机等等,具体要用到digitalWrite()函数。在该模式下,引脚呈低阻抗状态。

最后,对于模拟输入/输出而言,则在代码中使用analogRead()和analogWrite()函数来实现模拟信号的输入/输出,这两个函数内部能自动初始化引脚的模式,可以不用单独使用pinMode()函数。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值