前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Arduino开发Seeed Studio XIAO RP2040

Arduino开发Seeed Studio XIAO RP2040

作者头像
鳄鱼儿
发布2024-05-21 15:40:50
1450
发布2024-05-21 15:40:50
举报
文章被收录于专栏:鳄鱼儿的技术分享

前言

准备一些硬件设备

  • Seeed Studio XIAO RP2040 一块
  • 电脑——window 或 Mac 一台
  • Type-C数据线

某些USB线只支持充电,无传输数据功能。

连接电脑

  1. 按住boot按钮,然后将 Seeed Studio XIAO RP2040 连接到 PC。
Seeed Studio XIAO RP2040按键.png
Seeed Studio XIAO RP2040按键.png

2. 如果电脑文件管理器上显示了“RPI-RP2”磁盘,并且Seeed Studio XIAO RP2040上的电源指示灯亮起,则连接完成。

Arduino开发

下载Arduino

根据电脑的操作系统下载并安装最新版本的Arduino IDE。

下载地址:www.arduino.cc/en/software

添加开发板包

将 Seeed Studio Xiao RP2040 板卡包添加到Arduino IDE中,步骤如下:

导航到“文件>首选项”,然后使用以下 URL 填充“其他开发板管理器地址”:

代码语言:javascript
复制
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json
Seeed Studio Xiao RP2040开发包.png
Seeed Studio Xiao RP2040开发包.png

导航到“工具->开发板->开发板管理器...”,在搜索框中输入“RP2040”。选择最新版本的“Raspberry Pi Pico/RP2040”并安装它。

Seeed Studio Xiao RP2040开发板管理器下载.png
Seeed Studio Xiao RP2040开发板管理器下载.png

注意:Seeed Xiao RP2040的开发板软件包已经停止运维,请不要下载使用!

选择开发板和端口

开发板选择:导航到“工具->开发板->Raspberry Pi Pico/RP2040->Seeed XIAO RP2040”,选择Seeed XIAO RP2040开发板。

Seeed XIAO RP2040选择开发板.png
Seeed XIAO RP2040选择开发板.png

端口选择:导航到“工具->端口”,选择你对应开发板的连接串口。

Seeed XIAO RP2040选择端口.png
Seeed XIAO RP2040选择端口.png

运行示例代码

通过导航“文件 --> 示例--->01.基础知识 --> 闪烁”打开闪烁示例的源代码。

Seeed XIAO RP2040示例源代码.png
Seeed XIAO RP2040示例源代码.png

这里需要确认下选择开发板和端口是否正确,回顾开发板和端口选择配置

上传到开发板

单击上传按钮将闪烁示例代码上传到开发板。

上传到开发板.png
上传到开发板.png

上传后,你应该能够看到板上的引脚 25 绿色 (USER) LED 每秒闪烁一次。

如果上传Arduino程序失败,请尝试按住“BOOT”按钮,然后单击“RUN”按钮。 此时,Seeed Studio XIAO RP2040将进入启动模式,这个时候可以再次烧录Arduino程序。

其他示例

输出Hello World

使用引脚 D6 作为 UART 的 TX 引脚,引脚 D7 作为 UART 的 RX 引脚发送“Hello World!

代码语言:javascript
复制
void setup() {
    Serial.begin(115200);
    while (!Serial);
}

void loop() {
    Serial.println("Hello,World");
    delay(1000);
}

代码解析

  1. void setup(): 这是一个特殊的函数,它在程序开始执行时运行一次,用于初始化设置。
    • Serial.begin(115200): 初始化串口通信,将串口的波特率设置为 115200 比特每秒。这意味着在串口上的数据传输速率为 115200 bps。
    • while (!Serial);: 这一行会等待串口准备就绪。在某些情况下,当程序开始时,串口可能需要一些时间来初始化,所以这一行确保在串口完全准备好之前不会继续执行后续的代码。
  2. void loop(): 这是另一个特殊的函数,它会不断循环执行,用于执行主要的操作。
    • Serial.println("Hello,World");: 在每次循环中,向串口发送一条包含 "Hello, World" 字符串的信息,然后换行。这会导致该信息被发送到连接到 Arduino 板上的串口(如 USB 串口),从而可以通过串口监视器查看。
    • delay(1000);: 在发送完信息后,程序会暂停执行 1000 毫秒(也就是 1 秒),然后再继续下一次循环。这样做是为了在每次发送信息后等待一段时间。

