- தேவையான கூறுகள்: -
- DS18B20 வெப்பநிலை உணரி:
- சுற்று வரைபடம்: -
- படிகள் அல்லது குறியீடு ஓட்டம்: -
- குறியீடு விளக்கம்:
- DS18B20 வெப்பநிலை சென்சாரிலிருந்து தரவைப் பெறுதல்:
பொதுவாக, எல்எம் 35 வெப்பநிலை சென்சார் மைக்ரோகண்ட்ரோலர்களுடன் வெப்பநிலையை அளவிட பயன்படுகிறது, ஏனெனில் இது மலிவானது மற்றும் எளிதில் கிடைக்கிறது. ஆனால் எல்எம் 35 அனலாக் மதிப்புகளைக் கொடுக்கிறது, மேலும் அவற்றை ஏடிசி (அனலாக் டு டிஜிட்டல் மாற்றி) பயன்படுத்தி டிஜிட்டலாக மாற்ற வேண்டும். ஆனால் இன்று நாம் டிஎஸ் 18 பி 20 வெப்பநிலை சென்சாரைப் பயன்படுத்துகிறோம், அதில் வெப்பநிலையைப் பெற ஏடிசி மாற்றம் தேவையில்லை. இங்கே வெப்பநிலையை அளவிட DS18B20 உடன் PIC மைக்ரோகண்ட்ரோலரைப் பயன்படுத்துவோம்.
எனவே இங்கே மைக்ரோசிபிலிருந்து PIC16F877A மைக்ரோகண்ட்ரோலர் யூனிட்டைப் பயன்படுத்தி பின்வரும் விவரக்குறிப்புடன் ஒரு தெர்மோமீட்டரை உருவாக்குகிறோம்.
- இது -55 டிகிரி முதல் +125 டிகிரி வரை முழு அளவிலான வெப்பநிலையைக் காண்பிக்கும்.
- வெப்பநிலை + / -.2 டிகிரி மாறினால் மட்டுமே அது வெப்பநிலையைக் காண்பிக்கும்.
தேவையான கூறுகள்: -
- Pic16F877A - PDIP40 தொகுப்பு
- ரொட்டி வாரியம்
- பிக்கிட் -3
- 5 வி அடாப்டர்
- LCD JHD162A
- DS18b20 வெப்பநிலை சென்சார்
- சாதனங்களை இணைக்க கம்பிகள்.
- 4.7 கே மின்தடையங்கள் - 2 பிசிக்கள்
- 10 கே பானை
- 20mHz கிரிஸ்டல்
- 2 பிசிக்கள் 33 பிஎஃப் பீங்கான் மின்தேக்கிகள்
DS18B20 வெப்பநிலை உணரி:
டிஎஸ் 18 பி 20 வெப்பநிலையை துல்லியமாக உணர ஒரு சிறந்த சென்சார். இந்த சென்சார் வெப்பநிலை உணர்தலில் 9 பிட் முதல் 12 பிட் தீர்மானம் வழங்குகிறது. இந்த சென்சார் ஒரே ஒரு கம்பியுடன் மட்டுமே தொடர்பு கொள்கிறது மற்றும் அனலாக் வெப்பநிலையைப் பெறுவதற்கும் அவற்றை டிஜிட்டல் முறையில் மாற்றுவதற்கும் எந்த ஏடிசி தேவையில்லை.
சென்சாரின் விவரக்குறிப்பு: -
- -55 ° C முதல் + 125 ° C வரை (-67 ° F முதல் + 257 ° F வரை) வெப்பநிலை அளவிடும்
- ± 0.5 ° C துல்லியம் -10 ° C முதல் + 85. C வரை
- 9 பிட்களிலிருந்து 12 பிட்களாக நிரல்படுத்தக்கூடிய தீர்மானம்
- வெளிப்புற கூறுகள் தேவையில்லை
- சென்சார் 1-வயர் ® இடைமுகத்தைப் பயன்படுத்துகிறது

