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