STM32G031 및 냄새 센서 AE-TGS8100으로 액정 표시 (Arduino) (AQM0802A)
x 리셋은 GPIO로 변경
목적
코로나 등을 포함하여 실내의 공기의 흔들림을 냄새를 통해 값수 표시한다.
구성
AE-TGS8100 K-15562
AQM0802A-RN-GBW P-06669
설명
3.3V계에서 사용하고 싶기 때문에 메뉴얼의 식으로부터
프로그램을 만들었다. 아키즈키의 공식과 값이 올바른지 확인했습니다.
0으로 나누면 오류가 발생했음을 확인했으므로 아무 것도 좋았습니다.
0을 -1로 변환하였다. 현실적으로 마이너스의 큰 숫자가 되기 때문에
구별이 있기 때문에 괜찮습니까?
그대로는 지루하지 않기 때문에 액정을 붙였다.
CO2 센서를 위한 전 단계
main - 초기화
loop - 반복 처리
i2c_led_w - 2바이트 I2C로 보내기
●안되다 일기
왠지 여기에 썼습니까?
약 2400엔의 CO2 센서를 얻는다
여러 상황에 따라 회로도, 농장은 비공개
지금, 생각하고 있는 하드는, STM32L010(용량 부족으로 그만둔)
[STM32G031 바뀔지도]와 4자리 7세그
어쩌면 7 세그는 노이즈가 적고보기 쉽다.
CO2를 만드는 방법에 대한 팁은 이미 모두 작성되었으므로
각자, 이미 우수하기 때문에 나의 시체를 넘어서, 이상, 종료
#include <Wire.h> //I2C library
//STM32G031J6M6
#define sdaPin PA12 // ArduinoA4
#define sclPin PA11 // ArduinoA5
// I2C address.
#define I2Cadr 0x3e // 固定
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
int adval = 0;
float sensor_r;
void setup() {
pinMode(PA0, OUTPUT);
//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
//Serial.begin(9600); //767
//pinMode(PA0, OUTPUT); //031
}//setup
float v1;
float rs;
void loop() {
digitalWrite(PA0, HIGH); //031
delay(1);
analogReadResolution(12);
adval = analogRead(A9); // PB7 PIN1 031
delay(1);
digitalWrite(PA0, LOW); //031
//Serial.println(adval);
//adval = 4096;
//adval = 300; //242mV 114.121kOME
//adval = 0;
if(adval == 0) {adval = -1;}
v1 = ( ((float)adval) * 3.300) / 4096.0;
//Serial.println(v1,3); //767
rs =( (3.0-v1)/v1 ) * 10.0;
//Serial.println(rs,3); //767
/*
if(adval != 0) {
sensor_r = 6144.0 / adval - 10;
Serial.println(sensor_r,3);
} else {
Serial.println("0");
}//end if
*/
delay(998);
int s = rs;
int n0,n10,n100;
n10 = s / 10; // 123 -> 12
n0 = s - (n10 *10); // 123 - 120 -> 3
n100 = n10 / 10; // 12 -> 1
n10 = n10 - (n100 *10); // 12 - 10 -> 2
//画面のクリア
i2c_led_w(INIT_cls);
//液晶に表示
data_read[1] = '0' + n100;
i2c_led_w(data_read);
data_read[1] = '0' + n10;
i2c_led_w(data_read);
data_read[1] = '0' + n0;
i2c_led_w(data_read);
}//loop
Reference
이 문제에 관하여(STM32G031 및 냄새 센서 AE-TGS8100으로 액정 표시 (Arduino) (AQM0802A)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/caa45040/items/da942a491a490f09137f텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)