




免费预览已结束,剩余6页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Arduino参考手册Arduino开发语言提供全部的C语言特性和C+语言的部分特性. 通过链接到 AVR的libc库online, 可以使用库中提供的函数. 具体的应用细节请参考相关文档.程序结构在Arduino中, 标准的程序入口main函数在内部被定义, 用户只需要关心以下两个函数: void setup() void loop()setup() 函数用于初始化, loop() 函数用于执行. 初始化函数一般放在程序开头, 用于设置一些引脚的输出/输入模式, 初始化串口通讯等类似工作. loop() 函数中 的代码将被循环执行, 例如: 读入引脚状态, 设置引脚输出状态等. 控制语句 if if.else for switch while do.while break continue return goto相关语法 ; (分号) (大括号) / (单行注释) /* * / (多行注释) #define #include算术运算符 = (赋值) + (加) - (减) * (乘) / (除) % (取模)比较运算符 = (等于) != (不等于) (大于) = (大于等于)布尔运算符 & (逻辑与) | (逻辑或) ! (逻辑非)指针运算符 * 指针运算符 & 地址运算符位运算 & (位与) | (位或) (位异或) (位非) (右移) 端口操作复合运算符 + (自加) - (自减) += (复合加) -= (复合减) *= (复合乘) /= (复合除) &= (复合与) |= (复合或)变量常量 HIGH | LOW INPUT | OUTPUT true | false 整数常量 浮点数常量数据类型 void(无类型) boolean(布尔型) char(字符型) unsigned char(无符号字符型) byte(字节型) int(整型) unsigned int(无符号整型) long(长整型) unsigned long(无符号长整型) float(单精度) double(双精度) string(字符串) array(数组)数据类型转换 char() byte() int() word() long() float()变量作用域&修饰符 变量作用域 static (静态变量) volatile (易变变量) const (不可改变变量)辅助工具 sizeof() (sizeof运算符) ASCII码表基本函数数字I/O pinMode(pin, mode) digitalWrite(pin, value) digitalRead(pin)模拟I/O analogReference(type) analogRead(pin) analogWrite(pin, value) - PWM高级I/O shiftOut(dataPin, clockPin, bitOrder, val) pulseIn(pin, state, timeout)时间 millis() delay(ms) delayMicroseconds(us)数学库 min(x, y) max(x, y) abs(x) constrain(x, a, b) map(x, in_min, in_max, out_min, out_max) pow(base, exponent) sqrt(x)三角函数 sin(rad) cos(rad) tan(rad)随机数 randomSeed(seed) random(howbig) random(howsmall, howbig)位操作 lowByte() highByte() bitRead() bitWrite() bitSet() bitClear() bit()设置中断函数 attachInterrupt(interrupt, function, mode) detachInterrupt(interrupt)开关中断 interrupts() noInterrupts()串口通讯 Serial.begin(speed) Serial.available() Serial.read() Serial.flush() Serial.print(data) Serial.println(data)扩展库如果要使用一些已有的库, 可以选择菜单Sketch-Import Library, 然后选择 相应的库. Sketch工具会自己在代码的开头包含库的头文件(#include).在引入库之后, 程序的体积也将会增大(因为包含了库的代码). 对于不是必要的库, 直接删除对应的#include语句就可以了.官方扩展库以下是Arduino官方提供的扩展库, 被默认包含在开发工具中. EEPROM - 读写EEPROM存储区. Ethernet - 以太网支持. Firmata - 基于串口的通讯协议. LiquidCrystal - LCD液晶显示. Servo - 伺服电机. SoftwareSerial - 软件实现的串口, 可以选择任意引脚. Stepper - 步进电机. Wire - I2C协议支持. Matrix - LED显示阵列控制. Sprite - LED显示阵列中子块控制.第三方扩展库这里只包含了Roboduino扩展板的相关库, 其他的库信息请访问: Arduino在线文档 online.Roboduino扩展板: RoboduinoMotor - Roboduino电机扩展板驱动.如果需要设计自己的库, 请参考arduinohardwarelibraries目录中相关库的代码.=Arduino语言注解wxxmickey 发表于 - 2008-11-23 18:59:00 Arduino语言是建立在C/C+基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让我们不了解AVR单片机(微控制器)的朋友也能轻松上手。 在与Arduino DIYER接触的这段时间里,发现有些朋友对Arduino语言还是比较难入手,那么这里我就简单的注释一下Arduino语言(本人也是半罐子水,有错的地方还请各位指正)。/*基础C语言*/关键字: if if.else for switch case while do. while break continue return goto语法符号: ; / /* */运算符: = + - * / % = != = & | ! + - += -= *= /=数据类型: boolean 布尔类型 char byte 字节类型 int unsigned int long unsigned long float double string array void数据类型转换: char() byte() int() long() float()常量: HIGH | LOW 表示数字IO口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。 INPUT | OUTPUT 表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT 表示输出(AVR能提供5V电压 40mA电流)。 true | false true 表示真(1),false表示假(0)。/*/ 以上为基础c语言的关键字和符号,有c语言基础的都应该了解其含义,这里也不作过多的解释。/*Arduino 语言*/结构 void setup() 初始化变量,管脚模式,调用库函数等 void loop() 连续执行函数内的语句功能数字 I/O pinMode(pin, mode) 数字IO口输入输出模式定义函数,pin表示为013, mode表示为INPUT或OUTPUT。 digitalWrite(pin, value) 数字IO口输出电平定义函数,pin表示为013,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。 int digitalRead(pin) 数字IO口读输入电平函数,pin表示为013,value表示为HIGH或LOW。比如可以读数字传感器。模拟 I/O int analogRead(pin) 模拟IO口读函数,pin表示为05(Arduino Diecimila为05,Arduino nano为07)。比如可以读模拟传感器(10位AD,05V表示为01023)。 analogWrite(pin, value) - PWM 数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表示3, 5, 6, 9, 10, 11,value表示为0255。比如可用于电机PWM调速或音乐播放。扩展 I/O shiftOut(dataPin, clockPin, bitOrder, value) SPI外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要传送的数据(0255),另外还需要一个IO口做74HC595的使能控制。 unsigned long pulseIn(pin, value) 脉冲长度记录函数,返回时间参数(us),pin表示为013,value为HIGH或LOW。比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。时间函数 unsigned long millis() 返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。 delay(ms) 延时函数(单位ms)。 delayMicroseconds(us) 延时函数(单位us)。数学函数 min(x, y) 求最小值 max(x, y) 求最大值 abs(x) 计算绝对值 constrain(x, a, b) 约束函数,下限a,上限b,x必须在ab之间才能返回。 map(value, fromLow, fromHigh, toLow, toHigh) 约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。 pow(base, exponent) 开方函数,base的exponent次方。 sq(x) 平方 sqrt(x) 开根号三角函数 sin(rad) cos(rad) tan(rad)随机数函数 randomSeed(seed) 随机数端口定义函数,seed表示读模拟口analogRead(pin)函数 。 long random(max) 随机数函数,返回数据大于等于0,小于max。 long random(min, max) 随机数函数,返回数据大于等于min,小于max。外部中断函数 attachInterrupt(interrupt, , mode) 外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数,mode:LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING 下降沿中断。 detachInterrupt(interrupt) 中断开关,interrupt=1 开,interrupt=0 关。中断使能函数 interrupts() 使能中断 noInterrupts() 禁止中断串口收发函数 Serial.begin(speed) 串口定义波特率函数,speed表示波特率,如9600,19200等。 int Serial.available() 判断缓冲器状态。 int Serial.read() 读串口并返回收到参数。 Serial.flush() 清空缓冲器。 Serial.print(data) 串口输出数据。 Serial.println(data) 串口输出数据并带回车符。/*/*Arduino语言库文件*/官方库文件 EEPROM - EEPROM读写程序库 Ethernet - 以太网控制器程序库 LiquidCrystal - LCD控制程序库 Servo - 舵机控制程序库 SoftwareSerial - 任何数字IO口模拟串口程序库 Stepper - 步进电机控制程序库 Wire - TWI/I2C总线程序库 Matrix - LED矩阵控制程序库 Sprite - LED矩阵图象处理控制程序库非官方库文件 DateTime - a library for keeping track of the current date and time in software. Debounce - for reading noisy digital inputs (e.g. from buttons) Firmata - for communicating with applications on the computer using a standard serial protocol. GLCD - graphics routines for LCD based on the KS0108 or equivalent chipset. LCD - control LCDs (using 8 data lines) LCD 4 Bit - control LCDs (using 4 data lines) LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219. LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips. Messenger - for processing text-based messages from the computer Metro - help you time actions at regular intervals MsTimer2 - uses the timer 2 interrupt to trigger an action every N milliseconds. OneWire - control devices (from Dallas Semiconductor) that use the One Wire protocol. PS2Keyboard - read characters from a PS2 keyboard. Servo - provides software support for Servo motors on any pins. Servotimer1 - provides hardware support for Servo motors on pins 9 and 10 Simple Message System - send messages between Arduino and the computer SSerial2Mobile - send te
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 电子束加速器创新创业项目商业计划书
- 教师招聘之《小学教师招聘》通关训练试卷详解(达标题)附答案详解
- 2025年教师招聘之《幼儿教师招聘》真题带答案详解(综合题)
- 教师招聘之《小学教师招聘》题型+答案(考点题)附参考答案详解【模拟题】
- 教师招聘之《小学教师招聘》考前冲刺练习(综合题)附答案详解
- 2025年教师招聘之《小学教师招聘》考试题库带答案详解(巩固)
- 内蒙古呼伦贝尔农垦集团有限公司招聘笔试题库及1套参考答案详解
- 2025年思政综合测试题及答案
- 工行历年考试题库及答案
- 节能知识培训单位职责课件
- 家电合伙合同(标准版)
- 特种设备(锅炉、压力容器)培训考试试题及答案
- 血站服务礼仪培训课件
- 2025年iptv技术考试题库
- 科室医院感染管理制度
- 检验科科室管理制度
- 学科交叉教学中存在的问题及改进措施
- 山东中专学籍管理办法
- 老年营养健康宣教
- 2025-2026年部编版语文六年级上册教学工作计划(含进度表)
- 胰腺炎超声诊断表现
评论
0/150
提交评论