#define 常量名 常量值 
% 取模运算符 
String abc  /  char abc[n]  定义字符串 
pinMode(pin,mode);  用于引脚的初始化  mode包括 INPUT/OUTPUT/INPUT_PULLUP 
Arduino 数模转换器有 10位精度,可以将0-5V转换为 0-1023,仅用于analogRead(pin) analogWrite(n) 写的并不是真正的模拟信号,而是占空比不同的方波:电压=占空比×5V,n∈(0,255),PWM(脉冲宽度调制)波 millis()/micros() 获取系统通电或复位后的运行时间,单位是毫秒/微秒 当引脚悬空时,其电压值处于不定状态,故要根据电压值进行其他操作时应避免悬空 
tone(pin,frequency,duration)  占空比为定值50%, duration默认无穷大,若无duration,则应用noTone()来停止发声,注意:同一时间 tone()仅能作用于一个引脚 pulseIn(pin,value,timeout) 返回脉冲宽度,单位为微秒,timeout超时时间,默认为 1s 串口监视器中的停止符是在按下“发送”后系统自动发动的 
外部中断 
LOW/CHANGE/RISING/FALLING 低电平/变电平/上升沿/下降沿触发attachInterrupt(中断编号,中断函数名(返回void),中断模式)  初始化中断引脚 
detachInterrupt(中断编号)  禁用外部中断 
编写library

  1. #if ARDUINO >= 100              //版本兼容设置
  2. #include"Arduino.h"
  3. #else
  4. #include"WProgram.h"
  5. #endif
  6. class XXX{            //声明类
  7. private:
  8. public:
  9. }
  10. #ifndef XXX_H            //条件编译命令,判断XXX_H是不是已经存在
  11. #define XXX_H
  12. .
  13. .
  14. .
  15. #endif
  16. #include"XXX.H"        //编写cpp文件,注意应加上版本兼容语句
  17. XXX::XXX()
  18. 返回类型 XXX::other_func()
  19. func_name1  KEYWORD1     //关键字高亮显示
  20. func_name2  KEYWORD2

复制代码

