当前位置: 首页 > news >正文

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);
}

七、注意事项

  1. 引脚模式必须预先设置
  2. 模拟输出仅支持特定PWM引脚
  3. 串口通信需保持波特率一致
  4. 避免在loop()中使用过长延时
  5. 变量作用域需特别注意

通过掌握这些基础指令和语法规范,可以快速开展Arduino开发。建议配合实际硬件操作练习,每个案例均可使用Arduino UNO开发板实现。

相关文章:

  • DeepSeek在数据爬取领域的革新实践:架构解析与实战指南
  • 案例驱动的 IT 团队管理:创新与突破之路:第三章 项目攻坚:从流程优化到敏捷破局-3.2.2 Scrum vs Kanban 的场景化选择
  • DeepSeek:AI 搜索引擎的革新者?
  • Chat2DB:自然语言生成 SQL 的时代来临,数据库管理更简单
  • FPGA中级项目4——DDS实现
  • 物联网中设备与平台通信的方式
  • SENT接口
  • 如何处理和格式化日期差异:JavaScript 日期差异计算实例
  • 高项第十二章——项目质量管理
  • 关于foobar2000插件的一点理解
  • ollama 可以通过127.0.0.1访问,但是无法通过本机ip访问
  • 人工智能领域大模型、大模型使用、AI工作流 学习路径
  • Oracle ASM 磁盘组冗余策略
  • 向量数据库:AI时代的“新基建”
  • 护网面试题
  • 第18章-综合以上功能 基于stm32的智能小车(远程控制、避障、循迹) 基于stm32f103c8t6_HAL库_CubeMX_超详细,包含代码讲解和原理图
  • 【Docker入门】构建推送第一个Docker映像
  • HCIA-PPP实验
  • 将字符串中的小写字母转换成大写字母(信息学奥赛一本通-1138)
  • unity中 添加dll 报错 DllNotFoundException
  • 鸿蒙电脑正式发布,余承东:国产软件起步晚,基础弱,探索面向未来的电脑体验
  • 第1现场|俄媒称乌克兰网上出售北约对乌军培训手册
  • 海南省检察院专委李思阳被带走,去年曾遭人举报违规插手案件
  • 半数以上中国人都缺这几种营养,吃什么能补回来?
  • 4月份国民经济顶住压力稳定增长
  • 视觉周刊|走进变革中的博物馆