#include <OneWire.h> //dołączenie biblioteki od komunikacji onewire
#include <DallasTemperature.h> //dołączenie biblioteki od czujnika
#define ledPin 3 //pin diody led
#define oneWireBus 2 //pin czujnika temperatury
bool ledState = false; //zmienna przechowująca stan diody
float temperature = 0.0; //zmienna przechowująca aktualną wartość temperatury
float threshold = 15.0; //zmienna przechowująca threshold wyzwalajacy diodę
OneWire oneWire(oneWireBus); //obiekt oneWire
DallasTemperature sensors(&oneWire); //obiekt czunika temperatury
void setup() { //funkcja setup (wykonuje się tylko raz)
pinMode(ledPin,OUTPUT); //inicjalizacja pinu na wyjście, stan niski
Serial.begin(9600); //otworzenie komunikacji szeregowej
while (!Serial); //oczekiwanie na połączenie
sensors.begin(); //inicjalizacja czujnika temperatury
}
void loop() { //funkcja loop (wykonuje się cyklicznie)
sensors.requestTemperatures(); //pobranie wartości temperatury
temperature=sensors.getTempCByIndex(0); //odczyt temperatury
while(Serial.available() > 0) //odczyt danych w pętli jeśli coś jest w buforze
threshold = Serial.parseFloat(); //odczyt danych z portu szeregowego i zapis w threshold
ledState = temperature < threshold ? true : false; //ustala stan diody
digitalWrite(ledPin, ledState); //zapal/zgaś diodę w zależności od stanu
Serial.print("temperature = "); //wyślij opis
Serial.print(temperature); //wyślij temperature na port szeregowy
Serial.print(" ledState = "); //wyślij opis
Serial.println(ledState); //wyślij stan diody na port szeregowy
delay(500);
}
Loading
ds18b20
ds18b20