Arduino I/O函数库

Arduino板上的引脚可以配置为输入或输出。我们将在这些模式下解释引脚的功能。重要的是要注意,大多数Arduino模拟引脚可以按照与数字引脚完全相同的方式进行配置和使用。

引脚配置为INPUT

Arduino引脚默认配置为输入,因此在使用它们作为输入时,不需要使用**pinMode()**显式声明为输入。以这种方式配置的引脚被称为处于高阻抗状态。输入引脚对采样电路的要求非常小,相当于引脚前面的100兆欧的串联电阻。

被配置为**pinMode(pin,INPUT)**的引脚(没有任何东西连接到它们,或者有连接到它们而未连接到其他电路的导线),报告引脚状态看似随机的变化,从环境中拾取电子噪音或电容耦合附近引脚的状态。

上拉电阻

如果没有输入,上拉电阻通常用于将输入引脚引导到已知状态。这可以通过在输入端添加上拉电阻(到5V)或下拉电阻(接地电阻)来实现。10K电阻对于上拉或下拉电阻来说是一个很好的值。

使用内置上拉电阻,引脚配置为输入

Atmega芯片内置了2万个上拉电阻,可通过软件访问。通过将pinMode()设置为INPUT_PULLUP可访问这些内置上拉电阻。这有效地反转了INPUT模式的行为,其中HIGH表示传感器关闭,LOW表示传感器开启

当将传感器连接到配置为INPUT_PULLUP的引脚时,另一端应接地。在简单开关的情况下,这会导致当开关打开时引脚变为高电平,当按下开关时引脚为低电平。上拉电阻提供足够的电流来点亮连接到被配置为输入的引脚的LED。如果项目中的LED似乎在工作,但很昏暗,这可能是发生了什么。

控制引脚是高电平还是低电平的相同寄存器(内部芯片存储器单元)控制上拉电阻。因此,当引脚处于INPUT模式时,配置为有上拉电阻导通的引脚将被开启;如果引脚通过pinMode()切换到OUTPUT模式,引脚将配置为高电平。这也适用于另一个方向,如果通过pinMode()切换到输入,则处于高电平状态的输出引脚将设置上拉电阻。

pinMode(3,INPUT) ; // 不使用内置上拉电阻将引脚设置为输入
pinMode(5,INPUT_PULLUP) ; // 使用内置上拉电阻将引脚设置为输入

引脚配置为OUTPUT

通过pinMode()配置为OUTPUT的引脚被认为处于低阻抗状态。这意味着它们可以向其他电路提供大量的电流。Atmega引脚可以向其他器件/电路提供(提供正电流)或吸收(提供负电流)高达40mA(毫安)的电流。这是足以点亮LED或者运行许多传感器的电流(不要忘记串联电阻),但不足以运行继电器,螺线管或电机。

pinMode()函数

pinMode()**函数用于将特定引脚配置为输入或输出。可以使用INPUT_PULLUP模式启用内部上拉电阻。此外,INPUT模式显式禁止内部上拉。

pinMode()函数语法

Void setup () {pinMode (pin , mode);
}
  • pin 你希望设置模式的引脚的编号
  • mode INPUT,OUTPUT或INPUT_PULLUP。

示例

int button = 5 ; // button connected to pin 5
int LED = 6; // LED connected to pin 6void setup () {pinMode(button , INPUT_PULLUP); // 用上拉电阻将数字引脚设置为输入pinMode(button , OUTPUT); // 将数字引脚设置为输出
}void setup ()
{If (digitalRead(button ) == LOW) // 如果按钮被按下 {digitalWrite(LED,HIGH); // turn on leddelay(500); // delay for 500 msdigitalWrite(LED,LOW); // turn off leddelay(500); // delay for 500 ms}
}

digitalWrite()函数

digitalWrite()函数用于向数字引脚写入HIGH或LOW值。

如果该引脚已通过pinMode()配置为OUTPUT,则其电压将被设置为相应的值:HIGH为5V(或3.3V在3.3V板上),LOW为0V(接地)。

如果引脚配置为INPUT,则digitalWrite()将启用(HIGH)或禁止(LOW)输入引脚的内部上拉。建议将pinMode()设置为INPUT_PULLUP,以启用 内部上拉电阻。

如果不将pinMode()设置为OUTPUT,而将LED连接到引脚,则在调用digitalWrite(HIGH)时,LED可能会变暗。在没有明确设置pinMode()时,digitalWrite()将启用内部上拉电阻,这就像一个大的限流电阻。

digitalWrite()函数语法

Void loop() {digitalWrite (pin ,value);
}
  • pin 你希望设置模式的引脚的编号
  • value HIGH或LOW。

示例

int LED = 6; // LED connected to pin 6void setup () {pinMode(LED, OUTPUT); // set the digital pin as output
}void setup() { digitalWrite(LED,HIGH); // turn on leddelay(500); // delay for 500 msdigitalWrite(LED,LOW); // turn off leddelay(500); // delay for 500 ms
}

analogRead()函数

Arduino能够检测是否有一个电压施加到其引脚,并通过digitalRead()函数报告。开/关传感器(检测物体的存在)和模拟传感器之间存在一个差异,模拟传感器的值连续变化。为了读取这种类型的传感器,我们需要一个不同类型的引脚。

在Arduino板的右下角,你会看到6个标记为“Analog In”的引脚。这些特殊引脚不仅可以告知是否有电压施加给它们,还可以告知它们的值。通过使用**analogRead()**函数,我们可以读取施加到其中一个引脚的电压。

此函数返回0到1023之间的数字,表示0到5伏特之间的电压。例如,如果施加到编号0的引脚的电压为2.5V,则analogRead(0)返回512。

analogRead()函数语法

