Arduino入门笔记——(3)

前言

Arduino语言是建立在C/C++基础上的,其实也就是基础的C语言,Arduino语言只不过把AVR单片机(微控制器)相关的一些参数设置都函数化,不用我们去了解他的底层,让我们不了解AVR单片机(微控制器)的朋友也能轻松上手。
在与Arduino DIYER接触的这段时间里,发现有些朋友对Arduino语言还是比较难入手,那么这里我就简单的注释一下Arduino语言,但还是呀多提一嘴如果你了解其他的编程语言,使用Arduino Ide绝对不会是一件难事。

1.C语言

1.1关键字

  • if
  • if…else
  • for
  • switch case
  • while
  • do… while
  • break
  • continue
  • return
  • goto

1.2语法符号

  • ;
  • { }
  • //
  • /* */

1.3运算符

  • =
  • +
  • *
  • /
  • %
  • !=
  • <
  • <=
  • &&
  • ||
  • !
  • ++
  • +=
  • -=
  • *=
  • /=

1.4数据类型

  • boolean布尔类型
  • char
  • byte字节类型
  • int
  • unsignedint
  • long
  • unsignedlong
  • float
  • double
  • string
  • array
  • void

1.5数据类型转换

  • char()
  • byte()
  • int()
  • long()
  • float()

1.6常量

  • HIGH | LOW 表示数字IO口的电平,HIGH 表示高电平(1),LOW 表示低电平(0)。
  • INPUT | OUTPUT 表示数字IO口的方向,INPUT 表示输入(高阻态),OUTPUT 表示输出(AVR能提供5V电压 40mA电流)。
  • true | false true 表示真(1),false表示假(0)。

2.Arduino语言

2.1结构

  • void setup() 初始化变量,管脚模式,调用库函数等
  • void loop() 连续执行函数内的语句

2.2功能

2.2.1数字 I/O

  • 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。比如可以读数字传感器。

2.2.2模拟 I/O

  • 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调速或音乐播放。

2.2.3扩展 I/O

  • 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输入为低电平时,停止计时,然后返回该时间。

2.3时间函数

  • unsigned long millis() 返回时间函数(单位ms),该函数是指,当程序运行就开始计时并返回记录的参数,该参数溢出大概需要50天时间。
  • delay(ms) 延时函数(单位ms)。
  • delayMicroseconds(us) 延时函数(单位us)。

2.4数学函数

  • 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) 开根号

2.5三角函数

  • sin(rad)
  • cos(rad)
  • tan(rad)

2.6随机数函数

  • randomSeed(seed) 随机数端口定义函数,seed表示读模拟口analogRead(pin)函数 。
  • long random(max) 随机数函数,返回数据大于等于0,小于max。
  • long random(min, max) 随机数函数,返回数据大于等于min,小于max。

2.7外部中断函数

  • attachInterrupt(interrupt, , mode) 外部中断只能用到数字IO口2和3,interrupt表示中断口初始0或1,表示一个功能函数,mode:LOW低电平中断,CHANGE有变化就中断,RISING上升沿中断,FALLING 下降沿中断。
  • detachInterrupt(interrupt) 中断开关,interrupt=1 开,interrupt=0 关。

2.8中断使能函数

  • interrupts() 使能中断
  • noInterrupts() 禁止中断

2.9串口收发函数

  • Serial.begin(speed) 串口定义波特率函数,speed表示波特率,如9600,19200等。
  • int Serial.available() 判断缓冲器状态。
  • int Serial.read() 读串口并返回收到参数。
  • Serial.flush() 清空缓冲器。
  • Serial.print(data) 串口输出数据。
  • Serial.println(data) 串口输出数据并带回车符。

3.Arduino语言库文件

3.1官方库文件

  • 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 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
© 版权声明
THE END
点赞944 分享
和此文作者聊聊 抢沙发

    暂无评论内容