Arduino 语言常用函数说明

Arduino 语言

Arduino 是由 C/C++ 混合编写而成。Arduino 语言也继承了 C/C++ 语言的语法。通常所说的 Arduino 语言,是指 Arduino 核心库文件提供的各种应用程序编程接口(Application Programming Interface,简称API)的集合。

代码示例

Arduino 的基本程序由 setup()loop() 组成,这两个函数是必须的。可以发现 Arduino 不像 C/C++ 语言一样包含 main() 函数。但是它也可以有头文件和自定义函数等要素。

void setup()
{
  // 在这里加入你的setup代码,它只会运行一次:
}
 
void loop() 
{
  // 在这里加入你的loop代码,它会不断重复运行:
}
/*
 * State change detection: 检测按键按下的状态并累计次数
 */

// 定义端口
const int ledPin = 13;
const int buttonPin = 2;

// 设置变量
int currentButtonState = 0;
int lastButtonState = 0;
int count = 0;

void setup() {
  // 初始化端口
  pinMode(ledPin, OUTPUT);
  pinMode(buttonPin, INPUT);
  // 设定串行通信的波特率
  Serial.begin(9600);
}

void loop() {
  // 读取按键端口数据
  currentButtonState = digitalRead(buttonPin);

  
  if (currentButtonState != lastButtonState){  // 检测按键状态是否与上一状态一样
    if (currentButtonState == HIGH){           // 若不一样,则判断当前按键状态是否为按下
      digitalWrite(ledPin, HIGH);
      count++;
      Serial.println("on");
      Serial.println("the Count of Puches: ");
      Serial.println(count);
      }
      else{
        digitalWrite(ledPin, LOW);
        Serial.println("off");
        }
    delay(100);
    }
  lastButtonState = currentButtonState;

}

时间函数 Time Functions

  • delay():

    • 描述:将程序暂停给定参数的时间量(以毫秒为单位)
    • 函数原型:delay(ms)
    • 参数:ms - 暂停的毫秒数
    • 返回值:无
  • millis():

    • 描述:返回自Arduino板开始运行当前程序以来的毫秒数。大约50天后,此数字将溢出(回到零)
    • 语法: time = millis()
    • 参数:无
    • 返回值:程序启动后的毫秒数(unsigned long 类型)

数字 I/O 函数 Digital I/O Functions

  • pinMode()

    • 描述:将指定的引脚配置为输入或者输出的模式
    • 函数原型:pinModel(pin,mode)
    • 参数:
      • pin:要设置其模式的引脚编号
      • mode:INPUT(输入模式),OUTPUT(输出模式),INPUT_PULLUP(上拉输入模式)
    • 返回值:无
  • digitalRead():

    • 描述:读取指定数字引脚的值
    • 函数原型:digitalRead(pin)
    • 参数:要读取的数字引脚的编号
    • 返回值:HIGH(1),LOW(0)
  • digitalWrite()

    • 描述:将数字 HIGH 或 LOW 的值写入数字引脚
    • 函数原型:digitalWrite(pin,value)
    • 参数:
      • pin:要设置其输出的引脚编号
      • value:HIGH(1),LOW(0)
    • 返回值:无

模拟 I/O 函数 Analog I/O Functions

  • analogWrite():

    • 描述:在指定引脚输出指定占空比的 PWM 方波
    • 函数原型:analogWrite(pin,value)
    • 参数:
      • pin:输出引脚
      • value:占空比,介于 0 - 255 之间
    • 返回值:无
  • analogRead():

    • 描述:读取指定引脚的模拟信号值
    • 函数原型:analogRead(pin)
    • 参数:
      • pin:要读取的模拟引脚的编号
    • 返回值:无

在 analogWrite() 和 analogRead() 函数内部,已经完成了引脚的初始化,因此不用在 Setup() 函数中进行初始化操作。

数学函数 Math Functions

  • map():
    • 描述:将数字从一个范围重新映射到另一个范围。
    • 函数原型:map(value, fromLow, fromHigh, toLow, toHigh)
    • 参数:
      • value:要映射的数
      • fromLow:当前值范围的下限
      • fromHigh:当前值范围的下限
      • toLow:目标值范围的下限
      • toHigh:目标值范围的上限
    • 返回值:映射后的值
/* Map an analog value to 8 bits (0 to 255) */
void setup() {}

void loop()
{
  int val = analogRead(0);
  val = map(val, 0, 1023, 0, 255);
  analogWrite(9, val);
}

注意:不会将值限制在该范围内,因为超出范围的值有时是有意义且有用的。如果需要对范围进行限制,则可以在此函数之前或之后使用 constrain() 函数

  • constrain():
    • 描述:将数字约束在一个范围内。
    • 函数原型:constrain(x, a, b)
    • 参数:
      • x:要约束的数字
      • a:范围的下限
      • b:范围的上限
    • 返回值:
      • 如果 x 在(a, b) 范围内:返回 x
      • 如果 x 小于 a:返回 a
      • 如果 x 大于 b:返回 b

通信串口 Serial 的函数

  • begin():

    • 描述:设置串行数据传输的数据速率,以每秒位数(波特)为单位。
    • 函数原型:Serial.begin(speed) / Serial.begin(speed, config)
    • 参数:
      • speed:比特每秒(波特) - long
      • config:设置数据,奇偶校验和停止位
    • 返回值:无
  • available():

    • 描述:获取可从串行端口读取的字节数(字符数)。
    • 函数原型: Serial.available()
    • 参数:无
    • 返回值:可读的字节数。
  • read():

    • 描述:读取传入的串行数据。
    • 函数原型:Serial.read()
    • 参数:无
    • 返回值:可用的传入串行数据的第一个字节(如果没有可用的数据,则为-1) - int
  • print():

    • 描述:在串行口以人们可以看懂的 ASSCII 码的形式打印数据。
    • 函数原型:Serial.print(val) / Serial.print(val, format)
    • 参数:
      • val:要打印的值。
      • format:可选值,选择打印出的参数的类型。如:BIN(binary, or base 2), OCT(octal, or base 8), DEC(decimal, or base 10), HEX(hexadecimal, or base 16) 。
    • 返回值:size_t:print() 返回写入的字节数,但读取该数字是可选的。
Serial.print(78, BIN) gives "1001110"

Serial.print(78, OCT) gives "116"

Serial.print(78, DEC) gives "78"

Serial.print(78, HEX) gives "4E"

Serial.print(1.23456, 0) gives "1"

Serial.print(1.23456, 2) gives "1.23"

Serial.print(1.23456, 4) gives "1.2346"
  • println()

    • 描述:将数据作为人类可读的ASCII文本打印到串行端口,后跟回车符(ASCII 13或'\ r')和换行符(ASCII 10或'\ n')
    • 函数原型:Serial.println(val) / Serial.println(val, format)
    • 参数:同 print()
    • 返回值:size_t:print() 返回写入的字节数,但读取该数字是可选的。
  • parseInt()

    • 描述:查找传入串行流中的下一个有效整数。
    • 函数原型:Serial.parseInt() / Serial.parseInt(char skipChar)
    • 参数:
      • skipChar:用于跳过搜索中指定的字符。例如,用于跳过数千个分频器。
    • 返回值:long:下一个有效整数

你可能感兴趣的:(Arduino 语言常用函数说明)