தரவுத்தாள் இருந்து மேலே உள்ள பின்அவுட் படத்தைப் பார்த்தால், சென்சார் BC547 அல்லது BC557 தொகுப்பு, TO-92 போன்றது போலவே இருப்பதைக் காணலாம். முதல் முள் தரை, இரண்டாவது முள் DQ அல்லது தரவு மற்றும் மூன்றாவது முள் VCC ஆகும்.
தரவுத்தாள் இருந்து மின் விவரக்குறிப்பு கீழே உள்ளது, இது எங்கள் வடிவமைப்பிற்கு தேவைப்படும். சென்சாருக்கான மதிப்பிடப்பட்ட விநியோக மின்னழுத்தம் + 3.0 வி முதல் + 5.5 வி வரை. இது மேலே கூறப்பட்ட விநியோக மின்னழுத்தத்தைப் போன்ற சப்ளை மின்னழுத்தத்தை இழுக்க வேண்டும்.

மேலும், -10 டிகிரி சி முதல் +85 டிகிரி செல்சியஸ் வரம்பிற்கு + -0.5 டிகிரி செல்சியஸ் என்ற துல்லியம் விளிம்பு உள்ளது, மற்றும் முழு வீச்சு விளிம்பிற்கான துல்லியம் மாற்றங்கள், இது -5 -2 டிகிரிக்கு + -2 பட்டம் + 125 பட்டம் வரம்பு.
தரவுத்தாள் மீண்டும் பார்த்தால், சென்சாரின் இணைப்பு விவரக்குறிப்பைக் காண்போம். இரண்டு கம்பிகள் தேவைப்படும் ஒட்டுண்ணி சக்தி பயன்முறையில் நாம் சென்சாரை இணைக்க முடியும், தரவு மற்றும் ஜி.என்.டி, அல்லது வெளிப்புற மின்சாரம் பயன்படுத்தி சென்சாரை இணைக்கலாம், அங்கு மூன்று தனித்தனி கம்பிகள் தேவைப்படுகின்றன. இரண்டாவது உள்ளமைவைப் பயன்படுத்துவோம்.

சென்சார் மற்றும் இணைப்பு தொடர்பான பகுதிகளின் சக்தி மதிப்பீடுகளை இப்போது நாம் அறிந்திருப்பதால், இப்போது திட்டவட்டத்தை உருவாக்குவதில் கவனம் செலுத்தலாம்.
சுற்று வரைபடம்: -

சுற்று வரைபடத்தைப் பார்த்தால் அதைக் காண்போம்: -
16x2 எழுத்து எல்சிடி PIC16F877A மைக்ரோகண்ட்ரோலர் முழுவதும் இணைக்கப்பட்டுள்ளது, இதில் RB0, RB1, RB2 ஆகியவை LCD முள் RS, R / W மற்றும் E உடன் இணைக்கப்பட்டுள்ளன. மேலும் RB4, RB5, RB6 மற்றும் RB7 ஆகியவை LCD இன் 4 முள் D4, D5, D6, டி 7. எல்சிடி 4 பிட் பயன்முறையில் அல்லது நிப்பிள் பயன்முறையில் இணைக்கப்பட்டுள்ளது.
33PF இன் இரண்டு பீங்கான் மின்தேக்கியுடன் 20MHz இன் படிக ஆஸிலேட்டர் OSC1 மற்றும் OSC2 முள் முழுவதும் இணைக்கப்பட்டுள்ளது. இது மைக்ரோகண்ட்ரோலருக்கு நிலையான 20 மெகா ஹெர்ட்ஸ் கடிகார அதிர்வெண்ணை வழங்கும்.
முள் உள்ளமைவின் படி DS18B20 இணைக்கப்பட்டுள்ளது மற்றும் முன்பு விவாதித்தபடி 4.7k புல் அப் மின்தடையுடன் இணைக்கப்பட்டுள்ளது. இதையெல்லாம் ப்ரெட்போர்டில் இணைத்துள்ளேன்.
PIC மைக்ரோகண்ட்ரோலருடன் நீங்கள் தொடங்கினால், எங்கள் PIC மைக்ரோகண்ட்ரோலர் டுடோரியல்களைப் பின்பற்றுவதை விட PIC மைக்ரோகண்ட்ரோலருடன் தொடங்குவதைக் குறிப்பிடுகிறீர்கள்.
படிகள் அல்லது குறியீடு ஓட்டம்: -
- ஆஸிலேட்டர் உள்ளமைவை உள்ளடக்கிய மைக்ரோகண்ட்ரோலரின் உள்ளமைவுகளை அமைக்கவும்.
- TRIS பதிவு உட்பட எல்சிடிக்கு விரும்பிய துறைமுகத்தை அமைக்கவும்.
- Ds18b20 சென்சார் கொண்ட ஒவ்வொரு சுழற்சியும் மீட்டமைப்போடு தொடங்குகிறது, எனவே ds18b20 ஐ மீட்டமைப்போம் மற்றும் இருப்பு துடிப்புக்காக காத்திருப்போம்.
- கீறல் பேட்டை எழுதி சென்சார் 12 பிட்டின் தீர்மானத்தை அமைக்கவும்.
- மீட்டமைக்கும் துடிப்பைத் தொடர்ந்து ரோம் வாசிப்பைத் தவிர்க்கவும்.
- மாற்ற வெப்பநிலை கட்டளையை சமர்ப்பிக்கவும்.
- ஸ்க்ராட்ச்பேடில் இருந்து வெப்பநிலையைப் படியுங்கள்.
- வெப்பநிலை மதிப்பை எதிர்மறையாகவோ நேர்மறையாகவோ சரிபார்க்கவும்.
- வெப்பநிலையை 16x2 எல்சிடியில் அச்சிடுங்கள்.
- +/- வெப்பநிலை மாற்றங்களுக்காக காத்திருங்கள். 20 டிகிரி செல்சியஸ்.

