Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Arduino数字引脚作为GPIO的使用

Arduino数字引脚作为GPIO的使用

作者头像
云深无际
发布于 2020-08-18 07:02:19
发布于 2020-08-18 07:02:19
2.1K00
代码可运行
举报
文章被收录于专栏:云深之无迹云深之无迹
运行总次数:0
代码可运行

引脚与GPIO的关系

引脚(pin)是对芯片的外部物理接口的一个称呼,它是在不把这个物理接口投入到具体应用场合下的称呼。例如,我们可以说,某某芯片的P1.5引脚可以作为数字输出驱动外部数字设备,也可以作为串口接受引脚接受串口数据。那么P1.5就是一个引脚(pin),而作为数字输出,UART的RX就是这个引脚的2个功能。

所以我们可以发现: 1、大多数MCU的引脚都不止一个功能。不同引脚内部结构不一样,拥有的功能也不一样。通过不同的配置,切换引脚的实际功能。 2、不是所有的引脚都能在程序中使用,比如芯片的Vcc和GND,除了供电,就没做其他的用处。

数字引脚函数

pinMode(pin, mode) 作用:设置一个引脚(pin)作为GPIO时的I/O模式。 参数: pin:引脚编号 mode:GPIO的I/O模式,取值有3种 INPUT :作为数字输入 OUTPUT :作为数字输出 INPUT_PULLUP:作为数字输入,且使能引脚的内部上拉电阻 Arduino的引脚,在上电时默认就是输入模式,但最好使用pinMode设置,更加明确。 当配置引脚为数字输入模式时,引脚表现为高阻抗状态,引脚内部的电流非常小,就如同在引脚前接了一个100M欧姆的电阻一样。这也意味外部转换引脚的电平只需很小的电流输入即可。 当使用INPUT模式时,引脚作为数字输入,但是不连接任何的拉电阻,处于悬空转态,容易受电子噪声干扰而随机的改变其电平状态。一般来说,当引脚作为数字输入使用时,都让引脚连接一个拉电阻:上拉电阻(引脚电平拉高到+5V或者+3.3V)或者下拉电阻(引脚电平拉低到GND)。可以使用Arduino引脚内部的上拉电阻(绝大多数AVR芯片为20K~50K,而Due则是50K~150K,具体参考MCU的数据手册),或者自己外接拉电阻,外接拉电阻阻值一般使用10K的。

关于上拉和下拉电阻,可以参考-->上拉电阻和下拉电阻 当使用INPUT_PULLUP模式时,引脚作为数字输入,且使能内部上拉电阻。13号引脚不建议作为数字输入引脚使用。因为13脚默认连接了一个板载的LED灯,即便是你使能了上拉电阻,LED的电阻会拉低电压,使得引脚依然是低电平。如果你非要使用13作为输入,那就外置拉电阻。 当使用OUTPUT模式时,引脚作为数字输出,引脚表现为低阻抗,输出的电流大,高达40mA,足够驱动一些基本的设备,如LED小灯。但不足以驱动马达等对电流要求很高的元件。 注: 1、引脚作为PWM输出时,无需先前使用pinMode配置其模式,因为PWM本身就代表了输出的意思。且官方库源代码中可以发现,它已经帮我们配置为输出了。

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
void analogWrite(uint8_t pin, int val)
{
    pinMode(pin, OUTPUT);
    if (val == 0){
        digitalWrite(pin, LOW);
    }
     //...
}

2、模拟引脚也可以作为数字引脚使用,完全OK。这在数字引脚不够用的情况下非常有用。

下面是示例代码

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
//使用模拟引脚A0作为数字输出驱动LED小灯,Blink程序。
int LEDpin  = A0;

void setup() {
  pinMode(LEDpin, OUTPUT);
  digitalWrite(LEDpin, LOW);
}

void loop() {
  digitalWrite(LEDpin, HIGH);
  delay(200);
  digitalWrite(LEDpin, LOW);
  delay(200);

}

