[아두이노] #define _DEBUG_ 사용하기
·
b. 임베디드/아두이노
저는 가끔 DEBUG용으로 print문을 많이 사용하는데요.실무에서 만들어진 라이브러를 살펴 보면 _DEBUG_ 를 전처리문으로 많이들 볼수 있습니다.실제 동작부분에서는 사용하지 않고 오로지 DEBUG를 위해 만들어놓은 코드라 볼수 있는데요. 한번 코드 살펴보시죠. 123456789101112131415161718#define _DEBUG_#ifdef _DEBUG_ #define DBG_sprintf sprintf#else #define DBG_sprintf#endif void setup() { Serial.begin(9600);} void loop() { int a = 10; char buf[50] = ""; DBG_sprintf(buf, "Debug Test = %d\n", a); Serial.pri..
[아두이노] String문자를 int형으로 변환하기
·
b. 임베디드/아두이노
코딩을 열심히 하다보면 막히는 부분이 항상 나오는데 단골 손님 중에꼭 들어가는 부분이 요 형변환 부분입니다. ㅜ (너무너무 귀찮아요.) 그냥 바로 코드 보시죠 ^^ 1234567891011121314151617181920212223242526String c;int state;unsigned int delay_time; void setup() { Serial.begin(115200); pinMode(13, OUTPUT);} void loop() { String a; int index = 0; if(Serial.available()) { c = Serial.readStringUntil('\r'); index = c.indexOf(':'); if(index != -1) { a = c.substring(inde..
[아두이노] 소수점 표현하기
·
b. 임베디드/아두이노
소수점 표현하는 2가지 방법입니다. 12345678910111213void setup() { Serial.begin(9600);} void loop() { float f = 123.12F; char str[50];// sprintf(str, "String value : %d.%02d", (int)f, (int)(f*100)%100); strcpy(str, "String value dtostrf: " ); dtostrf(f, 2, 2, &str[strlen(str)]); Serial.println(str); delay(1000);}Colored by Color Scriptercs 내용은 소스코드 참조하시기 바랍니다. (설명할게 딱히 없네요.) dtostrf 함수를 사용해서 소수점 표현이 가능하다는 것도 알..
[아두이노] MP3(NA-MP3A)모듈 사용하기 (시리얼)
·
b. 임베디드/아두이노
mp3 모듈은 산업용 모듈인 NA-MP3A로 사용하였습니다. 출처는 해당 링크로 들어가시면 구매가능 합니다. http://www.mcuboard.com/shop/goods/goods_view.php?goodsno=22643&inflow=naver&NaPm=ct%3Djcr7mc2o%7Cci%3D9f935a0f31bc2d2bca7299d87d7107e05fa803e1%7Ctr%3Dsls%7Csn%3D312925%7Chk%3D4e34b15d79a38fea9ba986c5f376d3f4f09a03e4 메뉴얼을 항상 참고하세요 ^^; 1. usb나 sd카드에 mp3파일을 저장 00001.mp3 00002.mp3 00003.mp3 : : 2. 하드웨어 연결방법NA-MP3A = rxd, txd, 5v, gnd, pla..
[아두이노] OLED 12864 I2C 동작 (Adafruit 라이브러리)
·
b. 임베디드/아두이노
아두이노 -> 스케치 -> 라이브러리 포함하기 -> 라이브러리 관리 검색란에 OLED를 검색하고 나온 리스트 중 Adafruit SSD1306 을 설치합니다.(찾아보니 u8glib도 있네요..ㅜㅜ) 해당 예제 중 128 X 32 I2C가 있습니다.해당 파일을 업로드하면 완료! 연결법은 I2C 기본 연결법과 동일합니다.SDA - A4SCL - A5전원은 각자에 해당하는 OLED 전압으로 연결하여 동작시키면 됩니다. :D 참 쉽죠?
[아두이노] OLED 12864 I2C 동작 (u8glib 라이브러리)
·
b. 임베디드/아두이노
첨부해놓은 라이브러리를 아두이노 라이브러리에 잘 보관하고 예제파일을 불러와서~~~~ I2C 동작시키는 것마냥 동작시키면 잘 동작합니다. 듣자하니 I2C가 SPI보다 느리다는 소문이 있으나 아직 SPI OLED가 없어서 동작 테스트는 안해봤네요. 혹시라도 추후에 기회가 되면 한번 진행해보겠습니다 :D일단 예제 불러와서 아래 빨간색 부분을 "//" 없애주고 업로드하면 잘 동작합니다 12345678910111213//U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE|U8G_I2C_OPT_DEV_0); // I2C / TWI //U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_NO_ACK|U8G_I2C_OPT_FAST); // Fas..
[아두이노] MAX30100 맥박, 산소포화도 센서 사용하기
·
b. 임베디드/아두이노
MAX30100 라이브러리를 이용해서 맥박 및 산소포화도를 측정하는 방법입니다.일단MAX30100은 i2c(TWI)통신으로 동작함으로 3.3vGNDSDA -> A4SCL -> A5 당연히 연결해주어야 합니다 ^^; 그리고MAX30100 라이브러리를 Arduino가 설치된 library에 넣고 Example 코드 max30100_minimal을 불러와서 업로드 하면 해당 데이터가 출력이 됩니다. 테스트 도중 데이터가 읽히지 않으면MAX30100_PulseOximeter.h파일을 메모장이나 혹은 워드패드로 불러와서 (기타 에디터) 아래 코드 부분을 수정해주시면 측정이 됩니다. 실험해보세요 ^^ 123456789101112131415#ifndef MAX30100_PULSEOXIMETER_H #define MA..
로봇쟁이