Arduino 硬件编程语言基础学习入门

Arduino 硬件编程语言基础学习入门1、Arduino程序必要的setup()和loop()voidsetup(){}voidloop(){}setup()函数中的代码只会被运行一次,通常用来做一些初始化工作;loop()中的代码会被无限次地重复运行,此函数为程序的主体部分。2、程序中的值2.1变量和常量常量是一个字面量,只可以表示一个特定的量。2.2变量类型…

大家好,又见面了,我是你们的朋友全栈君。

 

1、Arduino程序必要的setup()和loop()

void setup()

{}

void loop()

{}

setup()函数中的代码只会被运行一次,通常用来做一些初始化工作;loop()中的代码会被无限次地重复运行,此函数为程序的主体部分。

2、程序中的值

2.1 变量和常量

常量是一个字面量,只可以表示一个特定的量。

Arduino 硬件编程语言基础学习入门

2.2 变量类型

Arduino 硬件编程语言基础学习入门

2.3 变量的作用域和修饰符

2.3.1 变量的作用域

 作用域及作用范围,Arduino语言中的变量是由确定性的作用范围的。变量的作用域是被限制在语句块中的。在变量作用域之外的位置无法访问到该变量。

2.3.2 变量的修饰符

 在Arduino语言中,有static、volatile和const三个变量修饰符。static和const 的作用是修改变量的存储位置以适应不同的需求。

2.4 获取变量大小的工具—sizeof()

通过sizeof()获取指定变量的大小。

2.5 变量类型转换

Arduino语言提供了一些函数可以将指定的值转换为特定的类型

Arduino 硬件编程语言基础学习入门

3、运算符

3.1 数学运算符

Arduino 硬件编程语言基础学习入门

3.2 比较运算符

Arduino 硬件编程语言基础学习入门

3.3 布尔运算符

 布尔运算符用来对两个布尔表达式进行运算,运算的结果仍然为布尔值。

Arduino 硬件编程语言基础学习入门

3.4 指针运算符

指针运算符包括&(引用)和*(间接引用)。& 运算符用来引用变量或者函数的地址,* 则是通过地址间接地引用指定地址中的内容。

3.5 位运算符

Arduino 硬件编程语言基础学习入门

3.6 复合运算符

复合操作运算符是部分数学运算符、位运算符与赋值运算的一种简写形式。

Arduino 硬件编程语言基础学习入门

4、语法进阶

 

4.1 预定义命令#define和 #include

 预处理的语句是在编译器的预处理步骤进行处理。

 预处理命令#define 用来定义一个常量,它的语法形式如下:#define constantName value

4.2 语句和语句块

 4.2.1 语句:Arduino 将分号(;)视为一条语句的结束符号。

 4.2.2 语句块:

两个花括号之间的语句块,它有两个作用:将多条语句作为一个整体和形成一个作用域。同时,语句块又是一个独立的作用域,因此其中定义的变量a无法在语句块之外使用。

4.3 注释

 多行注释:“/*  */”

 单行注释:“//”

5、控制结构

5.1 条件判断语句if 和if …… else

Arduino 硬件编程语言基础学习入门

5.2 跳转语句break、continue、return和goto

break用于跳出switch、while、do……while和for结构。

continue用于在while、do……while和for循环结构中结束当前循环。

return用于立即结束当前程序执行。

goto用于将程序执行流程跳转到指定位置后继续执行。

5.3 分支语句switch case

Arduino 硬件编程语言基础学习入门

5.4 循环语句while和do……while

5.4.1 通过while结构就可以使计算机重复地执行一些语句,直到所要求的条件不满足为止,其语法结构如下:

while(条件)

语句

后续语句

5.4.2 do …… while结构与while结构的执行过程类似,但do …… while结构会保证其中的“语句”会执行一次:

do{

语句

}while(条件)

后续语句

5.5 循环语句for

for结构用来在满足指定条件的情况下循环执行语句,其语法结构如下:

for(语句1;语句2;语句3)

语句

后续语句

6、函数

6.1 系统函数

系统函数是Arduino语言默认提供的函数,这些函数可以直接拿来使用而不需要定义。

Arduino 硬件编程语言基础学习入门

  •  数字I/O口的操作函数

  1. pinMode(pin,mode);

pinMode函数用以配置引脚与输出或输入模式,它是一个无返回值函数。函数有两个参数,pin和mode。pin参数表示要配置的引脚,mode参数表示设置的参数INPUT(输入)和OUTPUT(输出)。INPUT参数用于读取信号,OUTPUT用于输出控制信号。PIN的范围是数字引脚0-13,也可以把模拟引脚(A0-A5)作为数字引脚使用,此时编号为14脚对应模拟引脚0,19引脚对应模拟引脚5,。一般会放在setup里,先设置再使用。

  1. digitalWrite(pin,value);

该函数的作用是设置引脚的输出电压为高电平或低电平。该函数也是一个无返回值的的函数。Pin参数表示所要设置的引脚,value参数表示输出的电压HIGH(高电平)或LOW(低电平)。

注意:使用前必须先用pinMode设置。

  1. digitalRead(pin);

