아날로그 게이지 디자인 기본과 응용에 대해서는 아래 포스트에 작성하였고, 내친김에 디지털 게이지 디자인도 올려 드리겠습니다.
디지털 게이지는 아날로그 게이지에 비하면 너무 쉬어서 크게 설명할 부분이 없습니다.
게이지바가 그려지고 게이지값이 상단에 표시되는게 다 입니다.
#include "U8glib.h" U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST); // 데이터 처리 변수 int val; //그래픽 처리 변수 int level; void setup(void) { } void Disp() { level = map(val, 0, 100, 0, 120); // 레벨박스크기 u8g.firstPage(); do { u8g.drawLine(3, 40, 123, 40); u8g.drawLine(3, 63, 123, 63); u8g.drawLine(3, 38, 3, 63); u8g.drawLine(123, 38, 123, 63); u8g.drawLine(92, 38, 92, 42); u8g.drawLine(62, 38, 62, 42); u8g.drawLine(32, 38, 32, 42); u8g.setFont(u8g_font_profont11r); // 6*10폰트 u8g.drawStr(110, 36, "100"); u8g.drawStr(87, 36, "75"); u8g.drawStr(57, 36, "50"); u8g.drawStr(27, 36, "25"); u8g.drawStr(0, 36, "0"); u8g.drawStr(120, 20, "%"); u8g.drawStr(0, 10, "VAL"); u8g.setFont(u8g_font_profont29r); //16*28폰트 if (val < 10) u8g.setPrintPos(100, 20); else if (val >= 10 && val <= 99) u8g.setPrintPos(84, 20); else u8g.setPrintPos(68, 20); u8g.print(val); u8g.drawBox(3, 45, level, 14); } while( u8g.nextPage() ); } void loop(void) { val = random(0, 100); Disp(); delay(500); } |
코드는 진짜진짜 설명하게 없네요 ^^;;
각자의 취향에 맞게 조금씩 변형해서 디자인해 보시면 될것 같습니다.
(추석연휴 첫날 포스트를 쓰고 있네요 ^^;;)
'아두이노' 카테고리의 다른 글
자동차 대시보드 확장 - 2편 (0) | 2020.01.01 |
---|---|
자동차 대시보드 확장 - 1편 (0) | 2020.01.01 |
아두이노 아날로그 게이지 디자인 응용 (0) | 2019.09.11 |
아두이노 아날로그 게이지 디자인 그리기 (0) | 2019.09.11 |
아두이노로 GPS 신호를 직접 처리(분석) 하기 (3) | 2019.03.10 |