Arduino 变量语法详解(含示例)一

本文详细介绍了Arduino编程中的变量使用,包括常量(如HIGH、LOW、INPUT、OUTPUT、true、false)、数据类型(void、boolean、char、byte等)及其转换、变量作用域(全局、局部、静态、volatile)和辅助工具sizeof()的用法。通过实例展示了如何在代码中声明和使用这些变量类型,帮助读者深入理解Arduino编程的基础知识。
摘要由CSDN通过智能技术生成

一、常量
1.1 HIGH | LOW(引脚电压定义)
1.2 INPUT | OUTPUT(数字引脚(Digital pins)定义)
1.3 true | false(逻辑层定义)
1.4 integer constants(整数常量)
1.5 floating point constants(浮点常量)
二、数据类型
2.1 void
2.2 boolean(布尔)
2.3 char(有号数据类型)
2.4 unsigned char(无符号数据类型)
2.5 byte(无符号数)
2.6 int(整型)
2.7 unsigned int(无符号整型)
2.8 word
2.9 long(长整数型)
2.10 unsigned long(无符号长整数型)
2.11 float(浮点型数)
2.12 double(双精度浮点数)
2.13 string(char array/字符串)
2.14 String object(String类)
2.15 array (数组)
三、数据类型转换
3.1 char()
3.2 byte()
3.3 int()
3.4 word()
3.5 long()
3.6 float()
四、变量作用域 & 修饰符
4.1 variable scope(变量的作用域)
4.2 static(静态变量)
4.3 volatile
4.4 const
五、辅助工具
5.1 sizeof()


一、常量

1.1 HIGH | LOW(引脚电压定义)

引脚电压定义,HIGH和LOW
当读取(read)或写入(write)数字引脚时只有两个可能的值: HIGH 和 LOW 。

HIGH
HIGH(参考引脚)的含义取决于引脚(pin)的设置,引脚定义为INPUT或OUTPUT时含义有所不同。当一个引脚通过pinMode被设置为INPUT,并通过digitalRead读取(read)时。如果当前引脚的电压大于等于3V,微控制器将会返回为HIGH。
引脚也可以通过pinMode被设置为INPUT,并通过digitalWrite设置为HIGH。输入引脚的值将被一个内在的20K上拉电阻 控制 在HIGH上,除非一个外部电路将其拉低到LOW。 当一个引脚通过pinMode被设置为OUTPUT,并digitalWrite设置为HIGH时,引脚的电压应在5V。在这种状态下,它可以 输出电流 。例如,点亮一个通过一串电阻接地或设置为LOW的OUTPUT属性引脚的LED。
LOW
LOW的含义同样取决于引脚设置,引脚定义为INPUT或OUTPUT时含义有所不同。当一个引脚通过pinMode配置为INPUT,通过digitalRead设置为读取(read)时,如果当前引脚的电压小于等于2V,微控制器将返回为LOW。 当一个引脚通过pinMode配置为OUTPUT,并通过digitalWrite设置为LOW时,引脚为0V。在这种状态下,它可以 倒灌 电流。例如,点亮一个通过串联电阻连接到+5V,或到另一个引脚配置为OUTPUT、HIGH的的LED。


1.2 INPUT | OUTPUT(数字引脚(Digital pins)定义)

数字引脚(Digital pins)定义,INPUT和OUTPUT
数字引脚当作 INPUT 或 OUTPUT都可以 。用pinMode()方法使一个数字引脚从INPUT到OUTPUT变化。

引脚(Pins)配置为输入(Inputs)

Arduino(Atmega)引脚通过pinMode()配置为 输入(INPUT) 即是将其配置在一个高阻抗的状态。配置为INPUT的引脚可以理解为引脚取样时对电路有极小的需求,即等效于在引脚前串联一个100兆欧姆(Megohms)的电阻。这使得它们非常利于读取传感器,而不是为LED供电。

引脚(Pins)配置为输出(Outputs)

引脚通过pinMode()配置为 输出(OUTPUT) 即是将其配置在一个低阻抗的状态。
这意味着它们可以为电路提供充足的电流。Atmega引脚可以向其他设备/电路提供(提供正电流positive current)或倒灌(提供负电流negative current)达40毫安(mA)的电流。这使得它们利于给LED供电,而不是读取传感器。输出(OUTPUT)引脚被短路的接地或5V电路上会受到损坏甚至烧毁。Atmega引脚在为继电器或电机供电时,由于电流不足,将需要一些外接电路来实现供电。


1.3 true | false(逻辑层定义

逻辑层定义,true与false(布尔Boolean常量)
在Arduino内有两个常量用来表示真和假:true和 false。

false
在这两个常量中false更容易被定义。false被定义为0(零)。

true
true通常被定义为1,这是正确的,但true具有更广泛的定义。在布尔含义(Boolean sense)里任何 非零 整数 为true。所以在布尔含义内-1,2和-200都定义为ture。 需要注意的是true和false常量,不同于HIGH,LOW,INPUT和OUTPUT,需要全部小写。


1.4 integer constants(整数常量)

整数常量是直接在程序中使用的数字,如123。默认情况下,这些数字被视为int,但你可以通过U和L修饰符进行更多的限制(见下文)。 通常情况下,整数常量默认为十进制,但可以加上特殊前缀表示为其他进制。

进制 例子 格式 备注
10(十进制) 123
2(二进制) B1111011 前缀’B’ 只适用于8位的值(0到255)字符0-1有效
8(八进制) 0173 前缀”0” 字符0-7有效
16(十六进制) 0x7B 前缀”0x” 字符0-9,A-F,A-F有效

小数是十进制数。这是数学常识。如果一个数没有特定的前缀,则默认为十进制。
二进制以2为基底,只有数字0和1是有效的。

示例
101 //和十进制5等价 (1 * 2 ^2 + 0 * 2^1 + 1 * 2^0)
二进制格式只能是8位的,即只能表示0-255之间的数。如果输入二进制数更方便的话,你可以用以下的方式:
myInt = (B11001100 * 256) + B10101010; // B11001100 作为高位。
八进制是以8为基底,只有0-7是有效的字符。前缀“0”(数字0)表示该值为八进制。
0101 // 等同于十进制数65 ((1 * 8^2) + (0 * 8^1) + 1)

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

沸腾石灰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值