该函数在引脚设置为输入的情况下,可以获取引脚的电压情况HIGH(高电平)或者LOW低电平。

Arduino 硬件编程语言基础学习入门

  •   模拟I/O口的操作函数

  1. analogReference(type);

该函数用于配置模拟引脚的参考电压,有三种类型:default:默认值,参考电压是5v;internal:低电压模式,使用片内基准电压源2,56v;external:扩展模式,通过AREF引脚获取参考电压(注意:不使用本函数的话,默认是参考电压5v。使用AREF接参考电压,需接个5K欧的上拉电阻

  1. analogRead(pin);

用于读取引脚的模拟量电压值,每读取一次需要花100US的时间,参数pin表示所要获取模拟量电压值的引脚,返回为int型。精度10位,返回值从0-1023。(注意:函数参数的pin范围是0-5,对应板上的模拟口A0-A5

  1. analogWrite(pin,value);

该函数是通过PWM的方式在引脚上输入一个模拟量。PWM——Pulse-Width Modulation——脉冲宽度调制。

PWM输出的一般形式:

Arduino 硬件编程语言基础学习入门

主要用于LED宽度控制,电机转速控制等方面。Arduino中的PWM的评率大约为490HZ。

UNO板上支持以下数字引脚(不是模拟输入引脚)作为PWM模拟输出:3、5、6、9、10、11板上带PWM输出的都有~号。(注意:PWM输出位数为8位,从0-255

Arduino 硬件编程语言基础学习入门

  •   高级I/O

Pulseln(pin,state,timeout)

该函数用于读取引脚脉冲的时间长度,脉冲可以是HIGH或者LOW。如果是HIGH,函数将先等引脚变为高电平,然后开始计时,一直到变为低电平。

返回脉冲持续的时间长度,单位为ms,如果超时没有读到的话,返回0。

例程说明:

做一个按钮脉冲计时器,测一下按钮的时间,测测谁的反应快,看谁能按出最短的时间。按钮接第3脚。

Arduino 硬件编程语言基础学习入门

  •   时间函数

  1. delay(ms);

延时函数,参数是延时的时长,单位是ms(毫秒)

Arduino 硬件编程语言基础学习入门

  1. delayMicroseconds(us);

延时函数,参数是延时的时长,单位是us(微秒)。1ms=1000us。该函数可以产生更短的延时。

  1. millis();

应用该函数,可以获取单片机通电到现在运行的时间长度,单位是ms,系统最长的记录时间为9小时22分,超出从0开始。返回值是unsigned long型。该函数适合作为定时器使用,不影响单片机的其他工作。(使用delay函数期间无法做其他工作。)100ms=1s

Arduino 硬件编程语言基础学习入门

  1. micros();

该函数返回开机到现在运行的微秒数。返回值是unsigned long 70分钟溢出。1000us=1ms

例程原理

连续按按钮,看你的反应有多快?

按钮接D3;从第2按开始,每按一次会减去上一次按的时间,看你连续按的时间间隔有多快?

Arduino 硬件编程语言基础学习入门

Arduino 硬件编程语言基础学习入门

  •   中断函数

中断——由于某一个随机事件的发生,计算机暂停源程序的运行,转去执行另一个程序(随机事件),处理完毕后又自动返回原程序继续运行。

中断源——引起中断的原因,或能发生中断源申请的来源。

主程序——计算机现行运行的程序。

中断服务子程序——处理突发事件的程序。

  1. attachInterrupt(interrput,function,mode);

该函数用于设置外部中断,函数有3个参数,分别表示中断源,中断处理函数和触发模式。

中断源可选0或者1,对应2或者3号数字引脚。

中断处理函数是一段子程序,当中断发生时执行该子程序部分。

触发模式有四种类型,LOW(低电平触发)、CHANGE(变化时触发)、RISING(低电平变为高电平出触发)、FALLING(高电平变为低电平触发)。

例程原理:

数字D2口接按钮开关,D4口接LED灯1(红色)。D5口接LED2(绿色)。在例程中LED3每秒闪烁一次。使用中断0来控制LED1,中断1来控制LED2。按下按钮,马上响应中断,由于中断响应速度快,LED3不受影响,继续闪烁。比查询的效率要高。尝试4个参数,例程1试验LOW,CHANGE参数,例程2试验RISING和FALLING参数。

Arduino 硬件编程语言基础学习入门

Arduino 硬件编程语言基础学习入门

Arduino 硬件编程语言基础学习入门

  1. detachInterrupt(interrput);

该函数用于取消中断,参数interrupt表示所要取消的中断源。

  •  串口通讯函数

串口概述:

串口接口Serial Interface是指数据一位位地顺序传送,其特点是通信线路简单,只要一对传输线就可以实现双向通信。

Arduino 硬件编程语言基础学习入门

串口的数据传输率是115kbps – 230kbps。初期是为了实现连接计算机外设的目的,一般用来连接鼠标和外置Modem以及老式摄像头和写字板等设备。由于串口(COM)不支持热插拔及传输速率较低目前部分新主板和大部分便捷电脑已经开始取消改接口,目前串口多用于工控和测量设备以及部分通信设备中。

串口的应用:

应用举例:各种传感器采集装置,GPS信号采集装置,多个单片机通讯系统,门禁刷卡系统的数据传输,机械手控制、操纵面板控制电机等等。广泛应用于低速数据传输的工程应用。

  1. Serial.begin();

该函数用于设置串口的比特率。一般的波特率有9600,19200,57600,115200等。波特率是指每秒传输的比特数。除以8可以得到每秒传输的字节数。示范:Serial.begin(57600);

  1. Serial.available();

该函数用来判断串口是否收到数据,函数的返回值为int型,不带参数。

  1. Serial.read();

将串口数据读入该函数不带参数,返回值为串口数据,int型。

  1. Serial.print();

该函数往串口发数据。可以发变量,也可以发字符串。

例句1:Serial.print(“today is good”);

例句2:Serial.print(“x,DEC”);以10进制发送x;

例句3:Serial.print(“x,HEX”);以16进制发送变量x。

  1. Serial.println();

该函数与Serial.print()类似,只是多了换行功能。

Arduino 硬件编程语言基础学习入门

  1. 数学库

  1. min(x,y);求两者最小值
  2. max(x,y);求两者最大值
  3. abs(x);求绝对值
  4. sin(rad);求正弦值
  5. cos(rad);求正切值
  6. tan(rad);求正切值
  7. random(small,big);求两者之间的随机数

RANDOM(SMALL,BIG);

返回值为long。

举例:

long x;

x=random(0,100);可以生成从0到100以内的整数

 

6.2 调用函数

调用函数就是要使用函数的功能,可以使用如下语法进行调用:funcname(arg1,arg2……);

6.3 自定义函数

定义函数的语法如下:

typeSpecifier functionName(argList){}

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125154.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 再谈时间轮_时间谈忘

    再谈时间轮_时间谈忘时间轮很早前就很流行了,在很多优秀开源框架中都有用到,像kafka、netty。也算是现在工程师基本都了解的一个知识储备了。有幸在工作中造过两次轮子,所以今天聊聊时间轮。时间轮是一种高性能定时器。时间轮,顾名思义,就是一个基于时间的轮子,轮子划分为多个槽,每个槽代表一个时间跨度,槽的数量*时间跨度等于时间轮可以支持的最大延迟时间。在每个槽上挂载若干同一时间跨度内需要执行的任务。随着时间…

    2022年10月1日
    0
  • 计算机中什么是适配器及作用,适配器是什么?适配器的作用主要有哪些

    计算机中什么是适配器及作用,适配器是什么?适配器的作用主要有哪些适配器是什么(适配器的作用主要有哪些)网络适配器是什么?网络适配器又称网卡或网络接口卡(NIC),英文名NetworkInterfaceCard。它是使计算机联网的设备。平常所说的网卡就是将PC机和LAN连接的网络适配器。网卡(NIC)插在计算机主板插槽中,负责将用户要传递的数据转换为网络上其它设备能够识别的格式,通过网络介质传输。它的主要技术参数为带宽、总线方式、电气接口方式等。网络适配器必…

    2022年4月30日
    69
  • dock是什么意思中文_电脑dock是什么

    dock是什么意思中文_电脑dock是什么Dock从初级到高级全套教程dock是iMac中很常见的一个功能,而且非常实用,那么dock到底是什么意思呢?1.经常使用苹果电脑的小伙伴,和大家讨论时总会听到有人在说dock栏,不过还是有很多小伙伴不知道dock到底是什么意思,接下来小编就给大家普及一下。2.dock一般指的就是苹果操作系统中的停靠栏,也就是苹果电脑桌面中最下方,类似于Windows系统下方的任务栏,不过要比Window…

    2022年9月12日
    0
  • sortedset实现_实现serializable接口

    sortedset实现_实现serializable接口1.SortedSet接口 继承了Set接口,基本类型加String类型放到排序的集合中,可以不用写实现Comparable接口,但是自定义类类型就必须实现这个接口,不然会报类型转换错误(collection接口的remove())  SortedSet接口的子类有TreeSet类 …

    2022年8月30日
    0
  • IIS http 500 内部服务器错误 (解决方案)「建议收藏」

    IIS http 500 内部服务器错误 (解决方案)「建议收藏」 第一步:“开始”->“设置”->“控制面板”->“管理工具”->“组件服务”中,“控制台根目录”->“组件服务”->“计算机”->“我的电脑”->“COM+应用程序”中,有一个“IISOut-Of-ProcessPooled”鼠标右键“属性”–“标识”–把“此用户”调整为“交互式用户–目前已登录的用户”。然后“确定”,再鼠标右键“属性”–“启动”.第二步:“开始”->“管理工具”-

    2022年8月12日
    5
  • nginx启动停止命令[通俗易懂]

    nginx常用命令启动停止:先进入nginx目录,再进入子目录sbinnginx启动:./nginxnginx停止:./nginx-sstopnginx重新加载nginx.conf:./nginx-sreloadnginx查看nginx.conf配置是否正确:./nginx-t修改配置:先进入nginx目录,再进入子目录conf修改nginx.conf文件…

    2022年4月13日
    195

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号