[기타] [타이젠] 아두이노의 16x2 LCD Display라이브러리 LiquidCrystal_I2C의 타이젠 포팅

cf25c7fb5ab69f6d7da4694cdafc1883.jpg

타이젠 (Tizen)에 아두이노에서 사용하던 16x2 LCD Display를 사용할수 있도록 LiquidCrystal_I2C를 라이브러리를 수정하여 동작 확인 하였습니다.


Constructor에서 I2C의 주소로 객체 Open, Destructors에서는 Close코드 추가 

 LiquidCrystal_I2C::LiquidCrystal_I2C(unsigned char lcd_addr, unsigned char lcd_cols, unsigned char lcd_rows, unsigned char charsize)

{

    _addr = lcd_addr;


    _cols = lcd_cols;

    _rows = lcd_rows;


    _charsize = charsize;

    _backlightval = LCD_BACKLIGHT;


    //

    // Open I2C Address

    //

    int ret = peripheral_i2c_open(1, _addr, &m_i2c_h);

    if (ret != PERIPHERAL_ERROR_NONE) {

    m_i2c_h = NULL;

    }

}


LiquidCrystal_I2C::~LiquidCrystal_I2C()

{

if( m_i2c_h ) {

peripheral_i2c_close(m_i2c_h);

}

}


expanderWrite에 함수에서 기존 함수 대신 periperal_i2c_write대체 

 void LiquidCrystal_I2C::expanderWrite(unsigned char _data)

{

uint8_t data_write[2];

    data_write[0] = _data | _backlightval;


    //

    // Write I2C

    //

    int ret = peripheral_i2c_write(m_i2c_h,  data_write, 1);

    if (ret < 0) {

           return;

    }

}


기존 아두이노에서 사용하던 16*2 LCD Display 코드 재 활용 

LiquidCrystal_I2C lcd(0x27, 16, 2); 


void service_app_control(app_control_h app_control, void *data)

{

dlog_print(DLOG_INFO, LOG_TAG, "%s : %s (%s=>%d)", "service_app_control", rindex(__FILE__,N'/') + 1, __func__, __LINE__);


MotionIn.both(motion_interrupted_cb );


//----------------------------------------------------------------------------------

// initialize the LCD

//----------------------------------------------------------------------------------

lcd.begin();

lcd.backlight();


lcd.clear();

lcd.setCursor(0, 0);

lcd.print("Hell Maker");

sleep(2);


lcd.setCursor(0, 1);

lcd.print(" PET CPR ver 0.1");


sleep(2);

}



0
0
이 글을 페이스북으로 퍼가기 이 글을 트위터로 퍼가기 이 글을 카카오스토리로 퍼가기 이 글을 밴드로 퍼가기

임베디드 보드

번호 제목 글쓴이 날짜 조회수
52 아두이노 [강좌] 51. 와이파이 통신 (5) - WebServer 예제 (2) icon 양재동메이커 03-21 22,552
51 아두이노 [강좌] 50. 와이파이 통신 (4) - WebServer 예제 icon 양재동메이커 03-21 22,438
50 아두이노 [강좌] 49. 와이파이 통신 (3) - WebClient 예제 icon 양재동메이커 03-21 26,128
49 아두이노 [강좌] 48. 와이파이 통신 (2) - 커맨드 모드 사용하기 (WiFly 쉴드) icon 양재동메이커 03-20 20,728
48 아두이노 [강좌] 47. 와이파이 통신 (1) - 와이파이란 무엇인가 icon 양재동메이커 03-20 25,791
47 아두이노 [강좌] 46. 블루투스 통신 (5) - 프로토콜 만들기 (2) icon 양재동메이커 03-20 20,739
46 아두이노 [강좌] 45. 블루투스 통신 (4) - 프로토콜 만들기 (1) icon 양재동메이커 03-20 21,813
45 아두이노 [강좌] 44. 블루투스 통신 (3) - RN42 모듈에서 직접 접속하기 icon 양재동메이커 03-20 18,734
44 아두이노 [강좌] 43. 블루투스 통신 (2) - 스마트폰과 통신하기 icon 양재동메이커 03-20 20,934
43 아두이노 [강좌] 42. 블루투스 통신 (1) - RN42 블루투스 모듈 실습하기 icon 양재동메이커 03-20 23,209
42 아두이노 [강좌] 41. 서보 모터 (2) - Servo 함수 알아보기 icon 양재동메이커 03-20 24,513
41 아두이노 [아두이노 강좌] 40. 서보 모터 (1) - 서보 모터 동작 방식 icon 양재동메이커 03-20 25,209
40 아두이노 [강좌] 39. 스텝 모터 (3) - 모터 드라이버 EasyDriver(A3967) 사용하기 icon 양재동메이커 03-20 20,445
39 아두이노 [강좌] 38. 스텝 모터 (2) - Stepper 함수 알아보기 icon 양재동메이커 03-20 24,603
38 아두이노 [강좌] 37. 스텝 모터 (1) - 스텝 모터 동작 방식 icon 양재동메이커 03-20 21,743
37 아두이노 [강좌] 36. DC 모터 (2) - DC 모터 드라이버 실습하기 (TB6612FNG) icon 양재동메이커 03-20 20,823
36 아두이노 [강좌] 35. DC 모터 (1) - DC 모터 동작 방식 icon 양재동메이커 03-20 23,492
35 아두이노 [강좌] 34. SPI 통신 (3) - 기압 센서(MPL115A1) 실습하기 icon 양재동메이커 03-20 19,769
34 아두이노 [강좌] 33. SPI 통신 (2) – SPI 함수 알아보기 icon 양재동메이커 03-20 28,614
33 아두이노 [강좌] 32. SPI 통신 (1) - SPI 통신이란 무엇인가 icon 양재동메이커 03-20 32,866