Arduino入门常用指令详解及语法指南
Arduino入门常用指令详解及语法指南
一、Arduino程序基础结构
void setup() {
// 初始化代码(只执行一次)
}
void loop() {
// 主循环代码(重复执行)
}
结构说明:
setup()
:上电或复位后执行一次loop()
:持续循环执行- 必须包含这两个函数,即使为空
二、常用核心指令详解
1. 引脚模式设置
pinMode(pin, mode);
- 参数:
- pin:引脚编号(0-13/A0-A5)
- mode:INPUT/INPUT_PULLUP/OUTPUT
- 案例:
void setup() {
pinMode(13, OUTPUT); // 设置13号引脚为输出
pinMode(A0, INPUT); // 设置A0为输入
}
2. 数字输出
digitalWrite(pin, value);
- 参数:
- value:HIGH/LOW
- 案例(LED闪烁):
void loop() {
digitalWrite(13, HIGH);
delay(1000);
digitalWrite(13, LOW);
delay(1000);
}
3. 数字输入
int state = digitalRead(pin);
- 返回值:HIGH/LOW
- 案例(按钮检测):
void loop() {
int btnState = digitalRead(2);
if(btnState == HIGH) {
digitalWrite(13, HIGH);
}
}
4. 模拟输入
int value = analogRead(pin);
- 参数:A0-A5(0-5V对应0-1023)
- 案例(电位器读取):
void loop() {
int potValue = analogRead(A0);
Serial.println(potValue);
}
5. PWM输出
analogWrite(pin, value);
- 参数:
- pin:带~标记的引脚(3,5,6,9,10,11)
- value:0-255
- 案例(呼吸灯):
void loop() {
for(int i=0; i<=255; i++){
analogWrite(9, i);
delay(10);
}
}
三、串口通信指令
1. 初始化串口
Serial.begin(baudrate);
- 常用波特率:9600, 115200
- 案例:
void setup() {
Serial.begin(9600);
}
2. 数据发送
Serial.print("Hello World");
Serial.println(variable);
3. 数据接收
if(Serial.available() > 0){
char data = Serial.read();
}
四、流程控制语句
1. if条件判断
if(condition) {
// 代码块
} else if(condition2) {
// 代码块
} else {
// 代码块
}
2. for循环
for(int i=0; i<10; i++){
// 重复代码
}
3. while循环
while(condition){
// 循环代码
}
五、重要语法规范
1. 语句规范
- 每条语句以分号结尾
- 区分大小写(DigitalWrite ≠ digitalWrite)
- 注释方式:
// 单行注释 /* 多行注释 */
2. 变量声明
- 必须指定数据类型
- 常见类型:int, float, boolean, char
int ledPin = 13;
float voltage = 3.3;
3. 函数定义
returnType functionName(parameters){
// 函数体
}
- 案例:
int addNumbers(int a, int b){
return a + b;
}
六、综合应用案例
光控LED系统
int lightSensor = A0;
int ledPin = 9;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
int sensorValue = analogRead(lightSensor);
int brightness = map(sensorValue, 0, 1023, 0, 255);
analogWrite(ledPin, brightness);
Serial.print("亮度:");
Serial.println(sensorValue);
delay(100);
}
七、注意事项
- 引脚模式必须预先设置
- 模拟输出仅支持特定PWM引脚
- 串口通信需保持波特率一致
- 避免在loop()中使用过长延时
- 变量作用域需特别注意
通过掌握这些基础指令和语法规范,可以快速开展Arduino开发。建议配合实际硬件操作练习,每个案例均可使用Arduino UNO开发板实现。