• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
DS18B20 odczyt w rozdzielczości 9bit
#1
Witam

Mam kłopot żeby ustawić odczyt temperatury w rozdzielczości 9bit - upraszczając powód to wartość temp przechowuję w zmiennej INT więc większa rozdzielczość nie jest mi potrzebna. Próbowałem na różne sposoby to zrobić ale w tej bibliotece mi to nie wychodzi. Proszę o sugestie gdzie mogę ustawić rozdzielczość odczytu na 9 bit?
Kod:
#include <OneWire.h>
#include <DallasTemperature.h>
#include "U8glib.h"


U8GLIB_SH1106_128X64 u8g(U8G_I2C_OPT_DEV_0|U8G_I2C_OPT_FAST);  // Dev 0, Fast I2C / TWI


OneWire oneWire(2); //Podłączenie do pin2
DallasTemperature sensors(&oneWire); //Przekazania informacji do biblioteki

DeviceAddress tempBojler = { 0x28, 0xE1, 0x3A, 0x81, 0xE3, 0x63, 0x3C, 0x5E };
DeviceAddress tempPompka = { 0x28, 0x3A, 0xAB, 0x11, 0x00, 0x00, 0x00, 0xC8 };


const int pompka = 4;
int tempB = 0;
int tempP = 0;
bool wlPompke = LOW;
unsigned long aktualnyCzas = 0;
unsigned long czasPracy = 0;
unsigned long czasPrzerwy = 0;


void setup(void) {
  pinMode(pompka, OUTPUT);
  digitalWrite(pompka, LOW);
  Serial.begin(9600);
  sensors.begin(); //Inicjalizacja czujnikow
 
}

void loop(void) {

  sensors.requestTemperatures();                              //Pobranie temperatury czujnika
  int tempB = (sensors.getTempC(tempBojler));
  int tempP = (sensors.getTempC(tempPompka));
 
 
Odpowiedź
#2
Przykład jest w szkicu biblioteki "Multiple". Skoro masz adres czujnika to wystarczy tu wstawić:
// set the resolution to 9 bit per device
sensors.setResolution(tempBojler, 9);
sensors.setResolution(tempPompka, 9);
Wystarczy podmienić nazwę czujnika, a rozdzielczość możesz wstawić jako liczbę lub zmienną.
Miło być decenianym https://buycoffee.to/kaczakat
 
Odpowiedź
  


Skocz do:


Przeglądający: 1 gości