Arduino 语言注解

发新帖

40

主题

43

帖子

1604

积分

四级会员

Rank: 6Rank: 6

会员升级进度

积分
1604
发表于 2016-5-30 11:31:05 | 显示全部楼层 |阅读模式
分享:
查看: 1622|回复: 2
       喜欢Arduino,周边的朋友都在玩,但很多都没有接触过单片机,心有余而力不足。我接触Arduino时间也不长,但好在使用单片机的时间比较久远了,上手还算快,特总结了Arduino的一些常规使用方法,献给所有喜欢“折腾”的朋友!
  
       Arduino语言是建立在C/C++基础上的,其基础是C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让不了解AVR单片机(微控制器)的朋友也能轻松上手。
......

  1. 基础C语言

  2. 关键字:
  3. if              条件选择语句
  4. if...else       条件选择语句
  5. for             for 循环语句
  6. switch case     并行多分支选择
  7. while           循环语句
  8. do... while     循环语句
  9. break           强制跳出循环
  10. continue        继续   
  11. return          返回
  12. goto            无条件转移

  13. 变量的作用范围(作用域):
  14.     作用范围与该变量在哪儿声明有关,大致分为如下两种。
  15. 1、全局变量:若在程序开头的声明区或者是在没有大括号限制的声明区,所声明的变量的作用域为整个程序。
  16. 2、局部变量:若在大括号内的声明区所声明的变量,其作用域将受限于大括号。若在主程序与各函数中都声明了相同名称的变量,则离开主程序或函数,该变量将自动消失。

  17. 语法符号:
  18. ;     每个语句和数据定义的最后必须有一个分号。
  19. {}    大括号内的内容是函数体,即{......}。
  20. / *  * /   C语言的注释以 / * 开始,以 * / 结束,注释可以跟在指令之后,也可以在独立一行中。
  21. //   注释也可以用 “//”开头,该符号右边整行都是注释。
  22. 赋值运算符:
  23. =     (指定)    例如:A=x    将x变量的值放入A变量;
  24. +=   (加入)   例如:B+=x  将B变量的值与x变量的值相加,其和放入B变量,与B=B+x相同。
  25. -=   (减去)   例如:C-=x  将C变量的值减去x变量的值,其差放入C变量,与C=C-x相同。
  26. *=   (乘入)   例如:D*=x  将D变量的值与x变量的值相乘,其积放入D变量,与D=D*x相同。
  27. /=   (除)     例如:E/=x  将E变量的值除以x变量的值,其商放入E变量,与E=E/x相同。
  28. %=   (取余)   例如:F%=x  将F变量的值除以x变量的值,其余数放入F变量,与F=F%x相同。
  29. &=   (或运算) 例如:G&=x  将G变量的值与x变量的值相AND运算,其结果放入G变量,与G=G&x相同。
  30. |=    (或运算) 例如:H|=x  将H变量的值与x变量的值相OR运算,其结果放入H变量,与H=H|x相同。
  31. ^=    (互斥或)  例如:I^=x  将I变量的值与x变量的值相XOR运算,其结果放入I变量,与I=I^x相同。
  32. <<=   (左移)    例如:J<<=n  将J变量的值左移n位,与J=J<<n相同。
  33. >>=   (右移)    例如:K>>=n  将K变量的值右移n位,与K=K>>n相同。
  34. 算数运算符:
  35. +     (加) 例如:A=x+y 将x与y变量的值相加,其和放入A变量;
  36. -     (减) 例如:B=x-y 将x变量的值减去y变量的值,其差放入B变量;
  37. *     (乘)例如:C=x*y 将x与y变量的值相乘,其积放入C变量;
  38. /     (除)例如:D=x/y 将x变量的值除以y变量的值,其商放入D变量;
  39. %    (取余)例如:E=x%y 将x变量的值除以y变量的值,其余数放入E变量;
  40. 关系运算符:
  41. ==   (相等)例如:x==y  比较x与y变量的值是否相等,相等则其结果为1,不相等则为0;
  42. !=   (不等)例如:x!=y  比较x与y变量的值是否相等,不相等则其结果为1,相等则为0;
  43. <   (小于)例如:x<y   若x变量的值小于y变量的值,其结果为1,否则为0;
  44. >    (大于)例如:x>y   若x变量的值大于y变量的值,其结果为1,否则为0;
  45. <=   (小等于)例如: x<=y  若x变量的值小等于y变量的值,其结果为1,否则为0;
  46. >=  (大等于)例如: x>=y  若x变量的值大等于y变量的值,其结果为1,否则为0;
  47. 逻辑运算符:
  48. &&  (与运算)
  49. 例(x>y)&&(y>z)若x变量的值大于y变量的值,且y变量的值大于z变量的值,则其结果为1,否则为0。
  50. ||  (或运算)
  51. 例(x>y)||(y>z)若x变量的值大于y变量的值,或y变量的值大于z变量的值,则其结果为1,否则为0。
  52. !  (非运算)例 !(x>y)   若x变量的值大于y变量的值,则其结果为0,否则为1。
  53. 递增/减运算符:
  54. ++     (加1)   例如:x++  将x变量的值加1;(在使用i之后,再使i值加1)
  55. --    (减1)  例如:x--  将x变量的值减1。(在使用i之后,再使i值减1)
  56. 数据类型:
  57. char                  字符                        8bit
  58. unsigned char         无符号字符                  8bit                  
  59. int                   整数                        16bit
  60. unsigned int          无符号整数                  16bit
  61. long                  长整数                      32bit
  62. unsigned long         无符号长整数                32bit
  63. float                 浮点数                      32bit
  64. double                双倍精度浮点数              64bit
  65. array                 数组
  66. void                  无                          0
  67.     为什么要定义变量?定义变量就相当于给存储地址取个名字。
  68. 数据类型转换:
  69. char()
  70. byte()
  71. int()
  72. long()
  73. float()
  74. 常量:
  75. HIGH / LOW      表示数字IO口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。
  76. INPUT / OUTPUT  表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT  表示输出(AVR能提供5V电压 40mA电流)。
  77. true / false    true 表示真(1),false表示假(0)。
