arduino相关函数

 这里总结了一下arduino的相关函数。

一、数字I/O相关函数

1.pinMode(pin,mode);

描述:将指定的针脚配置成输出或输入。
参数:
pin:要设置模式的针脚(针脚号)
mode:INPUT(输入) 或者 OUTPUT(输出)

2.digitalWrite(pin,value);

pin:针脚编号(针脚号)
Value: HIGH或LOW 或者1或0

3.int digitalRead(pin);

描述:读取指定引脚的值 HIGH或者LOW
pin:针脚编号(针脚号)
返回值:HIGH或LOW

二、串口收发相关函数

1 .Serial.begin(speed)函数

描述:开启串口,通常在setup()函数中。
原型:
Serial.begin(speed);
Serial.begin(speed,config);
参数:
speed:波特率 正常设置9600 /115200
config:设置数据位、校验位和停止位,默认SERIAL_8N1表示数据位,无校验位,1个停止位。
返回值:无。

2.int Serial.available()

描述:从串口读取有效字节(字符)。判断串口缓冲区的状态,返回从串口缓冲区读取的字节数。
返回值:可读取的字节数

3.int Serial.read()

描述:读取传入的串口的数据。读取串口的数据,一次读一个字符,读完后删除以读取数据。
返回值:返回串口缓冲中第一个可读字节,当没有可读数据时返回-1,整数类型。

4.Serial.print(data)函数

描述:以ASCII码的形式打印数据到串口输出。(输出后不会自动换行)

5.Serial.println()函数

描述:通过串口输出数据并换行。
原型:
Serial.println(val);
Serial.println(val,format);
参数:
val:打印的值,任意数据类型
Format: 输出的数据格式

6.Serial.flush()函数

描述:等待超出的串行数据完成传输。
(在1.0版本中,flush()语句的功能不再是丢弃所有进入缓存区的串行数据)

7.Serial.write()函数向串口发数据

Serial. write(val) val:字节
Serial. write(str ) str:一串字节
Serial. write(buf,len) buf:字节数组 len:buf长度

** 返回值:返回长度 **

三、模拟I/O相关函数

1.analogRead(pin)

描述:获得引脚模拟量电压值
(接口名称)——从指定的模拟接口读取值,Arduino对该模拟值进行10-bit的数字转换,这个方法将输入的0-5电压值转换为 0到1023间的整数值。从指定的模拟引脚读取数据数据值
。输入范围和精度可以通过analogReference()改变。
数值的读取:从输入引脚读取数值,
返回值:0-1023的整数值。
注:如果模拟输入引脚为没有连接电路,返回值会受多项因素影响。

2.analogWrite(pin, val)

描述:val 是 0~255 的整数值,对应电压从 0 到+5V
(接口名称, 数值)——给一个接口写入模拟值(PWM波)。
从一个针脚输出模拟值(脉冲宽度调整,pulse PWM),让LED以不同的亮度电亮或者驱动电机以不停的转速转。AnalogWrite()输出结束后,该针脚将产生一个稳定的特定的占空比的PWM,该PWM输出持续到下次调用analogWrite()或在同一针脚调用digitalRead()或digitalWrite().

3.analogReference(type)函数

描述:用于模拟输入的基准电压(输入范围的最大值)
参数:
Type:使用哪种引用类型(DEFAULT 、INTERNAL INTERNAL1V1 INTERNAL2V56 或者 EXTERNAL)
DEFAULT:默认值5V或3V 3.3V为基准电压

注意:改变了基准电压后,之前从analogRead()读取的数据可能不准确了

四、高级I/O函数

1.pulseIn()函数

描述:读取一个针脚的脉冲(HIGH或LOW),比如你value是HIGH,则pulseIn()会等待引脚变为HIGH开始计时,在等待引脚变为LOW的时候停止计时,返回脉冲的长度,单位是为微妙,如果指定的时间没有脉冲,那返回的值为0,长时间的脉冲可能会出错,计时范围大约为10微妙到3分钟

2.tone()

描述:在一个针脚上产生一个特定的频率的方波(%50占空比)
持续时间可以设定,波形会一直产生直到调用noTone()函数,该阵脚可以连接
压电蜂鸣器或者其他喇叭播放声音。在同一时刻只能产生一个声音,如果该针脚已经
在播放音乐了,那么呼叫tone()将不会有任何效果,如果音乐在用一个针脚上播放,那么
它会自动调整频率。使用tone()函数会与3脚和11脚的PWM产生干扰(Mega)板除外

