Všetci začiatočníci sa snažia vytvoriť napríklad meteostanicu, kde chcú merať teploty, tlak a iné veličiny.
Na meranie teplôt sa využívajú najčastejšie senzory DS18B20 (Dallas Maxim Temperature sensors)
Tieto senzory podporujú OneWire zbernicu. Po jednom vodiči je možné posielať dáta + "elektriku".
Každé DS18B20 čidlo má inú adresu. To znamená, že je možné čítať z každého čidla zvlášť, podľa jeho indexu (poradia na kábli). Napájanie stačí na 3.3V, pri 5V sa čidlá jemne hrejú a tým je meranie nepresnejšie. Pri každom zapojení je nutné využiť 4,7KΩ odpor.
Wiring pre Parasite Power Mode:
Wiring pre Normal Power Mode:
Wiring pre jedno DS18B20 čidlo
POZOR pri obrázku NORMAL módu! Podľa druhu čidla je možné, že Vcc a GND máte naopak.
Vzorový Arduino kód:
Kód: Vybrat vše
#include <OneWire.h> //KNIZNICA ONEWIRE PRE VYUZITIE ONEWIRE ZBERNICE
#include <DallasTemperature.h> //KNIZNICA PRE TEPLOTNE CIDLA DS18B20
#define ONE_WIRE_BUS 5 //DEFINICIA PINU AKO ZBERNICE PRE ONEWIRE ZARIADENIA.. TU ZBIERAME UDAJE
OneWire oneWire(ONE_WIRE_BUS); //ONEWIRE ČÍTAŤ IBA NA PORTE DEFINOVANOM VYSSIE
DallasTemperature sensors(&oneWire); //PRIRADENIE SENZOROV DALLAS DS18B20 NA ONEWIRE ZBERNICU
void setup() {
sensors.begin(); //START SENZOROV POD ONEWIRE (DALLASTEMPERATURE)
delay(2000);
Serial.begin(9600); //SPUSTENIE SERIOVEJ LINKY NA CITACIU RYCHLOST 9600
while (!Serial) {
; //CAKA POKYM SA SERIOVY PORT NEZAPNE
}
}
void loop() {
sensors.requestTemperatures(); B
delay(500); //delay je dobry, niektore DS senzory musia počkať, kým vrátia hodnotu!
Serial.println("Teplota prve cidlo:");
Serial.println(sensors.getTempCByIndex(0));
Serial.println("Teplota druhe cidlo:");
Serial.println(sensors.getTempCByIndex(1));
Serial.println("Teplota tretie cidlo:");
Serial.println(sensors.getTempCByIndex(2));
Serial.println("Teplota stvrte cidlo:");
Serial.println(sensors.getTempCByIndex(3));
delay(2000);
}