当前位置:首页Arduino > 正文

Arduino开发必备的编程知识

作者:野牛程序员:2024-06-05 07:35:27Arduino阅读 2221
Arduino开发必备的编程知识

1. 结构 (Structure)

在Arduino程序中,结构指的是程序的整体框架,包括程序的起始点和主要执行部分。

  • setup():

    • setup()函数是Arduino程序的初始化部分,程序开始运行时会首先执行该函数。通常在这里进行一次性的初始化设置,例如配置引脚模式、初始化变量等。

  • loop():

    • loop()函数是Arduino程序的主要执行部分,它会被无限循环执行,直到设备关闭或重新启动。在这个函数中,可以编写程序的主要逻辑,处理传感器数据、控制执行器等。

2. 控制结构 (Control Structures)

控制结构用于控制程序的执行流程,根据条件执行不同的代码块,或者根据循环次数执行代码块。

  • if:

    • if语句用于根据条件执行代码块,如果条件为真,则执行if后的代码块。

  • if...else:

    • if...else语句用于在条件为真时执行一个代码块,否则执行另一个代码块。

  • for:

    • for循环语句用于重复执行一段代码,通常用于已知循环次数的情况。

  • switch case:

    • switch case语句用于根据表达式的值执行不同的代码块,可以替代多个if...else语句。

  • while:

    • while循环语句用于在条件为真时重复执行一个代码块。

  • do... while:

    • do... while循环语句会先执行一次代码块,然后在条件为真时重复执行。

  • break:

    • break语句用于终止循环或switch语句的执行。

  • continue:

    • continue语句用于跳过循环中的当前迭代,继续下一次迭代。

  • return:

    • return语句用于从函数中返回一个值,并终止函数的执行。

  • goto:

    • goto语句用于无条件地转移到程序中的标签处。

3. 进一步的语法 (Further Syntax)

这一部分包括一些程序中常用的语法元素,例如分号、大括号、注释、预处理指令等。

  • ; (分号):

    • 分号用于标记语句的结束。

  • {} (大括号):

    • 大括号用于组合多个语句,形成一个代码块。

  • // (单行注释):

    • 双斜线用于在一行代码后添加注释,注释内容在双斜线后。

  • / / (多行注释):

    • /* */用于添加多行注释,注释内容在注释符号之间。

  • #define:

    • #define预处理指令用于定义一个宏。

  • #include:

    • #include预处理指令用于包含另一个文件的内容。

4. 算术运算符 (Arithmetic Operators)

算术运算符用于执行基本的数学运算,例如加法、减法、乘法和除法。

  • = (赋值运算符):

    • 将右边表达式的值赋给左边的变量。

  • + (加法):

    • 将两个数相加。

  • - (减法):

    • 从第一个数中减去第二个数。

  • * (乘法):

    • 将两个数相乘。

  • / (除法):

    • 将第一个数除以第二个数。

  • % (取模):

    • 返回第一个数除以第二个数的余数。

5. 比较运算符 (Comparison Operators)

比较运算符用于比较两个值之间的关系,并返回布尔值(true或false)。

  • == (等于):

    • 如果两个值相等,则返回true;否则返回false。

  • != (不等于):

    • 如果两个值不相等,则返回true;否则返回false。

  • < (小于):

    • 如果第一个值小于第二个值,则返回true;否则返回false。

  • > (大于):

    • 如果第一个值大于第二个值,则返回true;否则返回false。

  • <= (小于等于):

    • 如果第一个值小于或等于第二个值,则返回true;否则返回false。

  • >= (大于等于):

    • 如果第一个值大于或等于第二个值,则返回true;否则返回false。

6. 布尔运算符 (Boolean Operators)

布尔运算符用于对布尔值进行逻辑运算。

  • && (逻辑与):

    • 如果两个条件都为true,则返回true;否则返回false。

  • || (逻辑或):

    • 如果两个条件中有一个为true,则返回true;否则返回false。

  • ! (逻辑非):

    • 将布尔值取反,如果原始值为true,则返回false;如果原始值为false,则返回true。

7. 指针访问运算符 (Pointer Access Operators)