analogRead(pin);

pin - 要读取的模拟输入引脚的编号(大多数电路板上为0至5,Mini和Nano上为0至7,Mega上为0至15)

示例

int analogPin = 3;// 电位计游标(中间端子)// 连接到模拟引脚3
int val = 0; // 变量来存储读取的值void setup() {Serial.begin(9600); // setup serial
} void loop() {val = analogRead(analogPin); // read the input pinSerial.println(val); // debug value
}

适合arduino小白入门的最基础的函数教程相关推荐

  1. 小白入门!网络安全基础知识详解(附知识问答)

    小白入门!网络安全基础知识详解(附知识问答) 一.引论 提到网络安全,一般人们将它看作是信息安全的一个分支,信息安全是更加广义的一个概念:防止对知识.事实.数据或能力非授权使用.误用.篡改或拒绝使用所 ...

  2. Java新手小白入门篇 Java基础(一)

    Java新手小白入门篇 Java基础 Java新手小白入门篇 Java基础(知识点体系汇总) Java新手小白入门篇 Java基础(一) Java新手小白入门篇 Java基础(二) Java新手小白入 ...

  3. nas java_小白入门NAS—快速搭建私有云教程系列(一)

    什么是NAS 在日常的工作生活中,我们有大量的资料.文件需要存储在电脑或者其他终端设备中,但是这种方式需要电脑配备高容量的硬盘,而且需要随时随地的带着,这样是不是很麻烦? 那么,今天,我来介绍一种家庭 ...

  4. C++音视频开发核心知识,小白入门必看基础知识

    经常收到一些网友的来信或者留言,反馈如下这样的困惑: "我是一名应届毕业生,该如何快速地成长起来" "我只懂 C/C++,是学 Android 开发有前途,还是 iOS ...

  5. 适合新手小白入门的前端书籍

    总所周知,学习前端肯定离不开书籍的辅导,很多新手小白不知道该怎么选择,以及是否选对了书籍,本文就以过来人身份,给大家推荐一下新手小白学习过程中需要或可以用到的书籍. 一,html+css阶段: 1.& ...

  6. 小白入门使用Nginx基础的常用操作

    2019独角兽企业重金招聘Python工程师标准>>> nginx启动,重启,关闭命令 停止操作 停止操作前需要ps当前Nginx的所有进程 步骤1:查询nginx主进程号 ps - ...

  7. javapython学习教程_清华学霸推出适合所有小白的python+Java学习路线和教程,超赞...

    临近开学季,很多小伙伴选择了IT专业,但是在众多编程 面前,很多同学都比较迷茫,无从下手,接下俩小编想说两句!(希望大家可以把本文认真看完,对所有人帮助都会大) IT行业飞速发展,除了水涨船高的薪资水 ...

  8. 小白入门NAS—快速搭建私有云教程系列(一)

    什么是NAS 在日常的工作生活中,我们有大量的资料.文件需要存储在电脑或者其他终端设备中,但是这种方式需要电脑配备高容量的硬盘,而且需要随时随地的带着,这样是不是很麻烦? 那么,今天,我来介绍一种家庭 ...

  9. python语法速成方法_一天快速入门Python语法基础之函数

    #一.定义函数 defHello():print("hello") Hello()#调用函数 #1.实参和形参 def Hello(name): #name是形参 print(&q ...

  10. MySQL8.0 小白入门 46条sql语句练习(学生表 教师表 课程表 分数表)

    4 Tab for MySQL8.0 1.表说明 2.创建表 3.插入数据 4.查询语句(46条) 1.表说明 – 数据库版本:mysql8 – 数据表说明:student(学生表).teacher( ...

最新文章

  1. 为了熟练掌握动态SQL你必须要知道Mybatis中的OGNL表达式
  2. 10 个适合网店使用的免费 Bootstrap 模板
  3. 晚安科大20211130
  4. P4309-[TJOI2013]最长上升子序列【Splay】
  5. iOS 自定义view里实现控制器的跳转
  6. 2022牛客寒假算法基础集训营6 签到题5题(附基础集训营4-6签到题总结)
  7. 铭瑄显卡不支持Linux,铭瑄主板bios设置显卡方法
  8. JVM Learning Note 4 -- HotSpot JVM Options List
  9. html输入公式得到混合运算结果,EXCEL公式与函数教案
  10. 最土团购系统常见问题的汇总
  11. 史上最全echarts可视化图表详解
  12. semiplannar 什么是_图像识别VPU——易用的嵌入式AI支持深度学习平台介绍
  13. 【小迪安全】web安全|渗透测试|网络安全 | 学习笔记-5
  14. 第十四章 - 垃圾回收概述
  15. 以EV录屏为例详细讲解-录屏,开直播的全局配置
  16. TIME_WAIT和CLOSE_WAIT状态区别
  17. python访问陌生人qq空间_在Python中使用Phantomjs模拟登录QQ空间
  18. android自动微信支付平台,Android实现微信支付功能
  19. 这样的设计太妙了!K8S 神秘架构终于揭开面纱!
  20. sql-子查询当作字段返回提示至过多

热门文章

  1. 开机黑屏显示html,开机黑屏显示“This Product is covered by”解决方法
  2. 《SEM长尾搜索营销策略解密》一一2.10 小领域文化进入红利期
  3. 数据库update方法同时更新多条数据
  4. 第九届全国大学生机械设计创新大赛基于STM32F407的HMI USART串口屏智能药箱设计
  5. JavaScript经纬度和地图坐标相互转换
  6. python之获取星期字符串
  7. DeeCamp 2019 Exam A 纪实
  8. 2019DeeCamp夏令营总结
  9. 【电子商务法】北邮国际学院大三上期末复习
  10. 基于java的小额支付管理平台