物联网之Arduino编程语言、条件语句、循环语句、变量、数组、函数
MENU注释变量条件语句if语句switch语句循环语句for循环while循环数组函数函数基本介绍常用函数介绍总结注释当编写代码时注释(comments)非常重要。注释是对代码的解释和说明且对于其他开发者或者自己日后需要修改代码的时候都非常有帮助。注释可以提高代码的可读性和可维护性并且可以帮助自己更好地理解代码。注释由双斜线//或者斜线星号/*...*/来表示。单行注释以两个斜线开头多行注释则以斜线星号开头以星号斜线结尾。// 这是一个单行注释/* 这是一个多行注释 它可以跨越多行 */注释可以用来解释代码的功能算法或者实现细节。1、函数或者方法的用途2、参数的说明3、返回值的说明4、代码实现的说明5、代码的限制或者假设条件6、作者信息、创建时间、修改时间注释应该尽可能的清晰、简洁和明了同时避免无用的注释以免给代码带来混淆和干扰。注释应该随着代码一起更新以确保注释和代码的一致性。变量当编写程序时变量是一个非常基本的概念。一个变量可以存储一个值这个值可以是数字、字符串、布尔值、对象等。在Arduino编程语言中变量需要使用前声明。数据类型 变量名;数据类型指定变量可以存储的数据类型。1、int: 整数类型占用2个字节可以表示范围从-32768到32767之间的整数。2、float: 浮点数类型占用4个字节可以表示小数。3、char: 字符类型占用1个字节可以表示一个字符。4、bool: 布尔类型占用1个字节只有两个值true或false。变量名是标识符命名规则为字母、数字、下划线的组合第一个字符不能是数字。// 声明一个名为a的整型变量inta;// 声明一个名为b的浮点型变量并初始化为3.14floatb3.14;// 声明一个名为c的字符型变量并初始化为字符AcharcA;// 声明一个名为d的布尔型变量并初始化为truebooldtrue;变量在程序中可以被赋值或者修改。// 初始化a为10inta10;// 修改a的值为20a20;除上述基本数据类型外Arduino还支持其他的数据类型如字符串类型String数组类型等。在使用变量时需要根据需求选择合适的数据类型避免浪费内存。条件语句当需要根据某个条件来执行不同的代码时就需要使用条件语句。在Arduino编程语言中常见的条件语句有if和switch。if语句if语句是最基本的条件语句。if(condition){// if条件成立时要执行的代码}其中condition是一个条件表达式如果这个条件表达式的值为真则执行花括号中的代码块。如果需要在条件不成立时执行代码则可以添加else语句。if(condition){// if条件成立时要执行的代码}else{// if条件不成立时要执行的代码}当然也可以在else语句后面添加一个if语句从而实现多个条件判断。这个语法结构被称为else if。if(condition1){// if条件1成立时要执行的代码}elseif(condition2){// if条件2成立时要执行的代码}else{// 如果以上条件都不成立则执行这里的代码}switch语句switch语句也是一种条件语句通常用于比较一个变量与一系列常量值。switch(variable){casevalue1:// 如果variable的值等于value1则执行这里的代码break;casevalue2:// 如果variable的值等于value2则执行这里的代码break;default:// 如果variable的值不等于任何一个case的值则执行这里的代码break;}在switch语句中variable是要进行比较的变量而case是常量值。如果variable的值等于某个case的值则执行该case对应的代码块并且在代码块末尾添加break语句以防止执行其他的case。如果variable的值不等于任何一个case的值则执行default中的代码块。需要注意的是在switch语句中每个case的值必须是常量且不可重复。总的来说if语句和switch语句都是用于控制程序执行流程的条件语句开发者可以根据具体情况选择使用哪种语句。循环语句当需要重复执行一段代码时就需要用到循环语句。在Arduino中有两种主要的循环语句for循环和while循环。for循环for循环是一个控制结构它允许重复执行一系列语句具体次数由循环次数确定。for(初始化表达式;布尔表达式;更新表达式){// 代码块}初始化表达式在循环开始时执行一次通常用于初始化计数器。布尔表达式在每次迭代开始前计算如果结果为true则执行循环体语句否则退出循环。更新表达式在每次迭代结束后执行通常用于更新计数器。for(inti0;i10;i){Serial.println(i);}在例子中初始化表达式初始化了计数器i为0布尔表达式检查i是否小于10更新表达式将i增加1。在每次迭代中计数器i的值都会被输出。while循环while循环是另一种重复执行语句块的方法。它会在条件为true时重复执行代码块。while(布尔表达式){// 代码块}while循环只由一个条件表达式组成当这个表达式为true时执行循环体语句。在每次循环执行后条件表达式都会被重新计算。如果条件表达式为false则跳过循环体语句直接执行循环后面的代码。inti0;while(i10){Serial.println(i);i;}在例子中初始化变量i的值为0。while循环的条件表达式检查变量i是否小于10。只要条件为true循环就会一直执行每次将变量i的值增加1。在每次循环中变量i的值都会被输出。总体来说for循环适用于知道循环次数的情况而while循环适用于不知道循环次数的情况。数组数组是一种用于存储多个值的数据类型。数组的每个元素都有一个唯一的索引可以使用这个索引来访问数组中的元素。type arrayName[arraySize];其中type是数组中元素的数据类型arrayName是数组的名称arraySize是数组的大小。intmyArray[5];代码定义一个包含5个整数的数组可以使用myArray[0]到myArray[4]访问这些元素。可以在定义数组时初始化数组。intmyArray[5]{1,2,3,4,5};代码定义一个包含5个整数的数组并将其初始化为1、2、3、4、5。也可以使用以下方式初始化数组。intmyArray[]{1,2,3,4,5};代码定义一个包含5个整数的数组并将其初始化为1、2、3、4、5。可以使用下标访问数组元素下标从0开始。intmyArray[5]{1,2,3,4,5};// 将x的值设置为数组中下标为2的元素即3。intxmyArray[2];可以使用循环遍历数组中的所有元素。intmyArray[5]{1,2,3,4,5};for(inti0;i5;i){// 打印数组中的每个元素Serial.println(myArray[i]);}Arduino中还支持多维数组。intmyArray[3][3]{{1,2,3},{4,5,6},{7,8,9}};代码定义一个3行3列的二维数组。123456789可以使用两个下标来访问数组中的元素。intmyArray[3][3]{{1,2,3},{4,5,6},{7,8,9}};// 将x的值设置为数组中第2行第3列的元素即6。intxmyArray[1][2];函数函数基本介绍当程序中需要执行某个特定任务时函数非常有用。函数可以包含一些代码块这些代码块可以在程序的其他地方多次调用。在Arduino编程语言中函数包含一个函数头和一个函数体。函数头包含函数名称和参数列表函数体包含一些要执行的代码。// 函数头intadd(inta,intb){//函数体intsumab;returnsum;}函数的名称是add它有两个参数分别是a和b函数体包含a和b相加的操作最后通过return返回结果。在程序中调用函数。intx3;inty5;// 调用函数intzadd(x,y);在示例中将x和y作为参数传递给add函数该函数返回它们的和最后将结果存储在z变量中。函数的参数也可以是其他类型的数据例如字符串、浮点数等等。在Arduino编程语言中函数也可以没有参数也可以没有返回值。// 函数头voidsayHello(){// 函数体Serial.println(Hello World!);}函数的名称是sayHello它没有参数和返回值。函数体包含一条输出语句它将字符串Hello World!输出到串行监视器中。函数的使用可以让代码更加清晰、易读和易于维护。通过将代码块封装到函数中可以使代码更加模块化也可以避免在多个地方重复编写相同的代码。在编写代码时应该尽可能地使用函数以便使代码更加可读、易于维护和可扩展。常用函数介绍使用Arduino进行编程时有许多内置函数可用。这些函数可以更轻松地编写程序处理输入和输出控制逻辑流和实现其他功能。01、pinMode(pin, mode): 用于配置数字引脚的输入或输出模式。pin是数字引脚的编号mode是要设置的模式(输入或输出)。02、digitalWrite(pin, value): 用于在数字引脚上写入数字值(HIGH或LOW)。pin是数字引脚的编号value是要写入的值。03、digitalRead(pin): 用于读取数字引脚上的数字值(HIGH或LOW)。pin是数字引脚的编号。04、analogRead(pin): 用于读取模拟引脚上的模拟值(0-1023)。pin是模拟引脚的编号。05、analogWrite(pin, value): 用于在支持PWM输出的数字引脚上输出模拟值(0-255)。pin是数字引脚的编号value是要输出的值。06、delay(ms): 用于在程序中创建暂停(延迟)时间。ms是要延迟的毫秒数。07、millis(): 返回自启动以来的毫秒数可以用于时间跟踪和计时器。08、Serial.begin(baud): 用于初始化串口通信其中baud是波特率。09、Serial.print(data): 用于将数据打印到串口监视器。data可以是数字字符串或其他数据类型。10、Serial.available(): 用于检查是否有数据可以从串口读取。这些函数只是Arduino可用的众多函数中的一部分。熟悉这些常用函数可以帮助我们更轻松地编写程序并为实现特定功能提供了有用的工具。下面是一个简单的实例代码演示如何控制一个LED灯的亮灭。// 设置LED引脚intled_pin2;voidsetup(){// 设定引脚为输出模式pinMode(led_pin,OUTPUT);}voidloop(){// 点亮LEDdigitalWrite(led_pin,HIGH);// 等待一段时间delay(1000);// 关闭LEDdigitalWrite(led_pin,LOW);// 等待一段时间delay(1000);}代码段中首先定义一个整型变量led_pin表示连接LED灯的引脚。在setup()函数中我们将该引脚设定为输出模式然后在loop()函数中交替点亮和关闭LED灯并在两次操作之间等待1秒钟的时间。总结本文介绍Arduino的基本概念和编程语言并演示如何通过Arduino板上的数字和模拟引脚来控制硬件设备。对于初学者而言理解这些基础知识是开始进行更高级项目的基础。如果想进一步深入了解Arduino可以参考官方文档或者更高级别的教程。

相关新闻

git 命令总结

git 命令总结

一、不用每次pull或push 录入用户和密码首先输入下面这条命令,然后再pull一下录入用户账号和密码,下次就会记录下来不用在再次输入git config --global credential.helper store二、不出现git bash编辑页面命令,以及出现git bash编辑页面的解…

2026/7/4 2:27:07 阅读更多 →
海康威视网络摄像头配置本地存储服务器进行录像和查看!(需要有老版本存储服务器软件和4200老版本搭配使用,官网没有了)

海康威视网络摄像头配置本地存储服务器进行录像和查看!(需要有老版本存储服务器软件和4200老版本搭配使用,官网没有了)

目录 环境:Win系统电脑A远程连接Win系统电脑B查看录像和回放-win电脑B存储录像 配置 方法: 海康小工具 海康威视网络摄像头答疑 环境:Win系统电脑A远程连接Win系统电脑B查看录像和回放-win电脑B存储录像 A,B两台电脑 A电脑远程连接B电…

2026/7/3 23:03:04 阅读更多 →
读懂 Cost-Based Optimization:SAP HANA SQL 优化器如何用成本模型选出更快的执行计划

读懂 Cost-Based Optimization:SAP HANA SQL 优化器如何用成本模型选出更快的执行计划

在 SAP HANA 的世界里,跑得快 从来不是玄学。你写下一条 SQL,数据库并不会立刻 照字面意思 去执行,而是会在后台完成一系列精密决策:怎么连表、先过滤还是先聚合、走索引还是全表扫描、用哪种 Join 算法、甚至把某些算子交给哪个执行引擎去做。把这些选择串成一条 最可能更…

