Lekcja 15: Cyfrowy czujnik temperatury.
Tematem tej lekcji jest cyfrowy czujnik temperatury DS18B20+ z podstawka ułatwiającą montaż.
Nasz projekt będzie wymagał umiejętności korzystania z zewnętrznych bibliotek przygotowanych dla czujnika i obsługi
cyfrowych urządzeń I/O. Przyda się tu umiejętność obiektowego programowania w C++ oraz znajomość tworzenia i korzystania z klas i metod (funkcji) w klasach.
Specyfikacja czujnika poniżej:
|
![]() |
Wyprowadzenia:

Poniżej przedstawiona jest tabela relacji między temperaturą a wyjściem cyfrowym.

Łączymy układ wg schematu:


Piszemy kod:
- #include < DallasTemperature.h>
- #include < OneWire.h>
- #define ONE_WIRE_BUS 7
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- void setup(void){
- Serial.begin(9600);
- sensors.begin();}
- void loop(void){
- sensors.requestTemperatures();
- Serial.println("");
- delay(500);
- Serial.print("Temperatura: ");
- Serial.println(sensors.getTempCByIndex(0));}
W linii 1 i 2 deklarujemy dwie biblioteki producenta, które można ściągnąć stąd:
DallasTempDigital.zip oraz OneWire.zip. Obie biblioteki należy rozpakować do folderu libraries
w folderze Arduino (w systemie Ubuntu jest to folder: /usr/share/arduino/libraries/).
W linii 3 deklarujemy pin nr 7.
W linii 4 z klasy OneWire definiujemy obiekt oneWire, który będzie operował na zdeklarowanym pinie 7.
W linii 5 z klasy DallasTemperature definiujemy obiekt sensors operujący danymi z oneWire.
W linii 8 definujemy prędkość przesułu danych portem szeregowym.
W linii 9 definujemy start czujnika obiektem sensors.
W linii 11 funkcją requestTemperature() uruchamiamy odczyt temperatury czujnika.
Po wypisaniu piustej linii oraz przerwie 500ms w linii 14 wypisujemy na ekran napis Temperatura: by w wlinii
15 wypisać wartość temperatury funkcją getTempCByIndex(0).
Powrót do spisu materiałów