digitalWrite(pin,value) 作用:设置一个数字输出引脚的输出电平值,HIGH或者LOW。 参数: pin:引脚编号。此引脚必须在之前使用pinMode设置为OUTPUT模式。 value:2个值 LOW:输出低电平 HIGH:输出高电平 int digitalRead(pin) 作用:读取一个数字输入引脚的电平值。 返回:HIGH(高电平)或者LOW(低电平)。 参数: pin:引脚编号。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-08-17,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
案例,不用写程序,QJ71MB91和欧姆龙温控器自动刷新通讯设置
大家好,下面关于Q系列Modbus模块-QJ71MB91利用自动刷新的方式进行通讯相关的一些操作进行一个说明。
自动化大师
2024/10/21
6830
案例,不用写程序,QJ71MB91和欧姆龙温控器自动刷新通讯设置
串口通信原理详解232、422\485,入门必看!
串口通讯(Serial Communication),是指外设和计算机间,通过数据信号线、地线等,按位进行传输数据的一种通讯方式。
混说Linux
2022/11/18
4.7K0
串口通信原理详解232、422\485,入门必看!
详解RS232、RS485、RS422、串口和握手
计算机与计算机或计算机与终端之间的数据传送可以采用串行通讯和并行通讯二种方式。由于串行通讯方式具有使用线路少、成本低,特别是在远程传输时,避免了多条线路特性的不一致而被广泛采用。
不脱发的程序猿
2021/01/20
2.3K0
西门子1200通过串口通讯读取仪表数据过程记录
整个通讯过程并不是很复杂,就是需要注意几个关键点。有几个地方需要做设置。对于第一次使用还是会耽搁不少时间的。
剑指工控
2021/11/09
2K0
硬件知识:串口通信基础知识介绍
在通信和计算机科学中,串行通信(Serial Communication)是一个通用概念,泛指所有的串行的通信协议,如RS232、RS422、RS485、USB、I2C、SPI等。
小明互联网技术分享社区
2023/01/08
3.7K0
硬件知识:串口通信基础知识介绍
超越连接:ZL-450边缘网关全面评测与应用案例
在现代工业自动化和智能设备管理的背景下,对实时数据通信与设备监控的需求日益增加。ZL450边缘网关作为一款先进的串口通信解决方案,不仅满足了这些要求,还通过其多样的连接性和高效的数据处理能力,为企业带来了显著的效率提升。本文将对ZL450进行深入的设备测评,探索其在实际应用中的表现及其对现代化工业生态的贡献。 ZL450边缘网关(以下简称ZL450) 是一款支持 TDD-LTE/FDD-LTE 通信和以太网通信的 RTU。支持TDD-LTE、FDD-LTE网络数据连接、静态 IP 地址和 DHCP 自动获取 IP 地址,同时可为用户提供数据传输、协议解析等功能。
拿我格子衫来
2024/07/15
2470
超越连接:ZL-450边缘网关全面评测与应用案例
[工具推荐]AccessPort 小巧的串口监控软件
尤其是通讯间歇性抽风的时候更加麻烦,借助AccessPort能快速定位硬件还是软件故障.
科控物联
2022/03/29
13.7K1
[工具推荐]AccessPort 小巧的串口监控软件
modbus协议讲解及实现_通俗易懂近义词
简单地说,在我们的单片机之间互相通信,以及单片机和上位机通信中,规定了不同的内容规范,这个规范是通信的双方都需要遵守的,这样就可以实现两者的通信。
全栈程序员站长
2022/11/07
1.8K0
modbus协议讲解及实现_通俗易懂近义词
modbus协议讲解及实现_MODBUS功能码
Modbus是一种单主站的主/从通信模式。Modbus网络上只能有一个主站存在,主站在 Modbus网络上没有地址,从站的地址范围为 0 – 247,其中 0 为广播地址,从站的实际地址范围为 1 – 247。 Modbus通信标准协议可以通过各种传输方式传播,如 RS232C、RS485、光纤、无线电等。 Modbus具有两种串行传输模式,ASCII 和 RTU。它们定义了数据如何打包、解码的不同方式。支持 Modbus 协议的设备一般都支持 RTU 格式。通信双方必须同时支持上述模式中的一种。
全栈程序员站长
2022/11/01
2.1K0
Modbus测试工具ModbusPoll与Modbus Slave使用方法「建议收藏」
Modbus Poll :Modbus主机仿真器,用于测试和调试Modbus从设备。该软件支持ModbusRTU、ASCII、TCP/IP。用来帮助开发人员测试Modbus从设备,或者其它Modbus协议的测试和仿真。它支持多文档接口,即,可以同时监视多个从设备/数据域。每个窗口简单地设定从设备ID,功能,地址,大小和轮询间隔。你可以从任意一个窗口读写寄存器和线圈。如果你想改变一个单独的寄存器,简单地双击这个值即可。或者你可以改变多个寄存器/线圈值。提供数据的多种格式方式,比如浮点、双精度、长整型(可以字节序列交换)。
全栈程序员站长
2022/08/14
20.1K0
Modbus测试工具ModbusPoll与Modbus Slave使用方法「建议收藏」
欧姆龙CP系列PLC做MODBUS RTU从站,一招搞定
大家好,今天我来给大家介绍一下CP系列PLC的串行通讯功能,具体是如何配置为MODBUS_RTU从站的。
自动化大师
2024/10/29
5150
欧姆龙CP系列PLC做MODBUS RTU从站,一招搞定
基于 RS232/422/485 总线 DVFRAME 和 MODBUS 通讯
1、个人经验,基于以太网的通讯协议,通讯速率由快到慢,依次顺序 TCP/IP, Pvi, ModbusTCP, OPC…
剑指工控
2021/11/09
1.4K0
基于 RS232/422/485 总线  DVFRAME 和 MODBUS 通讯
Modbus RTU 通讯之西门子Smart 200
在工业自动化领域使用最多的免费通讯协议就是Modbus协议,而小型自动化领域西门子PLC也是占据了很大的份额。
剑指工控
2021/11/09
2.9K0
Modbus RTU 通讯之西门子Smart 200
STM32通信接口RS485
RS485是美国电子工业协会(Electronic Industries Association,EIA)于1983年发布的串行通信接口标准,经通讯工业协会(TIA)修订后命名为TIA/EIA-485-A
韦东山
2022/11/28
1.1K0
STM32通信接口RS485
[个人用]电磁流量计标准MODBUS通讯协议(版本号: LMAGMODRTUV77)
版本号:LMAGmodRTUv77
科控物联
2022/03/29
2.8K0
[个人用]电磁流量计标准MODBUS通讯协议(版本号: LMAGMODRTUV77)
艾默生质量流量计通讯测试
相信很多人在工业现场经常会遇到流量控制,流量计量等需求,实现与PLC,DCS等系统的通讯。我们在流量计选型时,如果要实现多变量采集,建议选择通用的Modbus通讯方式,而非Hart通讯方式。当然也有人会说为什么不是FF总线或者Profibus通讯呢,前面说了“通用”,也有“通讯解决方案便宜”,“调试方便”等优点。
剑指工控
2021/11/09
1.4K0
modbus通讯协议解析
大家好,又见面了,我是你们的朋友全栈君。 1.什么是modbus协议,主要应用在哪些方面?(来源于: http://www.emtronix.com/product/ModBus_software.html ) Modbus协议是一种已广泛应用于当今工业控制领域的通用通讯协议。通过此协议,控制器相互之间、或控制器经由网络(如以太网)可以和其它设备之间进行通信。Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控设备方所使用的协议称为Modbus Master,从设备方使用的协议称为Modbus Slave。典型的主设备包括工控机和工业控制器等;典型的从设备如PLC可编程控制器等。Modbus通讯物理接口可以选用串口(包 括RS232和RS485),也可以选择以太网口。 2.modbus通信协议方式和数据包结构? ModBus 通讯协议分为 RTU(远方数据终端) 协议和 ASCII 协议:
全栈程序员站长
2022/09/14
1.7K0
实验---micro logix1400进行modbus通讯
在实际应用中,不可避免的会遇到通讯,modbus通讯就是日常应用频繁的通讯之一;本实验的目的就是利用micro logix1400的plc进行modbus通讯,plc作为主站,modbus salve软件作为从站,主站能够访问从站的数据;
剑指工控
2021/11/09
1.7K0
实验---micro logix1400进行modbus通讯
STM32F103学习笔记三 串口通信
本文参照正点原子STM32F1xx官方资料:《STM32中文参考手册V10》-第25章通用同步异步收发器(USART) 及 【STM32】串口通信基本原理(超基础、详细版) 单片机入门学习十 STM32单片机学习七 串口通讯
全栈程序员站长
2022/11/07
2.2K0
实战案例:手把手教你做三菱变频器MODBUS通讯
今天给大家介绍一下三菱变频器的485通讯,采用的是“MODBUS RTU/ACSII”通讯。Modbus协议是一种串行通信协议,最初由Modicon公司(现在的施耐德电气Schneider Electric)于1979年为使用可编程逻辑控制器(PLC)通信而发表。它已经成为工业领域通信协议的业界标准,并且现在是工业电子设备之间常用的连接方式。
自动化大师
2024/08/14
7930
实战案例:手把手教你做三菱变频器MODBUS通讯
推荐阅读
相关推荐
案例,不用写程序,QJ71MB91和欧姆龙温控器自动刷新通讯设置
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验