2026/7/6 11:22:00 阅读更多 →

最新新闻

告别iPhone照片无法打开的困扰:HEIF Utility一站式解决方案

告别iPhone照片无法打开的困扰:HEIF Utility一站式解决方案

告别iPhone照片无法打开的困扰:HEIF Utility一站式解决方案 【免费下载链接】HEIF-Utility HEIF Utility - View/Convert Apple HEIF images on Windows. 项目地址: https://gitcode.com/gh_mirrors/he/HEIF-Utility 你是否曾遇到过这样的尴尬时刻&#xff1…

2026/7/7 10:06:39 阅读更多 →
3步搞定Windows HEIC格式兼容:开源工具HEIF Utility完全指南

3步搞定Windows HEIC格式兼容:开源工具HEIF Utility完全指南

3步搞定Windows HEIC格式兼容:开源工具HEIF Utility完全指南 【免费下载链接】HEIF-Utility HEIF Utility - View/Convert Apple HEIF images on Windows. 项目地址: https://gitcode.com/gh_mirrors/he/HEIF-Utility 你是否曾在Windows电脑上收到iPhone照片…

2026/7/7 10:04:39 阅读更多 →
遥操作触觉引导模型选型:环境参数驱动的实战指南

遥操作触觉引导模型选型:环境参数驱动的实战指南

1. 项目概述:触觉引导不是“加个震动马达”就完事了“如何选择遥操作中的触觉引导模型:环境适配指南”——这个标题里藏着一个被严重低估的现实矛盾:绝大多数遥操作系统在设计初期,就把触觉当成了“锦上添花”的装饰项&#xff0c…

