Arduino基本函数

Arduino基本函数

pinMode(pin,mode)

数字I/O口

  1. digitalWrite(pin,value)

  2. digitalRead(pin)

模拟I/O口

  1. analogReference() param:[DEFAULT,INTERNAL,EXTERNAL]

  2. analogRead(pin) 读出引脚位的电压并回传一个0到1023之间的数值表示相对应的0到5的电压值

  3. analogWrite(pin,value)

时间函数

  1. millis() 计算程序开始执行到现在的毫秒时间 return unsign long型 单位毫秒ms 9小时溢出

  2. micros() 单位微秒 us 70分钟溢出

  3. delay(ms) 延时函数

  4. delayMicroseconds(us)

数学函数

赋值运算符 =

算数操作符 -,+,*,/,%,--,++

关系操作符与逻辑操作符 > ,>= ,<,<=,==,!=,&&,||,!

复合运算符 +=,-=,*=,/=

常用的数学函数

  1. min(x,y)

  2. max(x,y)

  3. abs(x)

  4. constrain(x,a,b) 判断变量x位于a与b之间的状态,x若小于a回传a;介于a与b之间回传x本身;大于b回传b

  5. map(value,fromLow,fromHigh,toLow,toHigh) 读取类比型号,转换至程序所需要的范围值

  6. double pow(base,exponent) 回传一个数(base)的指数(exponent)值

  7. double sqrt(x)

  8. double sin(rad) 回传角度(radians)的三角函数sines值

  9. double cos(rad)

  10. double tan(rad)

随机数

  1. randomSeed(seed)

  2. long random(max)

  3. long random(min,max)

字节和位操作

  1. lowByte()

  2. highByte()

  3. bitRead()

  4. bitWrite()

  5. bitSet()

  6. bitClear()

  7. bit()

串口通信

这里只是介绍有关Arduino串口通信的相关函数

Serial.begin(int speed)//初始化串口比特率函数

输入相应的数值就把串口通信的寄存器设置为对应的比特率

一般常设置为4800、9600、14400

具体使用时,由所选择的器件决定,如使用蓝牙模块HC-06,串口的波特率应设为9600

Serial.available()//串口输入数据读取前的判断函数

返回值为1时说明串口缓存中有数据,返回值为0说明串口buff中无数据或者数据已经读取出来过。通常使用

if(Serial.available())

来询问或监视串口状态

Serial.read()//从串口buff中读取数据进来

 information=Serial.read()

则buff中的数据会赋值给information变量

Serial.flush()//清空串口buff中的数据

Serial.print(data)//把数据data从串口发送出去

  1. Serial.print(data)//把data对应的字符串asc2码发送出去

  2. Serial.print(data,DEC)//发送的是data的10进制字符串。

  3. Serial.print(data,HEX)//发送的是data的16进制字符串。

  4. Serial.print(data,OCT)//发送的是data的8进制字符串。

  5. Serial.print(data,BIN)//发送的是data的2进制字符串。

  6. Serial.print(data,BYTE)//这样是把data作为asc2码对应的字符后发送

  7. Serial.println(data)//加上换行符

中断函数

Arduino教程——外部中断的使用-Arduino中文社区 - Powered by Discuz!

  • 中断的概念;解决资源竞争的有效方法

  • 轮询和中断

注:中断发生时,串口收到的数据可能会丢失。因此我们应该预先声明一个变量,在未发生中断时提前存储重要的数据

外部中断函数

  • attachInterrupt(interrupt,function,mode)

interrupt中断引脚号码

function中断发生时调用的函数。此函数必须不带参数和不返回任何值;该函数有时被成为中断服务程序

mode定义何时发生中断,以下四个contsants预定有效值:

LOW--当引脚为低电平时,触发中断

CHANGE——改变中断

RISING——上升中断

FALLING——下降中断

High--高电平触发(该中断模式仅适用于Arduino due)

  • detachInterrupt(interrupt)//中断开关,interrupt=1开启,interrupt=0关闭

中断使能函数

  1. interrupts()//使能中断

  2. noInterrupts()//禁止中断

SPI接口

SPI(Serial Peripheral Interface)是串行外设接口的简称。

在arduino的应用中,SPI可作为Arduino控制板之间或者Arduino与带有SPI接口的模块之间通信的工具,

它一般是有6根线组成的:分别是MOSI,MISO,SCK,SS以及地线和电源线

  • MOSI( Master-Out-Slave-In,主出从入)主机数据输出、从机数据输入端

  • MISO(Master-In-Slave-Out,主入从出)主机数据输入、从机数据输出端

  • SCK/SCLK(Serial-Clock,串行时钟)提供串行通信时钟,控制数据的传输。上升沿发送,下降沿接收

  • SS(Slave-Select,从机选择)选择不同的从机设备进行通信,特别是接多个外围设备的时候,可以通过SS控制线,与不同的外围设备进行通信

通信模式

  • Arduino控制单个外围设备

  • Arduino控制多个外围设备

实现方法

通过SPIClass类来实现,能够方便地将Arduino作为主设备与其他从设备通信

SPI.begin()//用于初始化SPI总线

设置SCK,MOSI和SS为输出。把SCK和MOSI拉低,把SS线拉高

SPI.setBitOrder()//设置SPI串行数据传输时先传输低位还是先传输高位

该函数有一个type型的参数bitOrder,有LSBFIRST(最低位在前)MSBFIRST(最高位在前)两种类型可选

SPI.setClockDivider()//设置SPI串行通信的时钟

通信时钟是由系统是时钟分频而得到的,分频值可选2、4、8、16、32、64、128

有一个type类型的参数rate,分别对应七个分频值,SPI_CLOCK_DIVXXX

函数的默认参数设置是SPI_CLOCK_DIV4,即设置SPI串行通信时钟为系统时钟的1/4

SPI.setDataMode()//设置SPI通信的数据模式

type类型参数有4种类型,分别是SPI_MODE0、SPI_MODE1、SPI_MODE2和SPI_MODE3

SPI.transfer()//用来传输一个字节

由于SPI是一种全双工、同步的通信总线,所以传输一个数据实际上会发送一个字节,同时接受一个字节。函数的参数为发送的数据值,返回的参数为接收的数据值

SPI.end()//停止SPI总线的使用

  • 0
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Toreme

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

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

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

打赏作者

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

抵扣说明:

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

余额充值