MAX30102 心率血氧檢測 for mBlock5 Arduino Uno

MAX30102 心率血氧檢測採用IIC通訊協定,mBlock5的擴展是針對BrainGO開發板設計,Arduino Uno請自行接到相對應的腳位。相對接腳如下:
Pin1 VIN <=> V+ (3.3v-5v);
Pin2 SDA <=> IIC_SCL ;
Pin3 SCL <=> IIC_SDA ;
Pin4 GND <=> Gnd。

將 24bit 16進制 HTML色碼 (#f8f8f8) 轉換為 TFT_LCD 用的 16bit 16進制 RGB565色碼 (0xffdf)

Arduino IDE

在mBlock5色盤上取得的色碼是#字號開頭的24bit 16進制HTML色碼,例如 #f8f8f8,但是TFT LCD設定顏色是16bit 16進制RGB565色碼,例如 0xffdf

例如,當我們以mBlock5色盤上取得的色碼是#f8f8f8,以下的程式碼是錯的,
tft.setTextColor(#f8f8f8); 因為16進位格式錯誤,以改成0xf8f8f8,所以試著改寫成 tft.setTextColor(0xf8f8f8); 就可以執行了,格式雖然對了,但顏色錯誤,所以將 #f8f8f8 轉換成RGB565色碼 0xffdf,顏色就對了。

以下為轉換函式

long int t24to565(char color_code[8]){
char color_r[3] = {color_code[1],color_code[2]};
char color_g[3] = {color_code[3],color_code[4]};
char color_b[3] = {color_code[5],color_code[6]};
long i565r = strtol( color_r, NULL, 16);
long i565g = strtol( color_g, NULL, 16);
long i565b = strtol( color_b, NULL, 16);
return tft.color565(i565r,i565g,i565b);
}

例如要設定TFT LCD的文字顏色時,使用方法如下:

tft.setTextColor( t24to565(“#f8f8f8”) );

Follow by Email