硬件串口(UART)通信 
两个设备TX与RX交叉连接,GND相连 
在MEGA上USB口是和引脚 0,1连在一块的 
Serial.available()  返回串口接收缓冲区的字节数 
Serial.begin(speed,config)  初始化串口,speed波特率,config数据、校验、停止位 
Serial.end()  释放串口通信引脚,使其作为普通引脚 
Serial.find(target)  在缓冲区中搜索target,找到返回 true,否则返回false 
Serial.findUntil(target,terminal)  搜索target直至terminal,无返回值 
Serial.flush()  等待正在发送的数据发送完成 
Serial.peek()   返回但不删除一字节数据 
Serial.print(value,format)  以ASCII码格式输出数据 
Serial.read()   读取并删除一字节数据 
Serial.readBytes(buffer,length)  读取 length长度的数据并存入 buffer 
Serial.readBytesUntil(character,buffer,length) 
Serial.setTimeout(time)  设置超时(等待串口数据)时间,与前两个函数配合使用 
Serial.write(val/str/(buf,len)) 以字节形式输出数据到串口,返回输出的字节数 
ps:对于MEGA,Serial 包括Serial,Serial1,Serial2,Serial3,Serial4 
String += (char)Char  将Char添加到String后面 
void serialEvent() 串口事件,在串口缓冲区有数据时触发,实际是运行在两次 loop之间 
软件模拟串口通信 
SoftwareSerial mySerial(rxPin.txPin)  构造函数,创建一个软串口 
mySerial.listen()  开启软串口监视状态,一个时刻只能监视一个软串口 
mySerial.isListening()  判断是不是处在监视状态 
mySerial.overflow()  检测缓冲区是不是已经溢出 
其他函数和硬串口一样 
IIC总线与Wire类库函数 
Wire.begin(none/address) 以主机/从机模式加入IIC 总线 
Wire.requestFrom(address,quantity,stop)主机向从机发送数据请求, stop:true 释放 IIC 
Wire.beginTransmission(address) 告诉某从机主机要向它发送数据 
Wire.endTransmission(none/stop) 告诉从机数据发送完毕,stop:true释放IIC 
Wire.write(value/string/(date,length))  主机从机间发送数据 
Wire.available()  返回缓冲区的字节数 
Wire.read()  从机或主机从缓冲区中读取数据 
Wire.onReceive(myHandler1)  从机的函数,主机endTransmission后myHandler1被触发 
Wire.onRequest(myHandler2)  从机的函数,主机requestFrom后myHandler2 被触发 
其中:void myHandler1(int numBytes) void myHandler2()  numBytes:主机发送的字节数 
SPI总线与SPI类库函数 
SPI.begin() 初始化SPI通信 
SPI.end()   关闭SPI 通信 
SPI.transfer(val)  val要发送的字节数据,返回读到的字节数据 
shiftOut(datePin,clockPin,bitOrder,value) IDE自带函数,模拟SPI串行输出,无返回 
shiftIn(datePin,clockPin,bitOrder)  IDE自带函数,模拟 SPI串行输入,返回输入数据 
EEPROM类库 
EEPROM.write(address,value)  对指定地址写入数据,无返回值 
EEPROM.read(address)  从指定地址读数据,若无数据,则读出255 
union date      共用体类型,将大于1B的数据存到 EEPROM 
{          此例将float数据存到EEPROM中 
  float a;    读写的时候是对c.b[ i]操作,输出或其他是对 c.a操作 
  byte b[4]; 

date c; 
SD卡类库 
对SD卡中的文件进行操作,用 SD类 
对SD卡文件中的具体内容操作用 file类 
SD.begin(csPin) csPin为输出模式,连到SD卡使能端,返回 true/false 
SD.exists(filename) 判断某文件夹是否存在,返回true/false 
SD.open(filename,mode) 打开某文件,mode:FILE_READ/FILE_WRITE,返回true/false 
SD.remove(filename) 移除某文件夹,返回true/false 
SD.mkdir(filename)  创建某文件夹,返回true/false 
SD.rmdir(filename)  移除某空文件夹,返回true/false 
file.available()    检查并返回当前文件中可读的字节数 
file.close()     关闭某文件 
file.peek()     读取当前字节,但并不移动到下一字节 
file.position()   获取“光标”在当前文件中的位置 
file.print(date,FORMAT) 以某格式输出数据到文件 
file.seek(position) 将“光标”移到某一位置 
file.size()     获取文件大小 
file.read()     读取1B数据 
file.write(date/(buf,len))  写入数据到文件 
以上file为一个File 类对象 
定义一个File对象myFile,再用myFile = SD.open()打开文件,此文件就和myFile关联了 
IRremote类库 
IRrecv object(recvPin) 构造函数,创建一个红外接收头对象,recvPin连到接收头引脚 
IRrecv.enableIRIn() 初始化红外解码 
IRrecv.decode(&results) 检查是否收到编码,解码信息存入decode_results对象results 
IRrecv.resume() 接收下一个编码 
IRsend object() 创建 IRsend类对象 
IRsend.sendNEC(data,nbits)  以NEC编码格式发送指定值 
IRsend.sendRaw(buf,len,hz)  以原始编码格式发送信号 
result.value 是接收到的编码数据 
LiquidCrystal类库 
LiquidCrystal(rs,(rw),enable,(d0,d1,d2,d3),d4,d5,d6,d7) 初始化LCD 
lcd.begin(cols,rows)  设置显示器的宽度和高度 
lcd.clear() 清屏,光标移到左上角 
lcd.home()  光标复位到左上角 
lcd.setCursor(col,row)  设置光标到指定位置 
lcd.write(data) 输出一个字符到 LCD 
lcd.print(data) 输出一串字符到 LCD,返回输出的字符数 
lcd.(no)c/Cursor()  显示/隐藏光标 
lcd.(no)b/Blink()  开启/关闭光标闪烁 
lcd.(no)d/Display() 开启/关闭LCD显示功能 
lcd.scrollDisplayLeft/Right()  向左/右滚屏 
lcd.(no)a/Autoscroll()  开启/关闭自动滚屏 
lcd.createChar(num,data)  创建自定义字符,num 自定义字符编号,data像素数据

Arduino库函数中文说明的更多相关文章

  1. 总线SPI的Arduino库函数

    来源参考:https://www.cnblogs.com/MyAutomation/p/9348480.html 总线SPI的Arduino库函数 SPI基本知识 SPI:高速同步串行口.是一种标准的 ...

  2. OneWire总线的Arduino库函数