2026/7/7 10:02:38 阅读更多 →
终极IPX兼容方案:让90年代经典游戏在现代Windows上重获新生

终极IPX兼容方案:让90年代经典游戏在现代Windows上重获新生

终极IPX兼容方案:让90年代经典游戏在现代Windows上重获新生 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 还在为《星际争霸》、《暗黑破坏神》、《红色警戒2》这些经典游戏无法在Windows 10/11上联机对战而烦恼吗&…

2026/7/7 10:00:38 阅读更多 →
3分钟搞定:让经典游戏在现代Windows重获新生的终极方案

3分钟搞定:让经典游戏在现代Windows重获新生的终极方案

3分钟搞定:让经典游戏在现代Windows重获新生的终极方案 【免费下载链接】ipxwrapper 项目地址: https://gitcode.com/gh_mirrors/ip/ipxwrapper 还在为《星际争霸》、《暗黑破坏神》这些经典游戏无法在Windows 10/11上联机而烦恼吗?&#x1f914…

2026/7/7 9:58:37 阅读更多 →
Subtitle Edit:免费开源字幕编辑工具,5大场景化解决方案助你高效制作专业字幕

Subtitle Edit:免费开源字幕编辑工具,5大场景化解决方案助你高效制作专业字幕

Subtitle Edit:免费开源字幕编辑工具,5大场景化解决方案助你高效制作专业字幕 【免费下载链接】subtitleedit the subtitle editor :) 项目地址: https://gitcode.com/gh_mirrors/su/subtitleedit Subtitle Edit是一款功能强大的免费开源字幕编辑…

2026/7/7 9:58:37 阅读更多 →

日新闻

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

鸿蒙新特性:图片画廊与轮播导航——构建沉浸式图片浏览体验

图片浏览是移动应用中最高频的场景之一。从社交应用的照片流到电商平台的商品图集,从旅游应用的景点相册到摄影作品展示——用户对图片浏览的体验要求不断提高:流畅的切换动画、直观的缩略图导航、便捷的收藏操作、自动播放模式。HarmonyOS NEXT ArkUI 虽…

2026/7/7 0:05:16 阅读更多 →
24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V DC-DC降压芯片PW2312B/PW2815,SOT23-6到SOP8-EP方案对比

24V稳压芯片完整选型指南 PW8600 PW75XX PW2815 PW2312B LDODC/DC全方案 一、24V稳压方案概述 24V直流电源在工业自动化、门禁系统、电梯控制、汽车电子、LED驱动、监控设备等场景中应用极广,是最常见的中压直流母线电压。要将24V母线稳定降压至下游MCU、传感器…

2026/7/7 0:05:16 阅读更多 →
RAG+知识图谱混合检索与Graph RAG核心对比

RAG+知识图谱混合检索与Graph RAG核心对比

做企业RAG落地的团队,往往容易卡在一容易踩坑的选型难题: 当需求单纯靠向量RAG搞不定、单纯靠知识图谱也搞不定,必须同时依赖「文本语义理解 实体关系推理」时,到底是做「向量图谱混合检索」就够了,还是必须上「Grap…

2026/7/7 0:07:19 阅读更多 →

周新闻

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容

B站视频下载神器BiliTools:5分钟学会轻松保存任何B站内容 【免费下载链接】BiliTools A cross-platform bilibili toolbox. 跨平台哔哩哔哩工具箱,支持下载视频、番剧等等各类资源 项目地址: https://gitcode.com/GitHub_Trending/bilit/BiliTools …

2026/7/6 8:11:50 阅读更多 →
威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型全解析:从新手入门到实战应用,助你构建安全产品!

威胁模型的陌生现状在忙碌疲惫的一天里,参与了关于混合后量子密码学的讨论,应付端点攻击找茬的人,还参与留言板讨论后,发现“威胁模型”对多数人仍是陌生概念,且多被当作时髦用语。有趣的相关画作有一幅由 Embyr 创作的…

2026/7/6 8:11:52 阅读更多 →
渗透测试入门指南:从零基础到实战环境搭建

渗透测试入门指南:从零基础到实战环境搭建

1. 从“看热闹”到“入门”:我理解的渗透测试到底是什么?每次看到新闻里说某个大公司的数据被“黑”了,或者某个网站被攻击导致服务瘫痪,你是不是和我一样,心里会冒出两个念头:一是“这黑客真厉害”&#x…

2026/7/6 6:52:56 阅读更多 →

月新闻