A13. Dallas lämpötilasensorit - matpi/EmbeddedSystemsUTU GitHub Wiki

Dallas lämpötila-anturi on edullinen sensori, jossa on VCC, GND sekä signaalijohdin. Dallas lämpötila-anturi antaa lukeman suoraa Celsius asteina (toiminta-alue n.-45 - +125 C astetta). Ohjeita ja testikykentöjä Arduinolle löytyy runsaasti, mm. osoitteista:

http://web.djodjo.org/article/articles/electrical/arduino/general/ds18b20

http://www.tweaking4all.com/hardware/arduino/arduino-ds18b20-temperature-sensor/

http://www.hacktronics.com/Tutorials/arduino-1-wire-tutorial.html

Vaihtoehtoinen kytkentäesimerkki (parasite connection) löytyy täältä:

http://www.hobbytronics.co.uk/ds18b20-arduino

Liitä Dallas lämpötila-anturi Arduinolle kuvan mukaisesti: lisäksi kytke signaalijohdin DQ 4,7 kΩ vastuksen avulla Arduinon +5 volttiin.

Dallas temperature sensor

Kuva: http://www.instructables.com/id/Temperature-with-DS18B20/


Dallas lämpötila-anturin kytkentä

Dallas sensor connections


Kytke aluksi Arduinoon pelkästään Dallas lämpötila-anturi yllä olevan kuvan mukaisesti. Testaa seuraavaa koodia, jonka avulla lämpötilalukeman saa tulostettua sarjamonitoriin:


//  This Arduino sketch reads DS18B20 "1-Wire" digital
//  temperature sensors.
// This code has been “hacked”, using the original code of Mark McComb …
//Copyright (c) 2010 Mark McComb, hacktronics LLC
//  License: http://www.opensource.org/licenses/mit-license.php (Go crazy)
//  Tutorial:
//  http://www.hacktronics.com/Tutorials/arduino-1-wire-tutorial.html

#include <OneWire.h>
#include <DallasTemperature.h>

// Data wire is plugged into pin 2 on the Arduino
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);

// Assign the addresses of your 1-Wire temp sensors.
// See the tutorial on how to obtain these addresses:
// http://www.hacktronics.com/Tutorials/arduino-1-wire-address-finder.html

void setup()
{

// start serial port
Serial.begin(9600);
// Start up the library
sensors.begin();

}

void loop()
{

int tempC = sensors.getTempCByIndex(0);
delay(2000);
Serial.print("Getting temperatures...");
sensors.requestTemperatures();  // send the command to get temperatures
Serial.print(">");
Serial.print(tempC); 
Serial.println("<");
delay(1);

}

Dallas lämpötila-anturi ja LCD näyttö i2c expander moduulilla

Dallas + LCDi2c


Lisää nyt edelliseen kytkentään yllä olevan kuvan mukaisesti LCD näyttö, jossa on i2C moduuli. Kokeile sitten seuraavaa koodia. Nyt saat lämpötilan näkymään LCD näytöllä.


 /*
 Some ideas found to this code from _ArduinoGetStarted.com_
 see https://arduinogetstarted.com/tutorials/arduino-temperature-sensor-lcd
 */

#include <OneWire.h>
#include <DallasTemperature.h>
#include <Wire.h> // Tämä tuo I2C-kirjaston käyttöön.
#include <LiquidCrystal_I2C.h> // Ja tämä LCD-kirjaston.

// Asetetaan LCD näytön osoite
LiquidCrystal_I2C lcd(0x27, 16, 2);  

// Anturin data pinni kytketään Arduinon digitaaliseen pinniín 2 on the
#define ONE_WIRE_BUS 2

// Setup a oneWire instance to communicate with any OneWire devices
OneWire oneWire(ONE_WIRE_BUS);

// Pass our oneWire reference to Dallas Temperature. 
DallasTemperature sensors(&oneWire);

void setup()
{

//käynnistetään näyttö ja laitetaan taustavalo päälle
lcd.begin();   
lcd.backlight();
sensors.begin();

}

void loop()
{

int tempC = sensors.getTempCByIndex(2);
sensors.requestTemperatures();
lcd.setCursor(0,0);           // asetetaan tekstin aloituskohta
lcd.print("Lampotila = ");    // tulostetaan näytölle teksti Lampotila
lcd.print(tempC);             // tulostetaan näytölle muuttujan tempC arvo
lcd.print((char)223);         // tulostetaan näyttöön ° merkki
lcd.print("C");               // tulostetaan näyttöön C merkki

}

⚠️ **GitHub.com Fallback** ⚠️