龙珠超宇宙游民星空:Arduino语言注解
来源:百度文库 编辑:九乡新闻网 时间:2024/04/25 16:57:09
Arduino语言注解
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
基础C语言
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
关键字:
- if
- if...else
- for
循环语句 - switch case
并行多分支选择 - while
循环语句 - do... while
循环语句 - break
强制跳出循环 - continue
继续 - return
返回 - goto
无条件转移 - switch case
变量的作用范围(作用域):
1、全局变量:若在程序开头的声明区或者是在没有大括号限制的声明区,所声明的变量的作用域为整个程序。
2、局部变量:若在大括号内的声明区所声明的变量,其作用域将受限于大括号。若在主程序与各函数中都声明了相同名称的变量,则离开主程序或函数,该变量将自动消失。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
语法符号:
- ;
每个语句和数据定义的最后必须有一个分号。 - {}
大括号内的内容是函数体,即{......}。 - / *
* / C语言的注释以 / * 开始,以 * / 结束,注释可以跟在指令之后,也可以在独立一行中。 - //
注释也可以用 “//”开头,该符号右边整行都是注释。 - / *
赋值运算符:
- =
(指定) 例如:A=x 将x变量的值放入A变量; - +=
(加入) 例如:B+=x 将B变量的值与x变量的值相加,其和放入B变量,与B=B+x相同。 - -=
(减去) 例如:C-=x 将C变量的值减去x变量的值,其差放入C变量,与C=C-x相同。 - *=
(乘入) 例如:D*=x 将D变量的值与x变量的值相乘,其积放入D变量,与D=D*x相同。 - /=
(除) 例如:E/=x 将E变量的值除以x变量的值,其商放入E变量,与E=E/x相同。 - %=
(取余) 例如:F%=x 将F变量的值除以x变量的值,其余数放入F变量,与F=F%x相同。 - &=
(或运算) 例如:G&=x 将G变量的值与x变量的值相AND运算,其结果放入G变量,与G=G&x相同。 - |=
(或运算) 例如:H|=x 将H变量的值与x变量的值相OR运算,其结果放入H变量,与H=H|x相同。 - ^=
(互斥或) 例如:I^=x 将I变量的值与x变量的值相XOR运算,其结果放入I变量,与I=I^x相同。 - <<=
(左移) 例如:J<<=n 将J变量的值左移n位,与J=J< - >>=
(右移) 例如:K>>=n 将K变量的值右移n位,与K=K>>n相同。 - >>=
算数运算符:
- +
(加) 例如:A=x+y 将x与y变量的值相加,其和放入A变量; - -
(减) 例如:B=x-y 将x变量的值减去y变量的值,其差放入B变量; - *
(乘)例如:C=x*y 将x与y变量的值相乘,其积放入C变量; - /
(除)例如:D=x/y 将x变量的值除以y变量的值,其商放入D变量; - %
(取余)例如:E=x%y 将x变量的值除以y变量的值,其余数放入E变量;
关系运算符:
- ==
(相等)例如:x==y 比较x与y变量的值是否相等,相等则其结果为1,不相等则为0; - !=
(不等)例如:x!=y 比较x与y变量的值是否相等,不相等则其结果为1,相等则为0; - <
(小于)例如:x 若x变量的值小于y变量的值,其结果为1,否则为0; - >
(大于)例如:x>y 若x变量的值大于y变量的值,其结果为1,否则为0; - <=
(小等于)例如: x<=y 若x变量的值小等于y变量的值,其结果为1,否则为0; - >=
(大等于)例如: x>=y 若x变量的值大等于y变量的值,其结果为1,否则为0; - !=
逻辑运算符:
- &&
(与运算) - 例(x>y)&&(y>z)若x变量的值大于y变量的值,且y变量的值大于z变量的值,则其结果为1,否则为0。
- ||
(或运算) - 例(x>y)||(y>z)若x变量的值大于y变量的值,或y变量的值大于z变量的值,则其结果为1,否则为0。
- !
(非运算)例 !(x>y) 若x变量的值大于y变量的值,则其结果为0,否则为1。
递增/减运算符:
- ++
(加1) 例如:x++ 将x变量的值加1;(在使用i之后,再使i值加1) - --
(减1) 例如:x-- 将x变量的值减1。(在使用i之后,再使i值减1) - --
数据类型:
- char
字符 8bit - unsigned char
无符号字符 8bit - int
整数 16bit - unsigned int
无符号整数 16bit - long
长整数 32bit - unsigned long
无符号长整数 32bit - float
浮点数 32bit - double
双倍精度浮点数 64bit - array
数组 - void
无 0 - int
数据类型转换:
- 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)。 - INPUT
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Arduino 语言
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
结构
- void setup()
初始化变量,管脚模式,调用库函数等 - void loop()
连续执行函数内的语句 - void loop()
功能
数字
- pinMode(pin, mode)
数字IO口输入输出模式定义函数,pin表示为0~13, mode表示为INPUT或OUTPUT。 - digitalWrite(pin, value)
数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。 - int digitalRead(pin)
数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器。 - digitalWrite(pin, value)
模拟
- int analogRead(pin)
模拟IO口读函数,pin表示为0~5(Arduino Diecimila为0~5,Arduino nano为0~7)。比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。 - analogWrite(pin, value) - PWM
数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表示3, 5, 6, 9, 10, 11,value表示为0~255。比如可用于电机PWM调速或音乐播放。 - analogWrite(pin, value) - PWM
扩展
- shiftOut(dataPin, clockPin, bitOrder, value)
SPI外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要传送的数据(0~255),另外还需要一个IO口做74HC595的使能控制。 - unsigned long pulseIn(pin, value)
脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。 - unsigned long pulseIn(pin, value)
时间函数
- unsigned long millis()
返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。 - delay(ms)
延时函数(单位ms)。 - delayMicroseconds(us)
延时函数(单位us)。 - delay(ms)
数学函数
- 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)
开根号 - max(x, y)
三角函数
- sin(rad)
- cos(rad)
- tan(rad)
随机数函数
- randomSeed(seed)
随机数端口定义函数,seed表示读模拟口analogRead(pin)函数 。 - long random(max)
随机数函数,返回数据大于等于0,小于max。 - long random(min, max)
随机数函数,返回数据大于等于min,小于max。 - long random(max)
外部中断函数
- attachInterrupt(interrupt, , mode)
外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数,mode:LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING 下降沿中断。 - detachInterrupt(interrupt)
中断开关,interrupt=1 开,interrupt=0 关。 - detachInterrupt(interrupt)
中断使能函数
- interrupts()
使能中断 - noInterrupts()
禁止中断 - noInterrupts()
串口收发函数
- Serial.begin(speed)
串口定义波特率函数,speed表示波特率,如9600,19200等。 - int Serial.available()
判断缓冲器状态。 - int Serial.read()
读串口并返回收到参数。 - Serial.flush()
清空缓冲器。 - Serial.print(da
ta) 串口输出数据。 - Serial.println(da
ta) 串口输出数据并带回车符。 - int Serial.available()
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Arduino语言库文件
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
官方库文件
- EEPROM
- EEPROM读写程序库 - Ethernet
- 以太网控制器程序库 - LiquidCrystal
- LCD控制程序库 - Servo
- 舵机控制程序库 - SoftwareSerial - 任何数字IO口模拟串口程序库
- Stepper
- 步进电机控制程序库 - Wire
- TWI/I2C总线程序库 - Matrix
- LED矩阵控制程序库 - Sprite
- LED矩阵图象处理控制程序库 - Ethernet
非官方库文件
- 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 da ta lines) - LCD 4 Bit
- control LCDs (using 4 da ta 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 act ion every N milliseconds. - On
eWire - control devices (from Dallas Semiconductor) that use the On e 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 text messages or emails using a cell phone (via AT commands over software serial) - TextString
- handle strings - TLC5940
- 16 channel 12 bit PWM controller. - X10
- Sending X10 signals over AC power lines - Debounce
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
以上库文件都需要下载到编译环境(如下目录:arduino-0022\hardware\libraries)中才能使用。
文件下载地址:http://arduino.cc/en/Main/Software