如题,单独测试SHTC3或液晶屏都没问题,放在一起后,只是在上电时获取一组数据,之后就不动了(偶尔采集两三组,然后不动了,排除接触等潜在问题)。
可能是什么原因?望不吝赐教。
#include <U8g2lib.h>
#ifdef U8X8_HAVE_HW_SPI
#include <SPI.h>
#endif
#ifdef U8X8_HAVE_HW_I2C
#include <Wire.h>
#endif
#include "Adafruit_SHTC3.h"
Adafruit_SHTC3 shtc3 = Adafruit_SHTC3();
U8G2_SSD1306_128X64_NONAME_F_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE); // All Boards without Reset of the Display
void setup() {
Serial.begin(115200);
while (!Serial)
delay(10); // will pause Zero, Leonardo, etc until serial console opens
Serial.println("SHTC3 test");
if (! shtc3.begin()) {
Serial.println("Couldn't find SHTC3");
while (1) delay(1);
}
Serial.println("Found SHTC3 sensor");
u8g2.begin();
//u8g2.enableUTF8Print();
}
void show_data(float temperature,float rh)
{
u8g2.setFont(u8g2_font_unifont_t_chinese2);
u8g2.setFontDirection(0);
u8g2.clearBuffer();
u8g2.setCursor(10, 15);
u8g2.print("T:");u8g2.print(temperature);
u8g2.setCursor(10, 40);
u8g2.print("RH:");u8g2.print(rh);
u8g2.sendBuffer();
}
void loop() {
sensors_event_t humidity, temp;
shtc3.getEvent(&humidity, &temp);// populate temp and humidity objects with fresh data
Serial.print("T: "); Serial.print(temp.temperature); Serial.print(" degrees C,");
Serial.print("RH: "); Serial.print(humidity.relative_humidity); Serial.println("% rH");
unsigned long t1 = millis();
show_data(temp.temperature,humidity.relative_humidity);
unsigned long t2 = millis();
Serial.print("dT:");Serial.println(t2-t1);
delay(500);
}
更多回帖