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의 온습도 값을 출력 해 주는것을 확인 할 수 있다.