知行迭代
导航
首页
最近更改
随机页面
常用
分类目录
Linux命令
Mediawiki常用
电脑技巧
工具
链入页面
相关更改
特殊页面
页面信息
登录
查看“Arduino”的源代码
←
Arduino
页面
讨论
阅读
查看源代码
查看历史
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:[
[1]
]
您可以查看和复制此页面的源代码。
Arduino是一款开源的硬件和软件电子平台,适用于制作交互式项目。 ==简介== ===时间轴=== ===相似=== ==快速入门== *1.买一块Arduino版,如Arduino UNO R3。 *2.下载Arduino IDE,https://www.arduino.cc/en/software *3.打开Arduino IDE,写一个闪灯程序。 <syntaxhighlight lang="Arduino" > /* setup函数块,启动时执行一次, loop函数块,启动后一直循环执行。 */ void setup() { pinMode(13,OUTPUT); } void loop() { digitalWrite(13, 1);//点亮LED delay(1000); digitalWrite(13, 0);//关闭LED delay(1000); } </syntaxhighlight> *4.将Arduino连接到电脑,板子选择Arduino UNO,选择连接的接口,点击upload(→图标),将程序上传到板子。 ==硬件== Arduino 已经发布了 100 多种硬件产品:板、扩展板、载体、套件和其他配件。Arduino硬件主要包括Nano系列,MKR系列,Classic系列和Mega系列。 {{了解更多 |[https://www.arduino.cc/en/hardware Arduino 官网:硬件] }} ===Classic系列=== Classic系列是Arduino项目的支柱,包括最受欢迎的Arduino UNO,以及Leonardo&Micro等其他经典产品。 {| class="wikitable" ! 名称 ! 微控制器 ! 描述 |- | Arduino UNO R4 Minima | | |- | Arduino UNO R4 WiFi | | |- | [https://docs.arduino.cc/hardware/uno-rev3 Arduino UNO R3] | ATmega328P | |- | Arduino Leonardo | | |- | Arduino UNO Mini Limited Edition | | |- | Arduino Micro | |- | Arduino Zero | | |- | Arduino UNO WiFi Rev2 | | |} {{了解更多 |[https://www.arduino.cc/en/hardware Arduino 官网:硬件] }} ===Nano系列=== Nano 系列是主要特点是小。 {| class="wikitable" ! 名称 ! 微控制器 ! 描述 |- |Arduino Nano 33 IoT | | |- |Arduino Nano RP2040 Connect | | |- |[https://docs.arduino.cc/hardware/nano-esp32 Arduino Nano ESP32] |[[ESP32]] | |- |Arduino Nano 33 BLE Sense | | |- |nano ble | | |- | nano every | | |- |nano | | |- |nano motor carrier | | |- |Arduino Nano 33 BLE | | |- |Arduino Nano Every | | |- |Arduino Nano | | |- |Arduino Nano Motor Carrier | | |} {{了解更多 |[https://www.arduino.cc/en/hardware Arduino 官网:硬件] }} ===MKR系列=== {{了解更多 |[https://www.arduino.cc/en/hardware Arduino 官网:硬件] }} ===Mega系列=== {{了解更多 |[https://www.arduino.cc/en/hardware Arduino 官网:硬件] }} ===停产产品=== {{了解更多 |[https://www.arduino.cc/en/hardware Arduino 官网:硬件] }} ==通信== 如果使用同一电源,不用连接地线。 {| class="wikitable" ! 名称 ! 线数 ! 通信模式 ! 拓扑结构 ! 描述 |- | 串口通信<br />UART | 2 (TX, RX) | 异步 | 点对点 | 适用于简单的点对点通信。 |- | I2C通信 | 2 (SDA, SCL) | 同步 | 多主多从 | 适用于需要多个设备通信的嵌入式系统,节省引脚资源但速度中等。 |- | SPI通信 | 4(MOSI, MISO, SCK, SS/CS) | 同步 | 主从 | 高速数据传输,速度快但需要更多引脚。 |} ===串口通信=== [[串口]]主要用于按位进行传输数据。arduino uno只有一组硬件串口,但可以使用多个软串口。 以下示例,Arduino和语言识别模块[[ASRPRO]]通过串口通信,对ASRPRO说开,当ASRPRO识别到开,发送字符串'o'到Arduino,Arduino接收到'o',打开板载灯。 ASRPRO可以使用3组。使用板载默认组为PB_5(TX),PB_6(RX)。另外两组可以指定端口。 <syntaxhighlight lang="c" > // 上电初始化 // 系统应用初始化 // 设置Serial波特率9600,TX口为PB_5,RX口为PB_6 // ASR_CODE // </syntaxhighlight> Arduino的默认串口端口为位于 0(RX)和 1(TX)的两个引脚。 将ASRPRO的PB_5(发送端口)连接到Arduino的0(接收端口),另一个也相应连接,地线连接在一起。 <syntaxhighlight lang="c++" > int data_read = 0; // 定义变量用于接收串口数据 void setup() { Serial.begin(9600); // 启动串口,设置波特率为 9600 bps } void loop() { data_read = Serial.read(); if (data_read == 'o'){ // 开灯 } } </syntaxhighlight> ===I2C通信=== arduino和[[树莓派]]通过I2C通信示例。 * '''1. 硬件连接''' Arduino 的 SDA 引脚连接到树莓派的SDA(Pin3)。 <br /> Arduino 的 SCL 引脚连接到树莓派的SCL(Pin5)。<br /> Arduino和树莓派的地线 (GND) 必须连接。<br /> * '''2. 开启树莓派 I2C 接口''' 图形界面,在开始菜单》首选项》Raspberry Pi Configuration》Interfaces中开启I2C接口,然后重启。也可以使用命令启动 : <syntaxhighlight lang="bash" > sudo raspi-config # 选择 Interfacing Options -> I2C -> Enable sudo reboot </syntaxhighlight> * '''3. Arduino 代码''' 确保 Arduino 上的代码正确配置为 I2C 从机,并且地址正确。例如,使用地址 0x08: <syntaxhighlight lang="cpp" > #include <Wire.h> void setup() { Wire.begin(0x08); // 初始化 I2C 从机,地址为 0x08 Wire.onReceive(receiveEvent); // 注册接收事件 Wire.onRequest(requestEvent); // 注册请求事件 Serial.begin(9600); } void loop() { delay(100000); //延迟100秒,不影响I2C通信 } void receiveEvent(int howMany) { while (Wire.available()) { char c = Wire.read(); Serial.print(c); } Serial.println(); } void requestEvent() { Wire.write("Hello from Arduino!"); } </syntaxhighlight> * '''4. 查看是否连接''' 在树莓派上,使用<code>sudo i2cdetect -y 1</code>查看是否连接,如上面设置的08地址: <syntaxhighlight lang="text" > 0 1 2 3 4 5 6 7 8 9 a b c d e f 00: 08 -- -- -- -- -- -- -- 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- 70: -- -- -- -- -- -- -- -- </syntaxhighlight> 如果命令不能使用,是没有安装好i2c-tools: <syntaxhighlight lang="bash" > sudo apt-get update sudo apt-get upgrade sudo apt-get install -y i2c-tools </syntaxhighlight> * '''5. 测试简单的 Python 脚本''' <syntaxhighlight lang="python" > import smbus import time # 初始化I2C总线 bus = smbus.SMBus(1) address = 0x08 while True: # 从Arduino请求数据 data = bus.read_i2c_block_data(address, 0, 16) print(f"Received from Arduino: {''.join(chr(i) for i in data if i != 0)}") # 向Arduino发送数据 bus.write_i2c_block_data(address, 0, list(b"Hello from Pi")) time.sleep(1) </syntaxhighlight> ==资源== ===官网=== * Arduino 官网:https://www.arduino.cc * Arduino 文档:https://docs.arduino.cc * Arduino 源代码:https://github.com/arduino ===网站=== ===教程=== * [https://getiot.tech/zh/arduino/ Getiot.tech:Arduino 教程] ===视频教程=== *[https://www.bilibili.com/video/BV1YW411Z76E/ bilibili:《别再找了!这是有史以来最棒的Arduino教程系列》感谢佑來老师的奉献无私!] ===文章===
本页使用的模板:
模板:了解更多
(
查看源代码
)
返回至“
Arduino
”。