குறியீடு விளக்கம்:
இந்த டிஜிட்டல் தெர்மோமீட்டருக்கான முழு குறியீடு இந்த டுடோரியலின் முடிவில் ஒரு ஆர்ப்பாட்ட வீடியோவுடன் கொடுக்கப்பட்டுள்ளது. இங்கிருந்து பதிவிறக்கம் செய்யக்கூடிய இந்த நிரலை இயக்க உங்களுக்கு சில தலைப்பு கோப்புகள் தேவைப்படும்.
முதலில், பிக் மைக்ரோகண்ட்ரோலரில் உள்ளமைவு பிட்களை அமைக்க வேண்டும், பின்னர் வெற்றிட முக்கிய செயல்பாட்டுடன் தொடங்க வேண்டும்.
நூலக தலைப்பு கோப்பு, lcd.h மற்றும் ds18b20.h உள்ளிட்ட நான்கு வரிகளுக்கு கீழே பயன்படுத்தப்படுகிறது. மற்றும் xc.h மைக்ரோகண்ட்ரோலர் தலைப்பு கோப்பு உள்ளது.
#சேர்க்கிறது
வெப்பநிலை சென்சாருக்கு கட்டளையை அனுப்ப இந்த வரையறைகள் பயன்படுத்தப்படுகின்றன. கட்டளைகள் சென்சாரின் தரவுத்தாள் பட்டியலில் பட்டியலிடப்பட்டுள்ளன.
# வரையறுக்கவும் skip_rom 0xCC # convert_temp 0x44 # write_scratchpad ஐ வரையறுக்கவும்

