- தேவையான பொருட்கள்:
- மூடப்பட்ட வேகம் மற்றும் தூரத்தை கணக்கிடுகிறது:
- சுற்று வரைபடம் மற்றும் வன்பொருள் அமைப்பு:
- உருவகப்படுத்துதல்:
- உங்கள் PIC16F877A ஐ நிரலாக்குகிறது:
- வேலை விளக்கம்:
ஒரு வாகனம் அல்லது ஒரு மோட்டரின் வேகம் / ஆர்.பி.எம் அளவை அளவிடுவது எப்போதுமே நாம் முயற்சிக்க ஒரு கண்கவர் திட்டமாகும். எனவே, இந்த திட்டத்தில் தொழில்துறை தயார் பி.ஐ.சி மைக்ரோகண்ட்ரோலர்களைப் பயன்படுத்தி ஒன்றை உருவாக்க உள்ளோம். வேகத்தை அளவிட ஒரு காந்தம் மற்றும் ஹால் சென்சார் பயன்படுத்துவோம். வேகத்தை அளவிட வேறு வழிகள் / சென்சார்கள் உள்ளன, ஆனால், ஹால் சென்சார் பயன்படுத்துவது மலிவானது, மேலும் எந்தவொரு மோட்டார் / வாகனத்திலும் பயன்படுத்தலாம். இந்த திட்டத்தை செய்வதன் மூலம், PIC16F877A ஐக் கற்றுக்கொள்வதில் எங்கள் திறன்களை மேம்படுத்துவோம், ஏனெனில் இந்தத் திட்டம் குறுக்கீடுகள் மற்றும் டைமர்களைப் பயன்படுத்துகிறது. இந்த திட்டத்தின் முடிவில், நீங்கள் எந்த சுழலும் பொருளால் மூடப்பட்டிருக்கும் வேகத்தையும் தூரத்தையும் கணக்கிட்டு அவற்றை 16x2 எல்சிடி திரையில் காண்பிக்க முடியும். இந்த டிஜிட்டல் ஸ்பீடோமீட்டர் மற்றும் ஓடோமீட்டர் சர்க்யூட்டை PIC உடன் தொடங்கலாம்.
தேவையான பொருட்கள்:
- PIC16F877A
- 7805 மின்னழுத்த சீராக்கி
- ஹால் எஃபெக்ட் சென்சார் (யுஎஸ் 1881/04 இ)
- 16 * 2 எல்சிடி காட்சி
- காந்தத்தின் ஒரு சிறிய துண்டு
- கம்பிகளை இணைக்கிறது
- மின்தேக்கிகள்
- ப்ரெட்போர்டு.
- மின்சாரம்
மூடப்பட்ட வேகம் மற்றும் தூரத்தை கணக்கிடுகிறது:
நாம் உண்மையில் சுற்று கட்டத் தொடங்குவதற்கு முன், ஒரு சக்கரத்தின் வேகத்தைக் கணக்கிட ஹால் சென்சார் மற்றும் ஒரு காந்தத்தை எவ்வாறு பயன்படுத்துவோம் என்பதைப் புரிந்துகொள்வோம். அண்ட்ராய்டு ஸ்மார்ட் தொலைபேசியில் அளவீடுகளைக் காண்பிக்கும் அர்டுயினோ ஸ்பீடோமீட்டரை உருவாக்க முன்னர் நாங்கள் அதே நுட்பத்தைப் பயன்படுத்தினோம்.
ஹால் சென்சார் என்பது ஒரு காந்தத்தின் இருப்பை அதன் துருவமுனைப்பின் அடிப்படையில் கண்டறியக்கூடிய ஒரு சாதனமாகும். நாம் ஒரு சிறிய காந்தத்தை சக்கரத்தில் ஒட்டிக்கொண்டு, ஹால் சென்சாரை அதன் அருகில் வைக்கிறோம், ஒவ்வொரு முறையும் சக்கரம் சுழலும் போது ஹால் சென்சார் அதைக் கண்டுபிடிக்கும். சக்கரத்தின் ஒரு முழுமையான சுழற்சிக்கான நேரத்தை கணக்கிட எங்கள் பிஐசி மைக்ரோகண்ட்ரோலரில் டைமர்கள் மற்றும் குறுக்கீடுகளின் உதவியைப் பயன்படுத்துகிறோம்.