指针访问运算符用于操作指针变量。

  • * (解引用运算符):

    • 返回指针所指向地址的值。

  • & (取地址运算符):

    • 返回变量的地址。

8. 位运算符 (Bitwise Operators)

位运算符用于对二进制位进行操作。

  • & (按位与):

    • 如果两个位都为1,则返回1;否则返回0。

  • | (按位或):

    • 如果两个位中有一个为1,则返回1;否则返回0。

  • ^ (按位异或):

    • 如果两个位不相同,则返回1;否则返回0。

  • ~ (按位取反):

    • 对操作数的每个位取反。

  • << (左移位):

    • 将操作数的所有位向左移动指定的位数。

  • >> (右移位):

    • 将操作数的所有位向右移动指定的位数。

9. 复合赋值运算符 (Compound Operators)

复合赋值运算符结合了赋值运算符和算术运算符,用于简化代码并提高效率。

  • ++ (自增运算符):

    • 将变量的值增加1。

  • -- (自减运算符):

    • 将变量的值减少1。

  • += (加等于):

    • 将右侧的值加到左侧的变量上,并将结果赋给左侧的变量。

  • -= (减等于):

    • 将右侧的值从左侧的变量中减去,并将结果赋给左侧的变量。

  • *= (乘等于):

    • 将左侧的变量乘以右侧的值,并将结果赋给左侧的变量。

  • /= (除等于):

    • 将左侧的变量除以右侧的值,并将结果赋给左侧的变量。

  • &= (按位与等于):

    • 对左侧的变量和右侧的值执行按位与操作,并将结果赋给左侧的变量。

  • |= (按位或等于):

    • 对左侧的变量和右侧的值执行按位或操作,并将结果赋给左侧的变量。

10. 变量 (Variables)

变量用于存储和操作数据,在程序执行过程中可以被赋予不同的值。

11. 常量 (Constants)

常量是固定不变的值,在程序中使用时不能被修改。

12. 数据类型 (Data Types)

数据类型定义了变量或常量可以存储的数据类型和范围。

  • void:

    • 表示无返回值的数据类型。

  • boolean:

    • 表示布尔值,只能是true或false。

  • char:

    • 表示一个字符,占用一个字节的内存空间。

  • unsigned char:

    • 表示无符号字符,范围为0到255。

  • byte:

    • 与unsigned char相同,表示一个字节的数据。

  • int:

    • 表示整数,占用两个字节的内存空间。

  • unsigned int:

    • 表示无符号整数,范围为0到65535。

  • word:

    • 与unsigned int相同,表示一个字的数据。

  • long:

    • 表示长整数,占用四个字节的内存空间。

  • unsigned long:

    • 表示无符号长整数,范围为0到4294967295。

  • float:

    • 表示单精度浮点数,占用四个字节的内存空间。

  • double:

    • 表示双精度浮点数,占用八个字节的内存空间。

  • string - char array:

    • 表示字符串,由字符数组组成。

  • String - object:

    • 表示字符串,是Arduino提供的字符串对象。

  • array:

    • 表示数组,用于存储多个相同类型的数据。

13. 转换 (Conversion)

转换函数用于将一个数据类型转换为另一个数据类型。

14. 变量作用域和限定符 (Variable Scope & Qualifiers)

变量作用域指的是变量在程序中的可见性范围,限定符用于改变变量的默认行为。

15. 实用函数 (Utilities)

实用函数用于执行常见的任务,例如获取变量的大小。

16. 函数 (Functions)

函数是用于执行特定任务的独立代码块,可以被调用和重复使用。

17. 数字输入/输出 (Digital I/O)

数字输入/输出函数用于控制Arduino板上的数字引脚,实现数字信号的输入和输出。

  • pinMode():

    • 用于设置特定引脚的模式,可以是输入(INPUT)或输出(OUTPUT)。

  • digitalWrite():

    • 用于向特定引脚写入数字值,可以是HIGH(高电平,即5V或3.3V)或LOW(低电平,即0V或接地)。

  • digitalRead():

    • 用于读取特定引脚的数字值,返回HIGH或LOW。

