ArduinoUNO와 온도 센서 MCP9701로 액정 표시 (Arduino) (AQM0802A)
아키즈키에서 팔고 있는 저렴한 MCP9701(약 25엔)을 사용하여 온도를 액정에 표시한다.
구성
MCP9701-E/TO I-03199
AQM0802A-RN-GBW P-06669
설명
MCP9701은
0℃일 때 400mV
1℃ 당 19.5mV
정확도는 ±4℃
전선이 꺼내기 쉬운 위치의 A0를 아날로그 입력으로 한다
계산에는 용량 삭감을 위해 부동 소수점과 나눗셈은 사용하지 않는다.
MCP9700은 패밀리, 오프셋 500mV, 10mV/1℃ 이번에는 사용하지 않는다
#include <Wire.h> //I2C library
//STM32G031J6M6
#define sdaPin PA12 // ArduinoA4
#define sclPin PA11 // ArduinoA5
// I2C address.
#define I2Cadr 0x3e // 固定
int tempval; //温度
char data_read[2]={'@','t'}; //i2cバッファー
int ii; //ループカウンター
char INIT_com[]={0x0,0x38,
0x0,0x39,
0x0,0x4,
0x0,0x14,
0x0,0x70,
0x0,0x56,
0x0,0x6C,
0x0,0x38,
0x0,0xC,
0x0,0x1,
0x40,0x41};
char INIT_cls[]={0x0,0x1};
void i2c_led_w(char *buff1){
Wire.beginTransmission(I2Cadr);
Wire.write(buff1[0]);
Wire.write(buff1[1]);
Wire.endTransmission();
delay(2);
}//i2c_led_w
void setup()
{
//i2cの初期化
Wire.begin(); // initialise the connection //767 UNO
//Wire.begin(sdaPin,sclPin); //STM32G031J6M6
//液晶の初期化
for(ii=0;ii<11;ii++){
i2c_led_w(&INIT_com[ii*2]);
} //for
} //end setup
void loop()
{
//画面のクリア
i2c_led_w(INIT_cls);
//センサーの値を読み込む
tempval = analogRead(A0); // UNO
//tempval = 20 << 2; //0 debug
//tempval = 40 << 2; //20 debug
//センサーの値を温度に変換
tempval = (tempval >> 2) - 20;
//液晶に表示
data_read[1] = '0' + (tempval / 10);
i2c_led_w(data_read);
data_read[1] = '0' + (tempval % 10);
i2c_led_w(data_read);
delay(1000); //1秒待つ
}//loop
Reference
이 문제에 관하여(ArduinoUNO와 온도 센서 MCP9701로 액정 표시 (Arduino) (AQM0802A)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/caa45040/items/d726252d2e7b99b778c6텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)