Arduino函数全攻略:从入门到精通
需积分: 10 44 浏览量
更新于2024-07-17
1
收藏 100KB DOCX 举报
"adruino函数参考手册"
Arduino是一款开源电子原型平台,因其简单易用的编程环境和丰富的扩展模块而受到广大硬件爱好者和初学者的欢迎。本手册详细介绍了Arduino的内置函数,对于学习和使用Arduino进行项目开发具有重要的参考价值。
一、项目结构
在Arduino编程中,项目主要由两个关键函数组成:`setup()`和`loop()`。`setup()`函数在程序启动时执行一次,通常用于初始化硬件设置,如设置引脚模式、初始化串口通信等。`loop()`函数则会不断循环执行,是程序的主要运行流程。
1.1 `setup()`:这是程序启动后执行的第一个函数,用于设置初始状态。
1.2 `loop()`:程序的核心部分,会无限次循环执行,实现具体的功能逻辑。
二、数字输入输出
数字输入输出是Arduino基本操作之一,通过`pinMode()`, `digitalWrite()`和`digitalRead()`函数实现。
2.1 `pinMode(pin, mode)`:设置指定引脚的模式,mode可以是INPUT或OUTPUT,用于设定引脚为输入或输出。
2.2 `digitalWrite(pin, value)`:将数字值写入指定的输出引脚,value可以是HIGH或LOW,表示高电平或低电平。
2.3 `digitalRead(pin)`:读取指定输入引脚的电平状态,返回HIGH或LOW。
三、模拟输入输出
Arduino板上的某些引脚支持模拟输入和输出,通过`analogRead()`和`analogWrite()`实现。
3.1 `analogRead(pin)`:读取指定模拟输入引脚的值,返回0-1023之间的整数,代表0-5V的电压值。
3.2 `analogWrite(pin, value)`:对指定模拟输出引脚进行PWM(脉宽调制),value是0-255之间的值,控制占空比。
四、高级输入输出
这部分涵盖了一些高级功能,如调声、字节操作、脉冲检测和外部中断。
4.1.1 `tone()`:设置指定引脚发出特定频率的声音。
4.1.2 `noTone(pin)`:停止在指定引脚上的发声。
4.2.1 `SHIFTOUT()`:向并行设备输出数据,通常用于位移寄存器。
4.2.2 `SHIFTIN()`:从并行设备接收数据,用于位移寄存器的读取。
4.3 `pulseIn()`:测量引脚上的高电平或低电平脉冲宽度。
4.4 外部中断:通过`attachInterrupt()`, `detachInterrupt()`管理中断事件。
五、时间控制
时间控制函数用于获取系统运行时间和实现延时。
5.1.1 `millis()`:返回自Arduino启动以来的毫秒数,用于非精确延时。
5.1.2 `micros()`:返回自Arduino启动以来的微秒数,提供更精细的时间测量。
5.2.1 `delay(ms)`:程序暂停指定毫秒数,阻塞执行。
5.2.2 `delayMicroseconds(us)`:暂停指定微秒数,比`delay()`更精确。
六、串口通信
串口通信是Arduino与其他设备交互的重要方式。
6.1.1 `Serial.begin(speed)`:初始化串口通信,设置波特率。
6.1.2 `Serial.begin(speed, config)`:设置波特率及数据帧格式。
6.2.1 `Serial.print(val)`:在串口发送一个变量或字符串。
6.2.2 `Serial.println(val)`:与`Serial.print()`类似,但会在末尾添加换行符。
6.3 `Serial.read()`:读取串口接收到的一个字符。
6.4.x:其他串口相关的辅助函数,包括检查可用数据、关闭串口、清空缓冲区、解析数值等。
以上仅是Arduino函数参考手册的部分内容,实际手册还包含更多如I2C、SPI通信、PWM控制、温度读取等功能的详细说明。通过深入理解和熟练运用这些函数,开发者可以实现各种复杂的硬件交互和控制任务。
2016-11-26 上传
107 浏览量
2021-10-04 上传
2017-06-05 上传
2022-04-11 上传
2024-07-18 上传
2021-09-25 上传
2022-04-10 上传
2023-09-05 上传
lzblm
- 粉丝: 1
- 资源: 1
最新资源
- 深入浅出:自定义 Grunt 任务的实践指南
- 网络物理突变工具的多点路径规划实现与分析
- multifeed: 实现多作者间的超核心共享与同步技术
- C++商品交易系统实习项目详细要求
- macOS系统Python模块whl包安装教程
- 掌握fullstackJS:构建React框架与快速开发应用
- React-Purify: 实现React组件纯净方法的工具介绍
- deck.js:构建现代HTML演示的JavaScript库
- nunn:现代C++17实现的机器学习库开源项目
- Python安装包 Acquisition-4.12-cp35-cp35m-win_amd64.whl.zip 使用说明
- Amaranthus-tuberculatus基因组分析脚本集
- Ubuntu 12.04下Realtek RTL8821AE驱动的向后移植指南
- 掌握Jest环境下的最新jsdom功能
- CAGI Toolkit:开源Asterisk PBX的AGI应用开发
- MyDropDemo: 体验QGraphicsView的拖放功能
- 远程FPGA平台上的Quartus II17.1 LCD色块闪烁现象解析