Arduino开发Seeed Studio XIAO RP2040

前言

准备一些硬件设备

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

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

连接电脑

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

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

Arduino开发

下载Arduino

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

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

添加开发板包

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

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

https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json

Arduino开发Seeed Studio XIAO RP2040_第2张图片
导航到“工具->开发板->开发板管理器…”,在搜索框中输入“RP2040”。选择最新版本的“Raspberry Pi Pico/RP2040”并安装它。
Arduino开发Seeed Studio XIAO RP2040_第3张图片

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

选择开发板和端口

开发板选择:导航到“工具->开发板->Raspberry Pi Pico/RP2040->Seeed XIAO RP2040”,选择Seeed XIAO RP2040开发板。
Arduino开发Seeed Studio XIAO RP2040_第4张图片
端口选择:导航到“工具->端口”,选择你对应开发板的连接串口。

Arduino开发Seeed Studio XIAO RP2040_第5张图片

运行示例代码

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

Arduino开发Seeed Studio XIAO RP2040_第6张图片

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

上传到开发板

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

Arduino开发Seeed Studio XIAO RP2040_第7张图片

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

如果上传Arduino程序失败,请尝试按住“BOOT”按钮,然后单击“RUN”按钮。

此时,Seeed Studio XIAO RP2040将进入启动模式,这个时候可以再次烧录Arduino程序。

其他示例

输出Hello World

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

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,主板可能无法正常工作。

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灯灭

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”库并安装最新版本。

Arduino开发Seeed Studio XIAO RP2040_第8张图片

#include 
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();
		}
	}
}

参考

  • https://wiki.seeedstudio.com/XIAO-RP2040/
  • https://wiki.seeedstudio.com/XIAO-RP2040-with-Arduino/

你可能感兴趣的:(物联网,物联网)