复制代码


收藏 回复

使用道具 举报

40

主题

43

帖子

1604

积分

四级会员

Rank: 6Rank: 6

会员升级进度

积分
1604
 楼主| 发表于 2016-5-30 11:46:11 | 显示全部楼层
分享:
查看: 1622|回复: 2
  1. Arduino 语言

  2. 结构
  3. void setup()   初始化变量,管脚模式,调用库函数等
  4. void loop()    连续执行函数内的语句
  5. 功能
  6. 数字 I/O
  7. pinMode(pin, mode)    数字IO口输入输出模式定义函数,pin表示为0~13, mode表示为INPUT或OUTPUT。
  8. digitalWrite(pin, value)    数字IO口输出电平定义函数,pin表示为0~13,value表示为HIGH或LOW。比如定义HIGH可以驱动LED。
  9. int digitalRead(pin)    数字IO口读输入电平函数,pin表示为0~13,value表示为HIGH或LOW。比如可以读数字传感器。
  10. 模拟 I/O
  11. int analogRead(pin)    模拟IO口读函数,pin表示为0~5(Arduino Diecimila为0~5,Arduino nano为0~7)。比如可以读模拟传感器(10位AD,0~5V表示为0~1023)。
  12. analogWrite(pin, value) - PWM     数字IO口PWM输出函数,Arduino数字IO口标注了PWM的IO口可使用该函数,pin表示3, 5, 6, 9, 10, 11,value表示为0~255。比如可用于电机PWM调速或音乐播放。
  13. 扩展 I/O
  14. shiftOut(dataPin, clockPin, bitOrder, value)    SPI外部IO扩展函数,通常使用带SPI接口的74HC595做8个IO扩展,dataPin为数据口,clockPin为时钟口,bitOrder为数据传输方向(MSBFIRST高位在前,LSBFIRST低位在前),value表示所要传送的数据(0~255),另外还需要一个IO口做74HC595的使能控制。
  15. unsigned long pulseIn(pin, value)    脉冲长度记录函数,返回时间参数(us),pin表示为0~13,value为HIGH或LOW。比如value为HIGH,那么当pin输入为高电平时,开始计时,当pin输入为低电平时,停止计时,然后返回该时间。
  16. 时间函数
  17. unsigned long millis()   返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。
  18. delay(ms)                延时函数(单位ms)。
  19. delayMicroseconds(us)    延时函数(单位us)。
  20. 数学函数
  21. min(x, y)             求最小值
  22. max(x, y)             求最大值
  23. abs(x)                计算绝对值
  24. constrain(x, a, b)    约束函数,下限a,上限b,x必须在ab之间才能返回。
  25. map(value, fromLow, fromHigh, toLow, toHigh)    约束函数,value必须在fromLow与toLow之间和fromHigh与toHigh之间。
  26. pow(base, exponent)   开方函数,base的exponent次方。
  27. sq(x)                 平方
  28. sqrt(x)               开根号
  29. 三角函数
  30. sin(rad)
  31. cos(rad)
  32. tan(rad)
  33. 随机数函数
  34. randomSeed(seed)        随机数端口定义函数,seed表示读模拟口analogRead(pin)函数 。
  35. long random(max)        随机数函数,返回数据大于等于0,小于max。
  36. long random(min, max)   随机数函数,返回数据大于等于min,小于max。
  37. 外部中断函数
  38. attachInterrupt(interrupt, , mode)    外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数,mode:LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING 下降沿中断。
  39. detachInterrupt(interrupt)    中断开关,interrupt=1 开,interrupt=0 关。
  40. 中断使能函数
  41. interrupts()        使能中断
  42. noInterrupts()      禁止中断
  43. 串口收发函数
  44. Serial.begin(speed)       串口定义波特率函数,speed表示波特率,如9600,19200等。
  45. int Serial.available()    判断缓冲器状态。
  46. int Serial.read()         读串口并返回收到参数。
  47. Serial.flush()            清空缓冲器。
  48. Serial.print(data)        串口输出数据。
  49. Serial.println(data)      串口输出数据并带回车符。
