Wpis z mikrobloga

Mireczky, mam podłączoną cyfrową czujkę temperatury DS18B20 na dwumetrowym kablu i skubana cały czas zwraca mi -127 stopni Celsjusza. Między kablem danych a vcc ma być rezystor 4k7Ω. Skąd taki pomiar? Odwróciłem kable czy kabel stawia taki opór i powinienem popróbować z mniejszymi rezystorkami? Da się jakoś zweryfikować multimetrem który to GND a który vcc? Docelowo czujki miały być dwie na jednym przewodzie danych ale powoli tracę entuzjazm do tego rozwiązania :p
Ogólnie wymyśliłem sobie, że zrobię nowy sterownik do osuszacza na arduino - to mój pierwszy bliższy kontakt z Arduino i ogólnie bliższy z elektroniką, znam podstawy elektryki i jak co mniej więcej działa na płytkach (diagnozowanie problemów w klimatyzacji) ale zupełnie brak mi praktyki w budowaniu.

#include
#include
#include
#include
#include
#include
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
#if (SSD1306_LCDHEIGHT != 32)
#error("Niewlasciwa wysokosc, napraw Adafruit_SSD1306.h!");
#endif

OneWire oneWire(A5); //Podłączenie czujki do A5
DallasTemperature sensors(&oneWire);

void setup() {
Serial.begin(9600);
sensors.begin(); //Inicjalizacja czujnikow
display.begin(SSD1306_SWITCHCAPVCC, 0x3C); // inicjalizacja I2C addr 0x3C (dla 128x32)
display.clearDisplay();
}

void loop() {
sensors.requestTemperatures(); //Pobranie temperatury czujnika
Serial.print("Aktualna temperatura: ");
Serial.println(sensors.getTempCByIndex(0)); //Wyswietlenie informacji
delay(2000);
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(4,4); //Przesuniecie kursora do (szerokosc,wysokosc)
display.println("Temperatura:"); //Wyswietlenie napisu
display.setCursor(8,14);
display.println(sensors.getTempCByIndex(0)); //Pobranie informacji i miejsca docelowego
display.display(); //Wyslanie powyzszych polecen wyswietlenia obrazu na Oled
delay(2000);
display.clearDisplay();
display.display();
delay(2000);

}

#arduino #diy
Pobierz Endrius - Mireczky, mam podłączoną cyfrową czujkę temperatury DS18B20 na dwumetrowym ...
źródło: comment_1636700293jhPeibPqiBAWGzrbFCNBEE.jpg
  • 5
@Endrius: One raz działają-raz nie. Zauważyłem, że jak jest -127 to najczęściej jest to błąd komunikacji. Sprawdź, czy masz zasilanie na pinach i czy jest przejście między Vdd i Datą.

Biblioteka OneWire średnio też działa z tą od SSD1306 - sprawdź wpierw example z biblioteki Dallasa "test", czy jakoś tak i zobacz, czy wykrywa Ci tego dallasa.

Spróbuj też podłączyć pin pod cyfrowy.
@xtedek: @stefan_pmp: @wrona80: @MalowanyPtak:
Dzięki wielkie! Dzięki Wam poznałem sporo praktycznych wskazówek jak to debugować - okazuje się, że kabelek od czujki chyba jest gdzieś przełamany i raz styka raz nie:

'Requesting temperatures...DONE
Requesting temperatures...DONE
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 19.50 Temp F: 67.10
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 19.50 Temp F: 67.10
Requesting temperatures...DONE
Temperature for device: 0
Temp C: 19.50