Daar is verskillende humiditeits- en temperatuursensors beskikbaar, soos die LM35. Sommige het modules ingebou vir spesifieke gebruik met die Arduino. Maar oor die algemeen moet hulle droë temperatuur meet, dit wil sê lugtemperatuur. Maar daar is 'n konkrete model waarvoor u werk meet temperatuur in vloeistowwe en word DS18B20 genoem. 'N Eienaardigheid wat nuttig kan wees vir sommige van u meer eksotiese DIY-projekte, waar u ook met 'n soort vloeistof speel waarvoor u hierdie parameter moet ken.
Eintlik meet die DS18B20 nie net die temperatuur in vloeistowwe nie, maar dit kan baie handig wees om die temperatuur in te meet vogtige omgewings en ook onder vloeistof. U kan dit dus ook gebruik om die lugtemperatuur te meet as die omgewing baie vogtig is. En soos ek gesê het, die kenmerk om dit in 'n vloeistof te kan onderdompel om die temperatuur daarvan te meet, is een van die kenmerke wat dit ongelooflik prakties maak.
Index
Wat is die DS18B20?
Wel, ek dink dit het al duidelik geword, dit is 'n elektroniese sensor wat die temperatuur van gasvormige of vloeibare media kan meet. Daarbenewens is daar verskillende pakkette of pakkette van DS18B20, soos die basiese een wat u in die hoofbeeld sien, of dit kan ook in sommige PCB's, dompelpype, ens. geïntegreer word. Vir u projek moet u die geskikste formaat kies volgens wat u wil hê.
Afgesien van die tipiese TO-92, is daar byvoorbeeld ook die microSOP. Moontlik om te integreer die beste by Arduino is die TO-92, aangesien dit met sy drie penne baie maklik in die broodbord geplaas kan word om aan te sluit.
pinout
El DS18B20 pinout dit is maklik om te identifiseer. As u byvoorbeeld die Dallas TO-92-pakket, wat een van die gewildste is, verwys, kan u sien dat dit drie penne het. As u dit van voor sit, dit wil sê met die afgeronde gedeelte agtertoe en kyk na die plat gesig waar die inskripsies verskyn, is die pen aan u linkerkant 1 en die een aan u regterkant is 3. Daarom is 1 vir GND of grond, 2 is vir data en 3 vir toevoerspanning.
Hier moet ons dit sê, waardes wat u moet ken:
- Speld 1: u moet dit verbind met die GND-pen van Arduino, dit wil sê aan 0v.
- Pen 2: hierdie pen is DQ of data, die een wat die temperature wat deur die sensor gemeet word, na Arduino stuur deur middel van 'n spesifieke protokol, bekend as 1-draad, en wat 'n spesiale biblioteek en funksies benodig vir die Arduino IDE. Dit laat toe om slegs een Arduino-pen te gebruik om verskeie sensors met hierdie protokol te verbind ...
- Speld 3: dit kan van 3 tot 5,5 v aangedryf word, sodat u dit kan verbind met die 5 v-uitvoer van Arduino.
DS18B20 tegniese eienskappe en datablad
Soos altyd is dit interessant om die tegniese eienskappe te ken van die sensor om te weet hoe dit werk, om dit nie te beskadig nie, en bowenal sodat ons weet waar die metingsgrense is, want as die waardes wat ons wil meet nie tussen hulle is nie, sal dit ons en u nie help nie. moet 'n ander alternatief soek.
Om dit te doen, is dit die beste om a af te laai vervaardiger datablad, soos die in Dallas wat jy kan hier sien. Daar vind u al die nodige inligting. En onthou dat al die DS18B20 soortgelyk kan wees, afhangende van die vervaardiger of pakket, kan u 'n paar veranderinge vind ...
Maar ongeag die eienaardighede, hier is 'n paar basiese tegniese data:
- Temperatuurspeling: -55 tot 125 ° C, dus kan dit gas of vloeistof meet by baie lae en ook hoë temperature.
- foute: die DS18B20 is sensitief vir eksterne geraas of steurings wat foutiewe waardes in metings kan gee. Die foutmarge is plus minus 2 ° C, alhoewel dit by 'n temperatuur tussen -10 ° C en 85 ° C, dit wil sê, as ons nie naby die limiete is nie, dit net 'n halwe graad kan wees.
- Besluit: U kan met verskillende resolusies of minimale variasies werk wat u met die Arduino-analoogpennetjies kan opspoor. Ondersteun 9-bit, 10-bit, 11-bit en 12-bit (standaard). Dit kan dus meet van 'n halwe tot 'n halwe graad, van 'n kwart tot 'n kwart van 'n graad, van 0,125 tot 0,125 ° C, of van 0,0625 ° C. U kan hierdie programmering verander deur middel van die programmeringskode.
- Voedingspanning: 3 tot 5,5v
- prys: 1 tot 3 €
Integrasie met Arduino
Alhoewel daar verskillende maniere om dit te verbinddie geskikste is die een wat u in hierdie diagram sien. Dit is heel eenvoudig, met die GND-pen in die ooreenstemmende aansluiting van die Arduino-kaart, die kragvoorsiening dieselfde en dan die data na die Arduino-analoog wat u in u programmeringskode in Arduino IDE gekies het. Maar dit is ook goed om 'n optrekweerstand van 4,7k in te stel (as die afstand van die sensorkondekabel groter is, moet die weerstand laer wees, byvoorbeeld vir 5m van 3,3k, vir 10 van 2,2, XNUMXk, ...) vir die datapen en hou dit dus altyd hoog.
Vir programmering in Arduino IDE en die goeie integrasie met die DS18B20 en die spesifieke protokol word aanbeveel dat u die biblioteke aflaai Dallas temperatuur y OneWire uit die omgewing. En die basiskode, dit kan iets soos hierdie voorbeeld wees wat ek toon:
#include <OneWire.h> #include <DallasTemperature.h> // Pin donde se conecta el bus 1-Wire (DQ) const int pinDatosDQ = 9; // Instancia a las clases OneWire y DallasTemperature OneWire oneWireObjeto(pinDatosDQ); DallasTemperature sensorDS18B20(&oneWireObjeto); void setup() { // Iniciamos la comunicación serie a 9600 baudios Serial.begin(9600); // Iniciamos el bus 1-Wire del sensor sensorDS18B20.begin(); } void loop() { // Indicamos que tome la temperatura Serial.println("Midiendo temperatura"); sensorDS18B20.requestTemperatures(); // Lee y muestra la temperatura (recuerda que puedes conectar más de uno con 1-wire) Serial.print("La temperatura del sensor 0 es de: "); Serial.print(sensorDS18B20.getTempCByIndex(0)); Serial.println(" C"); Serial.print("La temperatura del sensor x es de: "); Serial.print(sensorDS18B20.getTempCByIndex(1)); Serial.println(" ºC"); delay(1000); }
Meer inligting - Arduino-programmeerhandleiding (gratis PDF)
Wees die eerste om te kommentaar lewer