18. 模拟输入/输出 (Analog I/O)

模拟输入/输出函数用于处理Arduino板上的模拟引脚,实现模拟信号的输入和输出。

  • analogReference():

    • 用于设置模拟输入引脚的参考电压,默认为DEFAULT(一般是5V或3.3V)。

  • analogRead():

    • 用于读取模拟输入引脚的模拟值,返回一个介于0到1023之间的整数,表示0V到参考电压之间的比例。

  • analogWrite():

    • 用于向特定引脚写入模拟值,实现PWM(脉冲宽度调制)输出,可以产生模拟电压。

19. 高级输入/输出 (Advanced I/O)

高级输入/输出函数提供了一些特殊功能,如声音发生器和移位寄存器等。

  • tone():

    • 用于在特定引脚产生特定频率的方波声音。

  • noTone():

    • 用于停止之前通过tone()函数产生的声音。

  • shiftOut():

    • 用于向外部设备(如74HC595移位寄存器)串行发送数据。

  • shiftIn():

    • 用于从外部设备(如74HC165移位寄存器)串行接收数据。

  • pulseIn():

    • 用于测量脉冲的持续时间。

20. 时间 (Time)

时间函数用于获取和管理时间信息。

  • millis():

    • 返回自Arduino板启动以来经过的毫秒数。

  • micros():

    • 返回自Arduino板启动以来经过的微秒数。

  • delay():

    • 使程序暂停指定的毫秒数。

  • delayMicroseconds():

    • 使程序暂停指定的微秒数。

21. 数学 (Math)

数学函数用于执行常见的数学运算。

  • min():

    • 返回两个值中较小的那个。

  • max():

    • 返回两个值中较大的那个。

  • abs():

    • 返回一个数的绝对值。

  • constrain():

    • 用于限制一个值的范围在指定的最小值和最大值之间。

  • map():

    • 将一个值从一个范围映射到另一个范围。

  • pow():

    • 返回一个数的指定次幂。

  • sqrt():

    • 返回一个数的平方根。

22. 三角函数 (Trigonometry)

三角函数用于处理角度和三角形相关的计算。

  • sin():

    • 返回给定角度的正弦值。

  • cos():

    • 返回给定角度的余弦值。

  • tan():

    • 返回给定角度的正切值。

23. 随机数 (Random Numbers)

随机数函数用于生成随机数。

  • randomSeed():

    • 用于设置随机数生成器的种子。

  • random():

    • 返回一个介于0和指定最大值之间的随机整数。

24. 位和字节操作 (Bits and Bytes)

位和字节操作函数用于处理二进制位和字节。

  • lowByte():

    • 返回一个16位整数的低字节。

  • highByte():

    • 返回一个16位整数的高字节。

  • bitRead():

    • 读取一个字节中特定位的值。

  • bitWrite():

    • 设置一个字节中特定位的值。

  • bitSet():

    • 将一个字节中特定位设置为1。

  • bitClear():

    • 将一个字节中特定位清零。

  • bit():

    • 返回一个指定位的值。

25. 外部中断 (External Interrupts)

外部中断函数用于处理外部引脚的中断事件。

  • attachInterrupt():

    • 将一个中断服务程序(ISR)与特定的引脚和中断触发条件关联起来。

  • detachInterrupt():

    • 取消特定引脚上的中断服务程序(ISR)的关联。

26. 中断 (Interrupts)

中断函数用于启用和禁用中断处理。

  • interrupts():

    • 启用中断处理。

  • noInterrupts():

    • 禁用中断处理。

27. 通信 (Communication)

通信函数用于与其他设备或计算机进行通信。

  • Serial:

    • 串行通信对象,用于通过串口与计算机或其他设备进行通信。

  • Stream:

    • 流通信对象,用于处理数据流的输入和输出。

以上是Arduino语言参考中关于三角函数、随机数、位和字节操作、外部中断、中断和通信的一些重要知识。


野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892
野牛程序员教少儿编程与信息学竞赛-微信|电话:15892516892
  • Arduino
  • 最新推荐

    热门点击