3.noTone()

描述:通知有tone()产生的方波,如果没有使用,tone()将不会有变化
4.shiftOut()
描述:将数据的一个字节一位一位的移出,从最高有效位(最左边)
或者最低有效位(最右边)

4.shiftIn()

描述:将数据的一个字节一位一位地移入,从最高位(最左边)
或者最低有效位(最右边)

五、时间函数

1.delay()

描述:程序的延迟时间 单位是以毫秒为单位的。
比如delay(1000); 就是延迟1秒

2.delayMicroseconds()

描述:程序的延迟时间,单位是以微妙为单位的。
比如delayMicroseconds(1000000); 就是延迟1秒。

六、外部中断函数

1.attachInterrupt(interrupt,function,mode)

描述:当发生外部中断时,调用一个指定的函数。这会
用心的函数取代之前指定给中断的函数。

2.detachInterrupt(interrupt)

描述:关闭给定的中断
参数interrupt,中断禁用的数(0或者1)。

七、中断使能函数

1.interrupt()

描述:重新启用中断(使用noInterrupts()命令后将禁用。)
禁用运行一些重要的任务在后台运行。禁用中断后一些函数可能无法工作,传入信息可能也会会忽略,中断会稍微打乱代码的时间,可以在程序关键部分禁用中断

2.noInterrupt()

描述:禁止中断。中断允许在后台运行的一些重要任务,默认使能中断。禁止中断时部分函数会无法工作,通信中接收的信息也可能会丢失。中断会影响计时代码,在某些特定的代码中也会失效

八、常用的函数库

1.标准链接库

EEPROM:对“永久内存”进行读和写
Ethernet:用于通过arduino以太网扩展板连接到互联网
Firmata:与计算机上应用程序通信的标准串行协议
LiquidCrystal:控制液晶显示屏(LED)
SD:对SD卡进行读写操作
Servo:控制伺服电机
SPI:与使用的序列周边接口(SPI)的设备进行通信
SoftwareSerial:使用任何数字引脚进行串行通信。
Stepper:控制步进电机
WiFi:用于通过arduino的WiFi扩展板连接到互联网
Wire:双总线接口(TWI/I2C)通过网络对设备或者传感器发送和接收数据

2.传感器库

Capacitive Sensing:将两个或多个针脚变换为电容传感器
Debounce:读取噪声数字输入
GFX:标准图形例程接口库
GLCD:基于KS0108或者相同芯片组的LCD图形例程库
Improved LCD library:修复官方arduino LCD库的初始bug
LEDControl: MAX7221或MAX7219控制的LED阵列或7段数码管驱动库
LEDDisplay:HCMS拟29XX控制的滚动LED显示
Matrix:基本的LED矩阵显示控制库

3.通信库(网络和协议)

Messenger:处理来源于计算机的文本消息
NewSoftSerial:软件串口库的升级版本
OneWire:控制基于一线协议的设备
PS2Keyboard:从已经连接的PS2键盘读取字符
imple Message System:在arduino和计算机之间发送消息
SSerial2Mobile:采用蜂窝电话发送文本消息或电子邮件(通过应用软件串口的AT指令)
IRremote:多协议红外遥控链接库
Webduino:arduino扩展的WEB服务库
X10:AC电力线上发送X10信号
XBee:与XBee采用API模式进行通信
SerialControl:通过串口连接远程控制其他arduino设备

4.仅适用于Leonardo库

keyboard:向已连接的计算机发送按键指令
Mouse:控制已连接的计算机中的鼠标光标

5.仅适用于Esplora的链接库

Esplora:此链接库允许方便地访问安装在Esplora上面的传感器和扩展板

6.音效和声波库

FFT:声音或其他模拟信号的频率分析库
Tone:通过控制器针脚产生声音频率序列

7.电机和脉宽调制库

TLC5940:16通道12位PWM控制器
BOXZ:互动机器人控制通用库

8.定时/计时/计数器库

DateTime:通过软件追踪当前日期和时间的库,无需外部硬件,
Metro:帮助以规定的时间间隔执行动作
Timer1:PWM、中断和秒表工具,使用16位Timer1

以上是arduino相关的函数,下次用上面的某些函数写点程序,做点项目实践一下。

猜你喜欢

转载自blog.csdn.net/weixin_47457689/article/details/109730859