எடுக்கப்பட்ட நேரம் தெரிந்தவுடன், கீழேயுள்ள சூத்திரங்களைப் பயன்படுத்தி RPM ஐக் கணக்கிடலாம், அங்கு 1000 / நேரம் எடுக்கப்பட்டால் எங்களுக்கு RPS கிடைக்கும், மேலும் 60 உடன் பெருக்கினால் உங்களுக்கு RPM கிடைக்கும்
rpm = (1000 / நேர அட்டவணை) * 60;
எங்கே (1000 / நேர அட்டவணை) ஆர்.பி.எஸ் (வினாடிக்கு புரட்சிகள்) தருகிறது, மேலும் இது ஆர்.பி.எஸ்ஸை ஆர்.பி.எம் (நிமிடத்திற்கு புரட்சிகள்) ஆக மாற்ற 60 ஆல் பெருக்கப்படுகிறது.
இப்போது வாகனத்தின் வேகத்தை கணக்கிட நாம் சக்கரத்தின் ஆரம் தெரிந்து கொள்ள வேண்டும். எங்கள் திட்டத்தில் 3cm ஆரம் கொண்ட ஒரு சிறிய பொம்மை சக்கரத்தைப் பயன்படுத்தியுள்ளோம். ஆனால், சக்கரத்தின் ஆரம் 30cm (0.3m) ஆக இருக்க வேண்டும் என்று கருதினோம், இதனால் வாசிப்புகளை நாம் காட்சிப்படுத்த முடியும்.
வேகம் = (ஆர்.பி.எம் (விட்டம் * பை) / 60) என்பதை நாம் அறிந்திருப்பதால் மதிப்பு 0.37699 உடன் பெருக்கப்படுகிறது . சூத்திரங்கள் கீழே எளிமைப்படுத்தப்பட்டுள்ளன
v = ஆரம்_ஒரு_வீல் * ஆர்.பி.எம் * 0.37699;
வேகத்தை கணக்கிட்டவுடன், இதேபோன்ற முறையைப் பயன்படுத்தி தூரத்தையும் கணக்கிடலாம். எங்கள் ஹால் மற்றும் காந்த ஏற்பாட்டின் மூலம் சக்கரம் எத்தனை முறை சுழன்றது என்பதை நாங்கள் அறிவோம். சக்கரத்தின் ஆரம் எங்களுக்குத் தெரியும், அதைப் பயன்படுத்தி சக்கரத்தின் சுற்றளவைக் காணலாம், சக்கரத்தின் ஆரம் 0.3 மீ (ஆர்) எனக் கருதி, சுற்றளவு பை * ஆர் * ஆர் மதிப்புகள் 0.2827 ஆக இருக்கும். இதன் பொருள் ஹால் சென்சார் காந்தத்தை சந்திக்கும் ஒவ்வொரு முறையும் 0.2827 மீட்டர் தூரம் சக்கரத்தால் மூடப்பட்டிருக்கும்.
தூரம்_கட்டப்பட்ட = தூரம்_கட்டப்பட்ட + சுற்றளவு_அளவு_ வட்டம்
இந்த திட்டம் எவ்வாறு செயல்படும் என்பதை இப்போது நாம் அறிவோம், இது எங்கள் சுற்று வரைபடத்திற்குச் சென்று அதை உருவாக்கத் தொடங்குகிறது.
சுற்று வரைபடம் மற்றும் வன்பொருள் அமைப்பு:

இந்த ஸ்பீடோமீட்டர் மற்றும் ஓடோமீட்டர் திட்டத்தின் சுற்று வரைபடம் மிகவும் எளிமையானது மற்றும் இது ஒரு பிரெட் போர்டில் கட்டப்படலாம். நீங்கள் PIC பயிற்சிகளைப் பின்பற்றுகிறீர்கள் என்றால், PIC மைக்ரோகண்ட்ரோலர்களைக் கற்க நாங்கள் பயன்படுத்திய வன்பொருளையும் மீண்டும் பயன்படுத்தலாம். கீழே காட்டப்பட்டுள்ளபடி, பி.ஐ.சி மைக்ரோகண்ட்ரோலருடன் எல்.ஈ.டி ஒளிரச் செய்வதற்காக நாங்கள் கட்டிய அதே பெர்ப் போர்டை இங்கே பயன்படுத்தினோம்:

PIC16F877A MCU க்கான முள் இணைப்புகள் கீழே உள்ள அட்டவணையில் கொடுக்கப்பட்டுள்ளன.
|
எஸ். இல்லை: |
முள் எண் |
முள் பெயர் |
இணைக்கப்பட்டுவிட்டது |
|
1 |
21 |
ஆர்.டி 2 |
எல்சிடியின் ஆர்.எஸ் |
|
2 |
22 |
ஆர்.டி 3 |
எல்சிடியின் மின் |
|
3 |
27 |
ஆர்.டி 4 |
எல்சிடியின் டி 4 |
|
4 |
28 |
ஆர்.டி 5 |
எல்சிடியின் டி 5 |
|
5 |
29 |
ஆர்.டி 6 |
எல்சிடியின் டி 6 |
|
6 |
30 |
ஆர்.டி 7 |
எல்சிடியின் டி 7 |
|
7 |
33 |
RB0 / INT |
ஹால் சென்சாரின் 3 வது முள் |
உங்கள் திட்டத்தை நீங்கள் உருவாக்கியதும், கீழேயுள்ள படத்தில் இது போன்ற ஏதாவது இருக்க வேண்டும்

நீங்கள் பார்க்க முடியும் என நான் மோட்டார் மற்றும் ஒரு ஹால் சென்சார் அருகிலுள்ள இடத்தில் வைக்க இரண்டு பெட்டிகளைப் பயன்படுத்தினேன். உங்கள் சுழலும் பொருளின் மீது நீங்கள் காந்தத்தை சரிசெய்யலாம் மற்றும் காந்தத்தைக் கண்டறியும் வகையில் ஹால் சென்சாரை அதன் அருகில் வைத்துக் கொள்ளலாம்.
குறிப்பு: ஹால் சென்சார் துருவமுனைப்புகளைக் கொண்டுள்ளது, எனவே இது எந்த துருவத்தைக் கண்டறிகிறது என்பதை உறுதிசெய்து அதற்கேற்ப வைக்கவும்.
ஹால் சென்சாரின் வெளியீட்டு முள் கொண்டு புல்-அப் மின்தடையத்தைப் பயன்படுத்துகிறீர்கள் என்பதையும் உறுதிப்படுத்திக் கொள்ளுங்கள்.
உருவகப்படுத்துதல்:
இந்த திட்டத்திற்கான உருவகப்படுத்துதல் புரோட்டியஸைப் பயன்படுத்தி செய்யப்படுகிறது. திட்டத்தில் நகரும் பொருள்களை உள்ளடக்கியிருப்பதால், முழுமையான திட்டத்தை உருவகப்படுத்துதலைப் பயன்படுத்தி நிரூபிக்க முடியாது, ஆனால் எல்சிடியின் செயல்பாட்டை சரிபார்க்க முடியும். வெறுமனே ஹெக்ஸ் கோப்பை சிமுலேஷனில் ஏற்றி அதை உருவகப்படுத்தவும். கீழே காட்டப்பட்டுள்ளபடி எல்சிடி செயல்படுவதை நீங்கள் கவனிக்க முடியும்.