复制代码
收藏 回复 支持 反对

使用道具 举报

40

主题

43

帖子

1604

积分

四级会员

Rank: 6Rank: 6

会员升级进度

积分
1604
 楼主| 发表于 2016-5-30 11:46:50 | 显示全部楼层
分享:
查看: 1622|回复: 2
  1. Arduino语言库文件
  2. 官方库文件
  3. EEPROM         - EEPROM读写程序库
  4. Ethernet       - 以太网控制器程序库
  5. LiquidCrystal  - LCD控制程序库
  6. Servo          - 舵机控制程序库
  7. SoftwareSerial - 任何数字IO口模拟串口程序库
  8. Stepper        - 步进电机控制程序库
  9. Wire           - TWI/I2C总线程序库
  10. Matrix         - LED矩阵控制程序库
  11. Sprite         - LED矩阵图象处理控制程序库
  12. 非官方库文件
  13. DateTime   - a library for keeping track of the current date and time in software.
  14. Debounce   - for reading noisy digital inputs (e.g. from buttons)
  15. Firmata    - for communicating with applications on the computer using a standard serial protocol.
  16. GLCD       - graphics routines for LCD based on the KS0108 or equivalent chipset.
  17. LCD        - control LCDs (using 8 data lines)
  18. LCD 4 Bit  - control LCDs (using 4 data lines)
  19. LedControl - for controlling LED matrices or seven-segment displays with a MAX7221 or MAX7219.
  20. LedControl - an alternative to the Matrix library for driving multiple LEDs with Maxim chips.
  21. Messenger  - for processing text-based messages from the computer
  22. Metro      - help you time actions at regular intervals
  23. MsTimer2   - uses the timer 2 interrupt to trigger an action every N milliseconds.
  24. OneWire    - control devices (from Dallas Semiconductor) that use the One Wire protocol.
  25. PS2Keyboard - read characters from a PS2 keyboard.
  26. Servo      - provides software support for Servo motors on any pins.
  27. Servotimer1 - provides hardware support for Servo motors on pins 9 and 10
  28. Simple Message System  - send messages between Arduino and the computer
  29. SSerial2Mobile  - send text messages or emails using a cell phone (via AT commands over software serial)
  30. TextString     - handle strings
  31. TLC5940        - 16 channel 12 bit PWM controller.
  32. X10            - Sending X10 signals over AC power lines
  33. 以上库文件都需要下载到编译环境(如下目录:arduino-0022\hardware\libraries)中才能使用。
复制代码
收藏 回复 支持 反对

使用道具 举报

返回列表
您需要登录后才可以回帖 登录 | 立即注册

快速回复 返回顶部 返回列表