Yeni: Yapay zekâ güvenlik duvarı tüm platformu izliyor ve her olayı sade bir dille açıklıyor. Nasıl çalıştığını görün

HTU21D taramaya yanıt veriyor ama her nem okumasi boş dönüyor

HTU21D taramaya yanıt veriyor ama her nem okumasi boş dönüyor

Çözüldü 6 5

Yapay zekâ tarafından English dilinden çevrildi ·

Küçük bir sorun ama beni delirtiyor. Bir kuyu başı kulübesindeki MKR WiFi 1010, 0x40 adresinde bir HTU21D nem kartını okuyor ve her dakika Hermetry’ye gönderiyor. Sıcaklık çalışıyor. Nem ise belki on okumadan biri çalışıyor.I2C tarayıcı her seferinde 0x40’ı buluyor. Mantık analizörü: 0xF5 (nem, bekleme yok) yazmam ACK alıyor, ardından 0x81 okuma adresi NACK alıyor ve Wire.requestFrom(0x40, 3) 0 döndürüyor. Panelde nem grafiğinde her yerde boşluklar var.

Wire.beginTransmission(0x40);
Wire.write(0xF5);
Wire.endTransmission();
delay(15);
uint8_t n = Wire.requestFrom(0x40, 3);   // n == 0 most of the time
Ask me about 4–20 mA.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

pull-up dirençleri? 4.7k ekleyene kadar okumalarım dengesizdi

Still waiting for the gateway to reconnect.
♥ 1

Yapay zekâ tarafından English dilinden çevrildi ·

Breakout kartında zaten 4.7k var ve tarayıcı hiç kaçırmıyor, o yüzden kablolamadan şüpheliyorum.

Ask me about 4–20 mA.
♥ 1

Yapay zekâ tarafından English dilinden çevrildi ·

Bir BME280 ile aynı sorunu yaşamıştım, sorun adresteydi: 0x76 ile 0x77.

Ask me about 4–20 mA.
♥ 0

Yapay zekâ tarafından English dilinden çevrildi ·

Breakout kartı 3.3V mu? Bariz geliyorsa özür dilerim, geçen ay bir tanesini 5V’ta yaktım.

Timestamps in UTC or it didn't happen.
♥ 2

Yapay zekâ tarafından English dilinden çevrildi ·

Kablolama sorun degil, okuman cok erken. No-hold modunda HTU21D, olcum bitene kadar okuma adresine NACK veriyor; analizorun gosterdigi de tam olarak bu. 12 bitlik bir nem okumasi yaklasik 16 ms’ye kadar surebilir; varsayilan cozunurluk ve biraz pay ile 15 ms’den fazla beklemek istersin. Sicaklik 50 ms ile daha yavas olan, ve buyuk ihtimalle gecikmeyi sadece nem olan bir ornekten kopyaladin ve sans eseri ters yonde kurtuldun.Tahmin yurutmek yerine yoklama yapiyorum:

Wire.beginTransmission(0x40);
Wire.write(0xF5);
Wire.endTransmission();
uint8_t n = 0;
for (int i = 0; i < 10 && n < 3; i++) {
  delay(10);
  n = Wire.requestFrom(0x40, 3);
}
if (n < 3) { /* skip humidity this round */ }

Bir okuma yine basarisiz olursa, o dakikanin mesajindan anahtari cikar ya da null gonder. 0 gonderme; Hermetry bunu gercek bir %0 olarak kaydeder ve alarm kuralin bundan memnun olur. null sadece okuma olmadigi anlamina gelir.

Ground loops are my cardio.
Kabul edilen çözüm♥ 8

Yapay zekâ tarafından English dilinden çevrildi ·

Sorgulama döngüsü devrede, n ikinci ya da üçüncü denemede 3’e ulaşıyor, yani yaklaşık 20-30 ms. İki gündür tek bir boşluk yok. Ayrıca hatalarda 0 gönderiyordum, grafikteki garip düşüşlerin nedeni bu. Teşekkürler Daniel.

Ask me about 4–20 mA.
♥ 2
7 yazı görüntüleniyor – 1 ile 7 arası (toplam 7)
  • Bu konuyu yanıtlamak için giriş yapmış olmalısınız.

Sohbete katılın

Soru sormak ve yanıtlamak, yararlı gönderileri beğenmek ve sorununuzu çözen yanıtı işaretlemek için oturum açın. Her katkı puan ve seviye kazandırır.

Paylaş