按键控制开关LED灯

将按钮连接到引脚 D0,将 LED 连接到引脚 25。然后上传以下代码以使用按钮控制 LED 的开/关。

请注意,Seeed Studio XIAO RP2040的工作电压为3.3V,如果将传感器错误地连接到5V,主板可能无法正常工作。

代码语言:javascript
复制
const int buttonPin = D0;     // 按钮引脚号
const int ledPin =  25;      // LED引脚号

int buttonState = 0;         // 变量,用于读取按钮状态

void setup() {
  // 初始化LED引脚为输出模式:
  pinMode(ledPin, OUTPUT);
  // 初始化按钮引脚为输入模式:
  pinMode(buttonPin, INPUT);
}

void loop() {
  // 读取按钮状态的值:
  buttonState = digitalRead(buttonPin);

  // 检查按钮是否被按下。如果按下,buttonState 为高电平(HIGH):
  if (buttonState == HIGH) {
    // 关闭LED灯:
    digitalWrite(ledPin, HIGH);
  } else {
    // 打开LED灯:
    digitalWrite(ledPin, LOW);
  }
}

指令控制开关LED灯

通过串口向单片机发送特定指令,如“o”指令,开发板的LED灯亮,输入特定指令,如“c”指令,开发板的LED灯灭

代码语言:javascript
复制
int LED_PIN = LED_BUILTIN; // 将LED的引脚定义为LED_BUILTIN
bool ledState = LOW; // 初始LED状态为关闭
void setup() {
	pinMode(LED_PIN, OUTPUT); // 初始化LED引脚为输出模式
	Serial.begin(9600); // 初始化串口通信,波特率设置为9600
}

void loop() {
	if (Serial.available() > 0) {
		String command = Serial.readStringUntil('\n'); // 读取串口输入直到换行符
		if (command == "o") {
			digitalWrite(LED_PIN, HIGH); // 打开LED灯
			ledState = HIGH;
		} else if (command == "c") {
			digitalWrite(LED_PIN, LOW); // 关闭LED灯
			ledState = LOW;
		}
	}
}

指令控制开关RGB LED灯

通过串口向单片机发送特定指令,如“o”指令,开发板的RGB LED灯亮,输入特定指令,如“c”指令,开发板的RGB LED灯灭。

引脚 11 是 RGB LED 的使能引脚。我没可以通过将引脚 11 设置为高点亮 RGB LED,并可以改变RGB LED颜色实现闪烁。

首先,我们需要添加一个第三方库。

打开Arduino IDE,导航到以 Sketch > Include Library > Manage Libraries... 搜索库。在 Ardunio 库管理器中键入关键字“Adafruit_NeoPixel”库并安装最新版本。

Seeed XIAO RP2040添加三方包.png
Seeed XIAO RP2040添加三方包.png
代码语言:javascript
复制
#include <Adafruit_NeoPixel.h>
int Power = 11;
int PIN = 12;
#define NUMPIXELS 1
Adafruit_NeoPixel pixels(NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);

void setup() {
	pixels.begin();
	pinMode(Power, OUTPUT);
	digitalWrite(Power, HIGH);
	Serial.begin(9600); // 初始化串口通信,波特率设置为 9600
}

void loop() {
	if (Serial.available() > 0) {
		String command = Serial.readStringUntil('\n'); // 读取串口输入直到换行符
		if (command == "o") {
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(0, 255, 0)); // 绿色
			pixels.show();
		} else if(command == "oc"){
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(15, 25, 205));
			delay(400);
			pixels.show();
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(103, 25, 205));
			delay(400);
			pixels.show();
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(233, 242, 205));
			delay(400);
			pixels.show();
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(233, 23, 23));
			delay(400);
			pixels.show();
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(12, 66, 101));
			delay(400);
			pixels.show();
			delay(500);
		} else if (command == "c") {
			pixels.clear();
			pixels.setPixelColor(0, pixels.Color(0, 0, 0)); // 关闭 LED 灯颜色为黑色
			pixels.show();
		}
	}
}

参考

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 前言
  • 连接电脑
  • Arduino开发
    • 下载Arduino
      • 添加开发板包
        • 选择开发板和端口
          • 运行示例代码
            • 上传到开发板
            • 其他示例
              • 输出Hello World
                • 按键控制开关LED灯
                  • 指令控制开关LED灯
                    • 指令控制开关RGB LED灯
                    • 参考
                    领券
                    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档