Arduino Nano系列包括非常经典的Arduino Nano V3,以及Nano BLE系列和最近刚推出的nano matter开发板都使用相同的尺寸。因此想着快速设计一个Nano系列的简易扩展板,目前主打的还是I2C接口的扩展。
以最新的Nano Matter开发板为例,其尺寸图如下:
考虑到屏幕是I2C接口的OLED,传感器上美信的MX30102也是I2C接口,因此把A4,A5俩引脚扩展出来,可以级联多个I2C设备,节省引脚资源。
原理图:
PCB:
实物安装:
结合之前使用的MX30102心率血氧传感器,可以快速的搭建一个简易健康设备。
测试代码:
#include <Arduino.h> #include <U8x8lib.h> #include <Wire.h> U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* clock=*/SCL, /* data=*/SDA, /* reset=*/U8X8_PIN_NONE); // OLEDs without Reset of the Display //U8X8_SSD1306_128X64_NONAME_HW_I2C u8x8(/* clock=*/5, /* data=*/4, /* reset=*/U8X8_PIN_NONE); // OLEDs without Reset of the Display //U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(/* clock=*/ 5, /* data=*/ 4, /* reset=*/ U8X8_PIN_NONE); // OLEDs without Reset of the Display //U8X8_SSD1306_128X64_NONAME_SW_I2C u8x8(/* clock=*/ 19, /* data=*/ 18, /* reset=*/ U8X8_PIN_NONE); // OLEDs without Reset of the Display void setup(void) { Serial.begin(115200); Serial.println("Initializing..."); /* U8g2 Project: SSD1306 Test Board */ //pinMode(10, OUTPUT); //pinMode(9, OUTPUT); //digitalWrite(10, 0); //digitalWrite(9, 0); /* U8g2 Project: KS0108 Test Board */ //pinMode(16, OUTPUT); //digitalWrite(16, 0); u8x8.begin(); u8x8.setPowerSave(0); Serial.println("SCL: "); Serial.println(SCL); Serial.println("SDA: "); Serial.println(SDA); } void loop(void) { u8x8.setFont(u8x8_font_chroma48medium8_r); u8x8.drawString(0, 1, "Heart Beat Dev"); u8x8.setInverseFont(1); //u8x8.drawString(0, 0, "012345678901234567890123456789"); u8x8.setInverseFont(0); //u8x8.drawString(0,8,"Line 8"); //u8x8.drawString(0,9,"Line 9"); u8x8.refreshDisplay(); // only required for SSD1606/7 delay(2000); }
附件是本次扩展底板的Gerber: