INHOUDSOPGAWE:

Digitale termometer met Arduino en DS18B20: 7 stappe
Digitale termometer met Arduino en DS18B20: 7 stappe

Video: Digitale termometer met Arduino en DS18B20: 7 stappe

Video: Digitale termometer met Arduino en DS18B20: 7 stappe
Video: Светодиодная гистограмма Код Arduino UNO || Проект Ардуино 2024, Julie
Anonim
Digitale termometer met Arduino en DS18B20
Digitale termometer met Arduino en DS18B20
Digitale termometer met Arduino en DS18B20
Digitale termometer met Arduino en DS18B20

Skep eenvoudig 'n digitale termometer waarmee u die huidige kamertemperatuur op 'n LCD -skerm kan vertel. Dit is 'n beginnersprojek. Apparaat wat u benodig: 1. Arduino UNO R3 2. DS18B20 temperatuursensor. 3. 16X2 LCD -skerm. 4. Verbindingsdrade. 5. Projekbord. Laat ons nou 'n digitale termometer maak … Dit is 'n Atmega168 pinouts vir arduino. Slaan dit net oor as u hierdie termometer saam met u arduino wil maak.

Stap 1: Maak Arduino op broodbord

Maak Arduino op broodbord
Maak Arduino op broodbord

Dit is baie maklik om arduino op 'n bord te maak. Nou word stap vir stap die bedradingprosedure hieronder gegee: 1. Speld 7 -> +5V 2. Pin8 -> GND 3. Pin9 -> Kristal -> 22pF kapasitor -> GND 4. Pin10-> Kristal -> 22pF kapasitor -> GND 5. pen 22 -> GND 6. Pin21 & Pin20 -> +5V 7. Pin1-> 10K registor na GND +Druk knoppie na +5V Nou is jy gereed ………….

Stap 2: Koppel LCD aan

Koppel LCD
Koppel LCD

Stap 3: Verbind DS18B20 Temperatuursensor

Verbind DS18B20 Temperatuursensor
Verbind DS18B20 Temperatuursensor

Stap 4: Voorbereiding van die stroombaan

Voorbereiding van die kring
Voorbereiding van die kring

Koppel die LCD met die atmega of arduino volgens die standaard LCD -voorbeeld op die arduino IDE. Koppel nou die DS1307 DATA -bus aan die DIGITAL PIN 7 (Atmega pin 13)

Stap 5: Arduino KODE

#include #include #include int DS18S20_Pin = 7; // DS18S20 Seinpen op digitale 7 deur rahulmitra LiquidCrystal lcd (12, 11, 5, 4, 3, 2); // Temperatuurskyfie i/o OneWire ds (DS18S20_Pin); // op digitale pen 7 deur rahulmitra leemte opstelling (leeg) {Serial.begin (9600); lcd.begin (16, 2); // Druk 'n boodskap op die LCD. lcd.print ("Rahul Mitra"); } leemte lus (leeg) {vlottemperatuur = getTemp (); Serial.println (temperatuur); lcd.setCursor (0, 1); lcd.print ("Temp:"); lcd.print (temperatuur); lcd.print (" *C"); vertraging (100); // net hier om die uitset te vertraag, sodat dit makliker is om te lees} float getTemp () {// gee die temperatuur terug van een DS18S20 in byte data van Celsius Celsius [12]; byte addr [8]; as (! ds.search (addr)) {// geen sensors meer op die ketting is nie, stel die soektog ds.reset_search () terug; terugkeer -1000; } if (OneWire:: crc8 (addr, 7)! = addr [7]) {Serial.println ("CRC is nie geldig nie!"); terugkeer -1000; } if (addr [0]! = 0x10 && addr [0]! = 0x28) {Serial.print ("Toestel word nie herken nie"); terugkeer -1000; } ds.reset (); ds.select (addr); ds.write (0x44, 1); // begin omskakeling, met parasietkrag aan op die einde byte teenwoordig = ds.reset (); ds.select (addr); ds.write (0xBE); // Lees Scratchpad vir (int i = 0; i <9; i ++) {// ons benodig 9 grepe data = ds.read (); } ds.reset_search (); byte MSB = data [1]; byte LSB = data [0]; float tempRead = ((MSB << 8) | LSB); // met behulp van twee se kompliment float TemperatureSum = tempRead /16; terugkeer TemperatuurSom; }

Stap 6: Uiteindelik het u klaar

Uiteindelik het u klaar
Uiteindelik het u klaar
Uiteindelik het u klaar
Uiteindelik het u klaar

Stap 7: Sien LIVE

www.youtube.com/watch?v=7718FODdtio&list=UUY916I6z4Y3QQhzjHsIhR8w

Aanbeveel: