본문 바로가기

[ATMEL]/SAMD21

ATSAMD21 Arduino M0 보드 테스트 - I2C SHT20 온습도 센서 테스트

ATSAMD21 Arduino M0 보드 테스트 - I2C SHT20 온습도 센서 테스트





ATSAMD21의 I2C 테스트를 Arduino 코드(I2C 라이브러리)를 이용해서 테스트 진행 해 보았다.

Arduino 보드의 최대 장점은 하드웨어에 독립적으로 다양한 예제들을 사용할 수 있다는 점. 


I2C도 기본 라이브러리에 포함되어 있고 그냥 가져다 쓰면 된다.


I2C를 테스트 해 보기 위해 기존에 제작해 두었던 온습도 센서 모듈 SHT20를 적용하여 온습도를 출력하는 예제를 테스트 했다.




우선 하드웨어 적으로 다양한 센서 및 확장 테스트 보드를 사용할 수 있는 표준 핀맵의 Arduino 확장 테스트 보드를  Aruino M0 보드에 장착한다.


STH20 센서는 기존에 제작 해 두었던 Sensor100 SSM 보드를 이용하였다.







소프트웨어 적으로 Arduino의 라이브러리 관리 에서 STH20을 검색해서 나오는 uFire SHT20 예제 코드를 설치 해서 테스트 했다.





SHT20의 7-bit I2C device address 는 ‘1000’000’ 이다.




실제로 사용되는 I2C 어드레스는 uFire_SHT20.h 파일에 정의 되어 있다.

시프트 되기 전인 0x40 이다. 내부적으로 1비트 시프트 되어 0x80이 출력된다.


#define SHT20_I2C              0x40







SHT20 Arduino 기본 테스트 예제코드

#include "uFire_SHT20.h"

uFire_SHT20 sht20;


void setup()

{

  Serial.begin(9600);

  Wire.begin();

  sht20.begin();

}


void loop()

{

  sht20.measure_all();

  Serial.println((String)sht20.tempC + "°C");

  Serial.println((String)sht20.tempF + "°F");

  Serial.println((String)sht20.dew_pointC + "°C dew point");

  Serial.println((String)sht20.dew_pointF + "°F dew point");

  Serial.println((String)sht20.RH + " %RH");

  Serial.println((String)sht20.vpd() + " kPa VPD");

  Serial.println();

  delay(5000);

}





SHT20 기본 예제 코드 실행하면 정상적으로 SHT20의 온습도 값을 출력 해 주는것을 확인 할 수 있다.



반응형