சென்சாரின் தரவுத்தாள் இருந்து இந்த அட்டவணை 3 அந்தந்த கட்டளைகளை அனுப்ப மேக்ரோக்கள் பயன்படுத்தப்படும் அனைத்து கட்டளைகளையும் காட்டுகிறது.
வெப்பநிலை +/- .20 டிகிரி மாறினால் மட்டுமே வெப்பநிலை திரையில் காண்பிக்கப்படும். இந்த வெப்பநிலை இடைவெளியை இந்த temp_gap மேக்ரோவிலிருந்து மாற்றலாம் . இந்த மேக்ரோவில் மதிப்பை மாற்றுவதன் மூலம், விவரக்குறிப்பு மாற்றப்படும்.
காட்டப்படும் வெப்பநிலை தரவைச் சேமிக்கப் பயன்படுத்தப்படும் மற்ற இரண்டு மிதவை மாறிகள் மற்றும் வெப்பநிலை இடைவெளியுடன் அவற்றை வேறுபடுத்துகின்றன
# temp_gap 20 மிதவை pre_val = 0, aft_val = 0;
இல் வெற்றிடத்தை முக்கிய () செயல்பாடு, lcd_init () ; எல்சிடியைத் தொடங்குவதற்கான ஒரு செயல்பாடு. இந்த lcd_init () செயல்பாடு lcd.h நூலகத்திலிருந்து அழைக்கப்படுகிறது.
I / O ஊசிகளை உள்ளீடு அல்லது வெளியீடாக தேர்ந்தெடுக்க TRIS பதிவேடுகள் பயன்படுத்தப்படுகின்றன. கையொப்பமிடப்படாத இரண்டு குறுகிய மாறி TempL மற்றும் TempH வெப்பநிலை சென்சாரிலிருந்து 12 பிட் தெளிவுத்திறன் தரவை சேமிக்கப் பயன்படுகிறது.
void main (வெற்றிடம்) {TRISD = 0xFF; TRISA = 0x00; TRISB = 0x00; //TRISDbits_t.TRISD6 = 1; கையொப்பமிடாத குறுகிய TempL, TempH; கையொப்பமிடாத int t, t2; மிதவை வேறுபாடு 1 = 0, வேறுபாடு 2 = 0; lcd_init ();
டைம் லூப்பைப் பார்ப்போம், இங்கே நாம் (1) லூப்பை சிறிய துண்டுகளாக உடைக்கிறோம்.
வெப்பநிலை சென்சார் இணைக்கப்பட்டுள்ளதா இல்லையா என்பதை உணர அந்த கோடுகள் பயன்படுத்தப்படுகின்றன.
(ow_reset ()) {lcd_com (0x80); lcd_puts ("தயவுசெய்து இணைக்கவும்"); lcd_com (0xC0); lcd_puts ("தற்காலிக-உணர்வு ஆய்வு"); }
குறியீட்டின் இந்த பகுதியைப் பயன்படுத்துவதன் மூலம், சென்சாரைத் துவக்கி, வெப்பநிலையை மாற்ற கட்டளையை அனுப்புகிறோம்.
lcd_puts (""); ow_reset (); write_byte (write_scratchpad); எழுது_பைட் (0); எழுது_பைட் (0); எழுது_பைட் (தீர்மானம்_12 பிட்); // 12 பிட் தீர்மானம் ow_reset (); எழுது_பைட் (skip_rom); write_byte (convert_temp);
கையொப்பமிடப்படாத இரண்டு குறுகிய மாறிகளில் 12 பிட் வெப்பநிலை தரவை சேமிப்பதற்கானது இந்த குறியீடு.
போது (read_byte () == 0xff); __ தாமத_எம்எஸ் (500); ow_reset (); எழுது_பைட் (skip_rom); write_byte (read_scratchpad); TempL = read_byte (); TempH = read_byte ();
கீழேயுள்ள முழுமையான குறியீட்டை நீங்கள் சரிபார்த்தால், வெப்பநிலை அடையாளத்தை நேர்மறையா அல்லது எதிர்மறையா என்பதைக் கண்டறிய if-else நிபந்தனையை உருவாக்கியுள்ளோம்.
If statement குறியீட்டைப் பயன்படுத்துவதன் மூலம், நாங்கள் தரவைக் கையாளுகிறோம் மற்றும் வெப்பநிலை எதிர்மறையாக இருக்கிறதா இல்லையா என்பதைப் பார்த்து, வெப்பநிலை மாற்றங்கள் +/-.20 டிகிரி வரம்பில் உள்ளதா இல்லையா என்பதை தீர்மானிக்கிறோம். மற்றும் வேறு பகுதியை நாங்கள் வெப்பநிலை நேர்மறை அல்லது இல்லை மற்றும் வெப்பநிலை கண்டறிதல் மாற்றுகிறது என்பதை சோதிக்க.
குறியீடு
DS18B20 வெப்பநிலை சென்சாரிலிருந்து தரவைப் பெறுதல்:
1-வயர் ® இடைமுகத்தின் நேர இடைவெளியைப் பார்ப்போம். நாங்கள் 20 மெகா ஹெர்ட்ஸ் கிரிஸ்டலைப் பயன்படுத்துகிறோம். நாம் ds18b20.c கோப்பின் உள்ளே பார்த்தால், பார்ப்போம்
#_XTAL_FREQ 20000000 ஐ வரையறுக்கவும்
இந்த வரையறை XC8 கம்பைலர் தாமத வழக்கத்திற்கு பயன்படுத்தப்படுகிறது. படிக அதிர்வெண்ணாக 20 மெகா ஹெர்ட்ஸ் அமைக்கப்பட்டுள்ளது.
நாங்கள் ஐந்து செயல்பாடுகளைச் செய்தோம்
- ow_reset
- read_bit
- read_byte
- எழுது_பிட்
- எழுது_பைட்
1-வயர் ® நெறிமுறைக்கு தொடர்புகொள்வதற்கு கடுமையான நேரம் தொடர்பான இடங்கள் தேவை. தரவுத்தாள் உள்ளே, சரியான நேர-ஸ்லாட் தொடர்பான தகவல்களைப் பெறுவோம்.

கீழேயுள்ள செயல்பாட்டின் உள்ளே சரியான நேர இடத்தை உருவாக்கியுள்ளோம். அந்தந்த சென்சார் துறைமுகத்தின் TRIS பிட்டைப் பிடித்து விடுவிப்பதற்கான சரியான தாமதத்தை உருவாக்குவது முக்கியம்.
கையொப்பமிடாத கரி ow_reset (வெற்றிடத்தை) {DQ_TRIS = 0; // ட்ரிஸ் = 0 (வெளியீடு) டி.க்யூ = 0; // செட் முள் # முதல் குறைந்த (0) __delay_us (480); // 1 கம்பிக்கு நேர தாமதம் தேவை DQ_TRIS = 1; // ட்ரிஸ் = 1 (உள்ளீடு) __delay_us (60); // 1 கம்பிக்கு நேர தாமதம் தேவைப்பட்டால் (DQ == 0) // ஒரு இருப்பு பிளஸ் இருந்தால் {__delay_us (480); திரும்ப 0; // திரும்ப 0 (1-கம்பி என்பது இருப்பு)} else {__delay_us (480); திரும்ப 1; // திரும்ப 1 (1-கம்பி இல்லை)}} // 0 = இருப்பு, 1 = பகுதி இல்லை
இப்போது படிக்க மற்றும் எழுதுவதில் பயன்படுத்தப்படும் கீழேயுள்ள நேர ஸ்லாட் விளக்கத்தின்படி, முறையே வாசிப்பு மற்றும் எழுதுதல் செயல்பாட்டை உருவாக்கினோம்.

கையொப்பமிடாத கரி read_bit (வெற்றிடத்தை) {கையொப்பமிடாத கரி i; DQ_TRIS = 1; டி.க்யூ = 0; // டைம்ஸ்லாட்டைத் தொடங்க DQ ஐ குறைவாக இழுக்கவும் DQ_TRIS = 1; டி.க்யூ = 1; // பின்னர் (i = 0; i <3; i ++); // டைம்ஸ்லாட் ரிட்டர்ன் (டி.க்யூ) தொடக்கத்திலிருந்து 15us தாமதம்; // DQ வரியின் வருவாய் மதிப்பு} வெற்றிட எழுதும்_பிட் (கரி பிட்வால்) {DQ_TRIS = 0; டி.க்யூ = 0; (பிட்வால் == 1) டி.க்யூ = 1 என்றால் டைம்ஸ்லாட்டைத் தொடங்க டி.க்யூவை குறைவாக இழுக்கவும்; 1 __delay_us (5) எழுதினால் // DQ ஐ திரும்பவும்; // டைம்ஸ்லாட்டின் மீதமுள்ள மதிப்பை வைத்திருங்கள் DQ_TRIS = 1; டி.க்யூ = 1; } // தாமதம் ஒரு வட்டத்திற்கு 16us, மற்றும் 24us ஆகியவற்றை வழங்குகிறது. எனவே தாமதம் (5) = 104us
மேலும் காசோலை அனைத்து தொடர்புடைய தலைப்பு மற்றும் இங்கே கேட்ச் கோப்புகளை.
எனவே பிஐசி மைக்ரோகண்ட்ரோலருடன் வெப்பநிலையைப் பெற டிஎஸ் 18 பி 20 சென்சார் பயன்படுத்தலாம்.
எல்எம் 35 உடன் எளிய டிஜிட்டல் தெர்மோமீட்டரை உருவாக்க விரும்பினால், பிற மைக்ரோகண்ட்ரோலர்களுடன் திட்டங்களுக்கு கீழே புதுப்பிக்கவும்:
- ராஸ்பெர்ரி பை உடன் அறை வெப்பநிலை அளவீட்டு
- Arduino மற்றும் LM35 ஐப் பயன்படுத்தி டிஜிட்டல் தெர்மோமீட்டர்
- எல்எம் 35 மற்றும் 8051 ஐப் பயன்படுத்தி டிஜிட்டல் தெர்மோமீட்டர்
- எல்எம் 35 மற்றும் ஏவிஆர் மைக்ரோகண்ட்ரோலரைப் பயன்படுத்தி வெப்பநிலை அளவீட்டு
