Arduino-Pico 是 RP2040(Raspberry Pi Pico 处理器)到 Arduino 生态系统的社区端口,旨在让基于 Raspberry Pi Pico / RP2040 的开发板的使用和编程变得更轻松、更有趣。
Arduino-Pico项目地址: https://github.com/earlephilhower/arduino-pico。
Arduino-Pico文档地址: https://arduino-pico.readthedocs.io/en/latest/。
Mini-RP2040主板,基于树莓派RP2040芯片设计制作;主板引出6路防反接(ZH1.5-4P)端口,BOOT、RESET两个轻触按键,一路可编程RGB彩灯(GPIO25),设计简单,功能轻便,适用于简单的创客设计。
两种供电方式,满足选择:一路type-c供电端口,一路PH2.0-4P供电端口;一个电源指示灯,轻松明了开关状态。
Mini-RP2040主板具有兼容乐高积木的安装孔,可轻松完成乐高积木的拼接,实现创意设计。
第一次将程序上传到主板上时,您需要使用内置的 ROM 引导加载程序来处理上传,而不是串行端口。
下面的测试程序需要先安装库文件:NeoPixelConnect。
项目> 加载库 > 管理库:
库管理器中搜索“pico neo”,找到NeoPixelConnect库文件,并安装:
主板测试例程:
/*
MINI-RP2040 测试程序
RGBled 红绿蓝
*/
#include <NeoPixelConnect.h>
#define MAXIMUM_NUM_NEOPIXELS 1
#define NEOPIXELS_PIN 25 // 板载rgb灯
NeoPixelConnect p(NEOPIXELS_PIN, MAXIMUM_NUM_NEOPIXELS, pio0, 0);
#define OffLED 0 // 0-0 全灭灯
#define RedLED 1 // 0-1 点亮红灯
#define YellowLED 2 // 1-0 点亮黄灯
#define GreenLED 3 // 1-1 点亮绿灯
const int Pin1_1 = 1;
const int Pin1_2 = 0;
const int Pin2_1 = 3;
const int Pin2_2 = 2;
const int Pin3_1 = 5;
const int Pin3_2 = 4;
const int Pin4_1 = 7;
const int Pin4_2 = 6;
const int Pin5_1 = 27;
const int Pin5_2 = 26;
const int Pin6_1 = 29;
const int Pin6_2 = 28;
void setup() {
Serial.begin(115200);
pinMode(Pin1_1, OUTPUT);
pinMode(Pin1_2, OUTPUT);
pinMode(Pin2_1, OUTPUT);
pinMode(Pin2_2, OUTPUT);
pinMode(Pin3_1, OUTPUT);
pinMode(Pin3_2, OUTPUT);
pinMode(Pin4_1, OUTPUT);
pinMode(Pin4_2, OUTPUT);
pinMode(Pin5_1, OUTPUT);
pinMode(Pin5_2, OUTPUT);
pinMode(Pin6_1, OUTPUT);
pinMode(Pin6_2, OUTPUT);
light(Pin1_1, Pin1_2, OffLED);
light(Pin2_1, Pin2_2, OffLED);
light(Pin3_1, Pin3_2, OffLED);
light(Pin4_1, Pin4_2, OffLED);
light(Pin5_1, Pin5_2, OffLED);
light(Pin6_1, Pin6_2, OffLED);
delay(2000);
Serial.println("In setup");
}
void loop() {
// set all LEDs to red, then green, and then blue
p.neoPixelFill(100, 0, 0, true);
light(Pin1_1, Pin1_2, RedLED);
light(Pin2_1, Pin2_2, RedLED);
light(Pin3_1, Pin3_2, RedLED);
light(Pin4_1, Pin4_2, RedLED);
light(Pin5_1, Pin5_2, RedLED);
light(Pin6_1, Pin6_2, RedLED);
delay(300);
p.neoPixelFill(0, 100, 0, true);
light(Pin1_1, Pin1_2, YellowLED);
light(Pin2_1, Pin2_2, YellowLED);
light(Pin3_1, Pin3_2, YellowLED);
light(Pin4_1, Pin4_2, YellowLED);
light(Pin5_1, Pin5_2, YellowLED);
light(Pin6_1, Pin6_2, YellowLED);
delay(300);
p.neoPixelFill(0, 0, 100, true);
light(Pin1_1, Pin1_2, GreenLED);
light(Pin2_1, Pin2_2, GreenLED);
light(Pin3_1, Pin3_2, GreenLED);
light(Pin4_1, Pin4_2, GreenLED);
light(Pin5_1, Pin5_2, GreenLED);
light(Pin6_1, Pin6_2, GreenLED);
delay(300);
}
// 发送数据
void light(int p1, int p2, int cLED) {
switch (cLED) {
case OffLED:
digitalWrite(p1 , 0);
digitalWrite(p2 , 0);
break;
case RedLED:
digitalWrite(p1 , 0);
digitalWrite(p2 , 1);
break;
case YellowLED:
digitalWrite(p1 , 1);
digitalWrite(p2 , 0);
break;
case GreenLED:
digitalWrite(p1 , 1);
digitalWrite(p2 , 1);
break;
}
}
测试效果:RGB LED 点亮 红绿蓝交替闪烁。ZH1.5任一外接端口连接YFROBOT交通灯模块,模块红黄绿灯交替闪烁。
更多使用方法请参见:https://arduino-pico.readthedocs.io/en/latest/