ஸ்பீடோமீட்டர் மற்றும் ஓடோமீட்டர் செயல்படுகின்றனவா என்பதை அறிய நான் ஹால் சென்சாரை ஒரு லாஜிக் ஸ்டேட் சாதனத்துடன் மாற்றியுள்ளேன். உருவகப்படுத்துதலின் போது, குறுக்கீட்டைத் தூண்டுவதற்கு நீங்கள் லாஜிக் ஸ்டேட் பொத்தானைக் கிளிக் செய்து, மேலே காட்டப்பட்டுள்ளபடி மூடப்பட்டிருக்கும் வேகமும் தூரமும் புதுப்பிக்கப்படுகிறதா என்பதைச் சரிபார்க்கலாம்.
உங்கள் PIC16F877A ஐ நிரலாக்குகிறது:
முன்பு கூறியது போல், சக்கரத்தின் ஒரு முழுமையான சுழற்சிக்கான நேரத்தை கணக்கிட PIC16F877A மைக்ரோகண்ட்ரோலரில் டைமர்கள் மற்றும் குறுக்கீடுகளின் உதவியைப் பயன்படுத்துவோம். எங்கள் பரவலான டுடோரியலில் டைமர்களை எவ்வாறு பயன்படுத்துவது என்பதை நாங்கள் ஏற்கனவே கற்றுக்கொண்டோம். இந்த கட்டுரையின் முடிவில் திட்டத்தின் முழுமையான குறியீட்டை வழங்கியுள்ளேன். மேலும் சில முக்கியமான வரிகளை கீழே விளக்கினேன்.
குறியீட்டின் கீழேயுள்ள வரிகள் போர்ட் டி ஐ எல்சிடி இடைமுகத்திற்கான வெளியீட்டு ஊசிகளாகவும், வெளிப்புற முள் பயன்படுத்த RB0 ஐ உள்ளீட்டு முனையாகவும் துவக்குகின்றன. மேலும் OPTION_REG ஐப் பயன்படுத்தி உள் இழுத்தல் மின்தடையத்தை இயக்கியுள்ளோம், மேலும் 64 ஐ முன்னமைவாக அமைத்துள்ளோம். WE பின்னர் டைமர் மற்றும் வெளிப்புற குறுக்கீட்டை இயக்க உலகளாவிய மற்றும் புற குறுக்கீட்டை இயக்கு. RB0 ஐ வெளிப்புற குறுக்கீடு பிட் என வரையறுக்க INTE ஐ அதிகமாக்க வேண்டும். ஓவர்ஃப்ளோ மதிப்பு 100 ஆக அமைக்கப்பட்டுள்ளது, இதனால் ஒவ்வொரு 1 மில்லி விநாடிக்கும் டைமர் குறுக்கீடு கொடி TMR0IF தூண்டப்படும். மில்லி விநாடிகளில் எடுக்கப்பட்ட நேரத்தை தீர்மானிக்க இது ஒரு மில்லி விநாடி டைமரை இயக்க உதவும்:
TRISD = 0x00; // எல்.சி.டி டி.ஆர்.எஸ்.பி 0 = 1 ஐ இணைப்பதற்கான வெளியீடாக PORTD அறிவிக்கப்பட்டுள்ளது; // குறுக்கீடு முள் பயன்படுத்த RB0 முள் உள்ளீடாக வரையறுக்கவும் OPTION_REG = 0b00000101; // டைமர் 0 64 ப்ரெஸ்கலராக // மேலும் PULL UP களை இயக்குகிறது TMR0 = 100; // 1ms க்கு நேர மதிப்பை ஏற்றவும்; delayValue 0-256 க்கு இடையில் மட்டுமே TMR0IE = 1; // PIE1 பதிவேட்டில் டைமர் குறுக்கீடு பிட்டை இயக்கு GIE = 1; // உலகளாவிய குறுக்கீட்டை இயக்கு PEIE = 1; // புற குறுக்கீட்டை இயக்கு INTE = 1; // RB0 ஐ வெளிப்புற குறுக்கீடு முள் என இயக்கவும்
ஒவ்வொரு முறையும் குறுக்கீடு கண்டறியப்பட்டால் கீழேயுள்ள செயல்பாடு செயல்படுத்தப்படும். எங்கள் விருப்பப்படி செயல்பாட்டிற்கு பெயரிடலாம், எனவே நான் அதை ஸ்பீட்_ஸ்ர் () என்று பெயரிட்டேன் . இந்த நிரல் இரண்டு குறுக்கீடுகளைக் கையாளுகிறது, ஒன்று டைமர் குறுக்கீடு மற்றும் மற்றொன்று வெளிப்புற குறுக்கீடு. ஒரு டைமர் குறுக்கீடு ஏற்படும் போதெல்லாம் TMR0IF கொடி உயரத்திற்குச் செல்கிறது, குறுக்கீட்டை அழிக்கவும் மீட்டமைக்கவும் கீழேயுள்ள குறியீட்டில் காட்டப்பட்டுள்ளபடி TMR0IF = 0 ஐ வரையறுப்பதன் மூலம் அதைக் குறைக்க வேண்டும்.
void interrupt speed_isr () {if (TMR0IF == 1) // டைமர் நிரம்பி வழிகிறது {TMR0IF = 0; // தெளிவான டைமர் குறுக்கீடு கொடி மில்லி_செக் ++; } if (INTF == 1) {rpm = (1000 / mli_sec) * 60; வேகம் = 0.3 * ஆர்.பி.எம் * 0.37699; // (சக்கர ஆரம் 30cm என்று கருதி) INTF = 0; // குறுக்கீடு கொடியை அழிக்கவும் மில்லி_செக் = 0; தூரம் = தூரம் + 028.2; }}
இதேபோல் வெளிப்புற குறுக்கீடு ஏற்படும் போது கொடி ஐ.என்.டி.எஃப் உயரமாக செல்லும், இதுவும் ஐ.என்.டி.எஃப் = 0 ஐ வரையறுப்பதன் மூலம் அழிக்கப்பட வேண்டும். எடுக்கப்பட்ட நேரம் டைமர் குறுக்கீட்டால் கண்காணிக்கப்படுகிறது மற்றும் சக்கரம் ஒரு முழு சுழற்சியை முடிக்கும்போது வெளிப்புற குறுக்கீடு தீர்மானிக்கிறது. இந்த தரவு மூலம் ஒவ்வொரு வெளிப்புற குறுக்கீட்டின் போதும் சக்கரத்தால் மூடப்பட்ட வேகம் மற்றும் தூரம் கணக்கிடப்படுகிறது.
வேகம் மற்றும் தூரம் கணக்கிடப்பட்டதும் அவை எங்கள் எல்சிடி செயல்பாடுகளைப் பயன்படுத்தி எல்சிடி திரையில் காட்டப்படும். நீங்கள் எல்சிடிகளுக்கு புதியவர் என்றால், எங்கள் இடைமுக எல்சிடியை PIC16F877A MCU டுடோரியலுடன் பார்க்கவும்.
வேலை விளக்கம்:
நீங்கள் வன்பொருள் மற்றும் மென்பொருளை தயார் செய்த பிறகு, உங்கள் PIC16F877A இல் குறியீட்டைப் பதிவேற்றவும். நீங்கள் PIC க்கு முற்றிலும் புதியவர் என்றால், PIC16F877A மைக்ரோகண்ட்ரோலரில் நிரலை எவ்வாறு பதிவேற்றுவது என்பதை அறிந்து சில பயிற்சிகளைப் படிக்க வேண்டும்.
ஆர்ப்பாட்ட நோக்கத்திற்காக மோட்டரின் வேகத்தை சரிசெய்ய நான் மாறி POT ஐப் பயன்படுத்தினேன். நிகழ்நேர பயன்பாட்டைக் கண்டுபிடிப்பதைப் பயன்படுத்தலாம். எல்லாம் எதிர்பார்த்தபடி செயல்பட்டால், கீழேயுள்ள வீடியோவில் காட்டப்பட்டுள்ளபடி, கி.மீ / மணிநேரத்தில் வேகத்தையும் மீட்டரின் அடிப்படையில் தூரத்தையும் பெற முடியும்.

நீங்கள் திட்டத்தை ரசித்தீர்கள், அது வேலைசெய்தது என்று நம்புகிறேன். இல்லையென்றால் உங்கள் சந்தேகத்தை இடுகையிட கீழேயுள்ள கருத்துப் பகுதியையோ அல்லது மன்றத்தையோ பயன்படுத்தலாம்.