    OneWire总线基本点 One-wire总线是DALLAS公司研制开发的一种协议,采用单根信号线,既传输时钟,又传输数据而且数据传输是双向的.它具有节省I/O 口线资源.结构简单.成本低廉.便于总线 ...

  3. I2C总线的Arduino库函数

    I2C总线的Arduino库函数 I2C即Inter-Integrated Circuit串行总线的缩写,是PHILIPS公司推出的芯片间串行传输总线.它以1根串行数据线(SDA)和1根串行时钟线(S ...

  4. Arduino LiquidCrystal库函数中文对照

    我之所以会试试看LCD+Shield,一是因为我本来就有这块板,但一直不会用,第二个原因则是Arduino+Cookbook这本书.O’Reilly的这本手册对你在Arduino实践中的各种问题(几乎 ...

  5. [Arduino] Leonardo 中文介绍

    以下内容均翻译自arduino.cc,水平有限,如有错误请大家指正. 概述Arduino Leonardo是基于ATmega32u4一个微控制器板.它有20个数字输入/输出引脚(其中7个可用于PWM输 ...

  6. 进阶之路(基础篇) - 022 Arduino Leonardo 中文介绍(摘抄)

    本文摘抄:http://www.arduino.cn/thread-1205-1-1.html 概述Arduino Leonardo是基于ATmega32u4一个微控制器板.它有20个数字输入/输出引 ...

  7. arduino库函数1

    https://wenku.baidu.com/view/e657b1f0bcd126fff6050baf.html 的阅读笔记.现在到了 第四十页. setup应该是 在开始 执行一次. 然后 lo ...

  8. 步进电机的Arduino库函数

    This library allows you to control unipolar or bipolar stepper motors. To use it you will need a ste ...

  9. 伺服电机的Arduino库函数

    servo.attach(pin)  //连接伺服电机的信号线于控制板的引脚,9或10号引脚servo.attach(pin, min, max) servo: a variable of type ...

随机推荐

  1. form注册表单圆角 demo

    form注册表单圆角 <BODY> <div class="form"> <ul class="list"> <li& ...

  2. mysql启动日志文件log_bin

    今天正在无所事事的时候,突然收到需要我打开mysql的log_bin,当时我就懵逼了...不多说别的,我连这个log_bin在哪里,怎么知道是否启动了都不知道,怎么去做? 在万分纠结下,查询了很多资料 ...

  3. Python 字典中一键对应多个值

    #字典的一键多值 print'方案一 list作为dict的值 值允许重复' d1={} key=1 value=2 d1.setdefault(key,[]).append(value) value ...

  4. 数据对象转json与md5加密注意事项

    项目中遇到将OC数据对象类型转化字符类型,然后进行MD5加密的技术流程,在转化字符数组到字符加密过程中遇到一些问题. 问题 转化后的字符进行md5加密,出现与服务器加密结果不匹配的情况 分析 在对代码 ...

  5. java中重载一定在一个类里面吗?

    虽然这些概念在翻译成中文的过程中,有很多不同的翻译方式但本质上只有两种说法,就是Override和Overload其中,Overload一般都被翻译成重载而Override的翻译就乱七八糟了,所谓覆盖 ...

  6. (2环境架设)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练

    从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练 1综述http://www.cnblogs.com/jsxyhelu/p/7907241.html2环境架设http://www.cn ...

  7. 3.If statements

    if 语句   电脑程序不只是执行命令.时常会需要做出选择.例如基于一个条件的选择.Python有这样几种条件运算:   >   greater than <   smaller than ...

  8. 软件161A 张慧敏

    一.PTA实验作业 题目1:7-11 单向链表3:编程实现:输入一个正整数 repeat (0<repeat<10),做 repeat 次下列运算:输入一个正整数 n(0<n< ...

  9. 【Java学习笔记之六】java三种循环(for,while,do......while)的使用方法及区别

    第一种:for循环 循环结构for语句的格式:       for(初始化表达式;条件表达式;循环后的操作表达式) { 循环体;    } eg: class Dome_For2{ public st ...

  10. BZOJ 1411&&Vijos 1544 : [ZJOI2009]硬币游戏【递推,快速幂】

    1411: [ZJOI2009]硬币游戏 Time Limit: 10 Sec  Memory Limit: 162 MBSubmit: 897  Solved: 394[Submit][Status ...