- தேவையான பொருட்கள்
- சுற்று வரைபடம் மற்றும் இணைப்பு
- Arduino ஐப் பயன்படுத்தி LCD க்காக STM32 புரோகிராமிங்
- நிரலை STM32F103C8T6 இல் பதிவேற்றுகிறது
எந்தவொரு மைக்ரோகண்ட்ரோலர் திட்டத்திற்கும், ஒரு காட்சி அலகுடன் இடைமுகப்படுத்துவது திட்டத்தை மிகவும் எளிதாக்குகிறது மற்றும் பயனருடன் தொடர்புகொள்வதற்கு ஈர்க்கும். மைக்ரோகண்ட்ரோலர்களுக்கான மிகவும் பொதுவாக பயன்படுத்தப்படும் காட்சி அலகு 16 × 2 ஆல்பா எண் காட்சிகள். இந்த வகையான காட்சிகள் பயனருக்கு முக்கிய தகவல்களைக் காண்பிப்பதற்கு பயனுள்ளதாக இருக்கும், ஆனால் திட்டத்தின் ஆரம்ப வளர்ச்சி கட்டத்தில் பிழைத்திருத்த கருவியாகவும் செயல்படலாம். எனவே, இந்த டுடோரியலில், 16 × 2 எல்சிடி டிஸ்ப்ளேவை STM32F103C8T6 STM32 மேம்பாட்டு வாரியத்துடன் எவ்வாறு இடைமுகப்படுத்தலாம் மற்றும் Arduino IDE ஐப் பயன்படுத்தி அதை நிரல் செய்யலாம். Arduino உடன் பழக்கமானவர்களுக்கு இந்த பயிற்சி ஒரு கேக் நடைதான், ஏனெனில் அவர்கள் இருவரும் மிகவும் ஒத்தவர்கள். எஸ்.டி.எம் 32 ப்ளூ மாத்திரை வாரியம் பற்றி மேலும் அறிய எங்கள் தொடங்கும் பயிற்சியைப் பின்பற்றவும்.
தேவையான பொருட்கள்
- எஸ்.டி.எம் 32 ப்ளூ மாத்திரை மேம்பாட்டு வாரியம்
- 16 × 2 எல்சிடி காட்சி
- FTDI புரோகிராமர்
- கம்பிகளை இணைக்கிறது
- எல்.சி.டி.
சுருக்கமான அறிமுகம் 16 × 2 டாட் மேட்ரிக்ஸ் எல்சிடி டிஸ்ப்ளே
முன்பு கூறியது போல் எனர்ஜியா ஐடிஇ ஒரு அழகான நூலகத்தை வழங்குகிறது, இது ஒரு கேக் துண்டுகளை இடைமுகமாக்குகிறது, எனவே காட்சி தொகுதி பற்றி எதுவும் தெரிந்து கொள்வது கட்டாயமில்லை. ஆனால், நாம் எதைப் பயன்படுத்துகிறோம் என்பதைக் காண்பிப்பது சுவாரஸ்யமாக இருக்காது !!
16 × 2 என்ற பெயர் காட்சிக்கு 16 நெடுவரிசைகள் மற்றும் 2 வரிசைகள் இருப்பதைக் குறிக்கிறது, அவை ஒன்றாக (16 * 2) 32 பெட்டிகளை உருவாக்குகின்றன. கீழே உள்ள படத்தில் ஒரு ஒற்றை பெட்டி இதுபோன்றதாக இருக்கும்

ஒரு பெட்டியில் 5 வரிசைகள் மற்றும் 8 நெடுவரிசைகளின் மேட்ரிக்ஸ் வரிசையுடன் 40 பிக்சல்கள் (புள்ளிகள்) உள்ளன, இந்த 40 பிக்சல்கள் ஒன்றாக ஒரு எழுத்தை உருவாக்குகின்றன. இதேபோல், அனைத்து பெட்டிகளையும் பயன்படுத்தி 32 எழுத்துக்கள் காட்டப்படும். இப்போது பின்அவுட்களைப் பார்ப்போம்.

எல்சிடி மொத்தம் 16 பின்ஸைக் கொண்டுள்ளது, மேலே காட்டப்பட்டுள்ளபடி, அவற்றை பின்வருமாறு நான்கு குழுக்களாக வகைப்படுத்தலாம்
மூல ஊசிகளும் (1, 2 மற்றும் 3): இந்த ஊசிகளும் காட்சிக்கான சக்தி மற்றும் மாறுபட்ட நிலைக்கு ஆதாரமாகின்றன
கண்ட்ரோல் பின்ஸ் (4, 5 மற்றும் 6): இந்த ஊசிகள் எல்சிடி இன்டர்ஃபேசிங் ஐசியில் பதிவேடுகளை அமைக்கின்றன / கட்டுப்படுத்துகின்றன (மேலும் இதை கீழே உள்ள இணைப்பில் காணலாம்)
தரவு / கட்டளை ஊசிகள் (7 முதல் 14 வரை): இந்த ஊசிகள் எல்சிடியில் என்ன தகவல் காட்டப்பட வேண்டும் என்பதற்கான தரவை வழங்குகிறது.
எல்.ஈ.டி ஊசிகளும் (15 மற்றும் 16): தேவைப்பட்டால் எல்.சி.டி.யின் பின்னொளியை ஒளிரச் செய்ய இந்த ஊசிகளும் பயன்படுத்தப்படுகின்றன (விரும்பினால்).
இந்த 16 ஊசிகளில், இந்த 16x2 எல்சிடி கட்டுரைக்கு இந்த எல்சிடி டிஸ்ப்ளே ஜம்ப் பற்றி மேலும் தெரிந்து கொள்ள விரும்பினால், எல்சிடியின் சரியான வேலைக்கு 10 ஊசிகளை மட்டுமே கட்டாயமாக பயன்படுத்த வேண்டும்.
சுற்று வரைபடம் மற்றும் இணைப்பு
STM32F103C8T6 STM32 ப்ளூ பில் போர்டுடன் 16 * 2 டாட் மேட்ரிக்ஸ் எல்சிடி இடைமுகத்திற்கான சுற்று வரைபடம் கீழே காட்டப்பட்டுள்ளது. இது ஃப்ரிட்ஸிங் மென்பொருளைப் பயன்படுத்தி தயாரிக்கப்படுகிறது.

நீங்கள் பார்க்க முடியும் என முழுமையான இணைப்பு ஒரு பிரெட் போர்டு வழியாக செய்யப்படுகிறது. STM32 மைக்ரோகண்ட்ரோலரை நிரல் செய்ய எங்களுக்கு ஒரு FTDI போர்டு தேவை. எங்கள் முந்தைய டுடோரியலைப் போலவே, எஃப்டிடிஐ போர்டை எஸ்.டி.எம் 32 க்கு கம்பி செய்துள்ளோம், எஃப்.டி.டி.ஐ புரோகிராமரின் வி.சி.சி மற்றும் கிரவுண்ட் முள் முறையே எஸ்.டி.எம் 32 இன் 5 வி முள் மற்றும் தரை முள் உடன் இணைக்கப்பட்டுள்ளது. இது STM32 போர்டு மற்றும் எல்சிடிக்கு சக்தி அளிக்கப் பயன்படுகிறது, ஏனெனில் இருவரும் ஏற்றுக்கொள்ள முடியும் + 5 வி. FTDI போர்டின் Rx மற்றும் Tx முள் STM32 இன் A9 மற்றும் A10 முள் ஆகியவற்றுடன் இணைக்கப்பட்டுள்ளது, இதனால் துவக்க ஏற்றி இல்லாமல் நேரடியாக போர்டை நிரல் செய்யலாம்.
அடுத்து எல்சிடி எஸ்.டி.எம் 32 போர்டுடன் இணைக்கப்பட வேண்டும். நாங்கள் எல்சிடியை 4-பிட் பயன்முறையில் பயன்படுத்தப் போகிறோம், எனவே STM32F103C8T6 எல்சிடி இன்டர்ஃபேசிங் சர்க்யூட்டில் காட்டப்பட்டுள்ளபடி 4 டேட்டா பிட் பின்ஸையும் (டிபி 4 முதல் டிபி 7 வரை) மற்றும் இரண்டு கண்ட்ரோல் பின் (ஆர்எஸ் மற்றும் ஈஎன்) ஐ எஸ்.டி.எம் 32 போர்டுடன் இணைக்க வேண்டும். மேலே உள்ள வரைபடம். மேலும் கீழேயுள்ள அட்டவணை இணைப்பை உருவாக்க உங்களுக்கு உதவும்.
|
எல்சிடி முள் எண். |
எல்சிடி முள் பெயர் |
STM32 முள் பெயர் |
|
1 |
மைதானம் (Gnd) |
மைதானம் (ஜி) |
|
2 |
வி.சி.சி. |
5 வி |
|
3 |
VEE |
மைதானம் (ஜி) |
|
4 |
பதிவு தேர்வு (ஆர்எஸ்) |
பிபி 11 |
|
5 |
படிக்க / எழுது (RW) |
மைதானம் (ஜி) |
|
6 |
இயக்கு (EN) |
பிபி 10 |
|
7 |
தரவு பிட் 0 (DB0) |
இணைப்பு இல்லை (NC) |
|
8 |
தரவு பிட் 1 (டிபி 1) |
இணைப்பு இல்லை (NC) |
|
9 |
தரவு பிட் 2 (டிபி 2) |
இணைப்பு இல்லை (NC) |
|
10 |
டேட்டா பிட் 3 (டிபி 3) |
இணைப்பு இல்லை (NC) |
|
11 |
டேட்டா பிட் 4 (டிபி 4) |
பிபி 0 |
|
12 |
தரவு பிட் 5 (டிபி 5) |
பிபி 1 |
|
13 |
டேட்டா பிட் 6 (டிபி 6) |
பிசி 13 |
|
14 |
தரவு பிட் 7 (டிபி 7) |
பிசி 14 |
|
15 |
எல்.ஈ.டி நேர்மறை |
5 வி |
|
16 |
எல்.ஈ.டி எதிர்மறை |
மைதானம் (ஜி) |
இணைப்புகள் முடிந்ததும், Arduino IDE ஐத் திறந்து அதை நிரலாக்கத் தொடங்கலாம்.
Arduino ஐப் பயன்படுத்தி LCD க்காக STM32 புரோகிராமிங்
இந்த டுடோரியலில் கூறப்பட்டுள்ளபடி, எங்கள் STM32 மைக்ரோகண்ட்ரோலரை நிரல் செய்ய Arduino IDE ஐப் பயன்படுத்துவோம். ஆனால், முன்னிருப்பாக Arduino IDE ஆனது STM32 போர்டை நிறுவாது, எனவே நாம் ஒரு தொகுப்பை பதிவிறக்கம் செய்து அதற்கான Arduino IDE ஐ தயார் செய்ய வேண்டும். Arduino IDE ஐப் பயன்படுத்தி STM32F103C8T6 உடன் தொடங்குவதற்கு எங்கள் முந்தைய டுடோரியலில் இதைத்தான் செய்தோம். எனவே நீங்கள் நிறுவவில்லை என்றால் தேவையான தொகுப்புகள் இந்த டுடோரியலுக்கு திரும்பி வந்து இங்கே தொடர்வதற்கு முன்பு அதைப் பின்தொடரவும்.
ஆர்டுயினோ ஐடிஇயில் எஸ்.டி.எம் 32 போர்டு நிறுவப்பட்டதும், நாங்கள் நிரலாக்கத்தைத் தொடங்கலாம். இந்த நிரல் ஒரு ஆர்டுயினோ போர்டுடன் மிகவும் ஒத்திருக்கிறது, STM32 மற்றும் Arduino க்கான குறிப்புகள் வேறுபட்டிருப்பதால் முள் பெயர்கள் மட்டுமே மாறும். முழுமையான நிரல் இந்த பக்கத்தின் முடிவில் கொடுக்கப்பட்டுள்ளது, ஆனால் நிரலை விளக்க நான் கீழே காட்டப்பட்டுள்ளபடி சிறிய அர்த்தமுள்ள துணுக்குகளாக பிரித்துள்ளேன்.
எங்கள் மைக்ரோகண்ட்ரோலர்களை நிரலாக்க Arduino ஐப் பயன்படுத்துவதன் ஒரு குறிப்பிடத்தக்க நன்மை என்னவென்றால், Arduino கிட்டத்தட்ட ஒவ்வொரு பிரபலமான சென்சார்கள் மற்றும் ஆக்சுவேட்டர்களுக்கும் ரெடிமேட் நூலகங்களைக் கொண்டுள்ளது. எனவே இங்கே எல்சிடி நூலகத்தை சேர்ப்பதன் மூலம் எங்கள் நிரலைத் தொடங்குகிறோம் , இது நிரலாக்கத்தை மிகவும் எளிதாக்குகிறது.
#சேர்க்கிறது
அடுத்த வரியில் எல்.சி.டி டிஸ்ப்ளே கண்ட்ரோல் மற்றும் டேட்டா கோடுகளை இணைத்துள்ள எஸ்.டி.எம் 32 இன் எந்த ஜி.பி.ஐ.ஓ ஊசிகளையும் குறிப்பிட வேண்டும். இதைச் செய்ய நாங்கள் எங்கள் வன்பொருளைச் சரிபார்க்க வேண்டும், எளிதாக நீங்கள் மேலே கொடுக்கப்பட்டுள்ள அட்டவணையையும் குறிப்பிடலாம், இது எல்.டி.டி.யின் முள் பெயர்களை எஸ்.டி.எம் 32 இன் ஜி.பி.ஐ.ஓ முள் மீது பட்டியலிடுகிறது. ஊசிகளைக் குறிப்பிட்ட பிறகு, எல்.சி.டி.யை லிக்விட் கிரிஸ்டல் செயல்பாட்டைப் பயன்படுத்தி தொடங்கலாம் . கீழே காட்டப்பட்டுள்ளபடி எங்கள் எல்சிடியை “ எல்சிடி ” என்றும் பெயரிடுகிறோம் .
const int rs = PB11, en = PB10, d4 = PB0, d5 = PB1, d6 = PC13, d7 = PC14; // எல்சிடி கொண்டு இணைக்கப்பட்ட முள் பெயர்கள் குறிப்பிட LiquidCrystal எல்சிடி (ரூ, இல், D4, D5, D6, D7); // எல்சிடியைத் தொடங்கவும்
அடுத்து அமைவு செயல்பாட்டிற்குள் நுழைகிறோம். இங்கே முதலில் நாம் எந்த வகையான எல்.சி.டி.யைப் பயன்படுத்துகிறோம் என்பதைக் குறிப்பிட்டுள்ளோம். இது 16 * 2 எல்சிடி என்பதால் நாம் lcd.begin (16,2) என்ற வரியைப் பயன்படுத்துகிறோம் . வெற்றிட அமைவு செயல்பாட்டின் உள்ளே உள்ள குறியீடு ஒரு முறை மட்டுமே செயல்படுத்தப்படும். எனவே ஒரு அறிமுக உரையை 2 வினாடிகள் திரையில் காண்பிக்க அதைப் பயன்படுத்துகிறோம், பின்னர் அழிக்கப்படும். உரை எங்களுக்கு சார்பு பயன்படுத்த தோன்றும் உள்ளது எந்த இடத்தைப் குறிப்பிட lcd.setcursor மற்றும் நாம் பயன்படுத்த உரை அச்சிட lcd.print செயல்பாடு. உதாரணமாக, lcd.setCursor (0,0) கர்சரை முதல் வரிசை மற்றும் முதல் நெடுவரிசையில் அமைக்கும், அங்கு “ இன்டர்ஃபேசிங் எல்சிடி ” மற்றும் lcd.setCursor (0,1) செயல்பாடு கர்சரை இரண்டாவது வரிசை முதல் நெடுவரிசைக்கு நகர்த்துகிறது, அங்கு “ சர்க்யூட் டிஜஸ்ட் ” என்ற வரியை அச்சிடுகிறோம்.
void setup () {lcd.begin (16, 2); // நாங்கள் 16 * 2 LCD lcd.setCursor (0, 0) ஐப் பயன்படுத்துகிறோம்; // முதல் வரிசையில் முதல் நெடுவரிசை lcd.print ("இடைமுக எல்சிடி"); // இந்த lcd.setCursor ஐ அச்சிடுங்கள் (0, 1); // செகண்ட் வரிசையில் முதல் நெடுவரிசை lcd.print ("- CircuitDigest"); // இந்த தாமதத்தை அச்சிடுக (2000); // இரண்டு செகண்டுகளுக்கு காத்திருங்கள் lcd.clear (); // திரையை அழிக்கவும்}
அறிமுக உரையை காண்பித்த பிறகு, தாமதத்தை உருவாக்குவதன் மூலம் நிரலை 2 விநாடிகள் வைத்திருக்கிறோம், இதனால் பயனர் அறிமுக செய்தியைப் படிக்க முடியும். இந்த தாமதம் வரி தாமதத்தால் (2000) உருவாக்கப்படுகிறது, அங்கு 2000 என்பது மில் வினாடிகளில் தாமத மதிப்பு. தாமதத்திற்குப் பிறகு எல்.சி.டி.யை எல்.சி.டி.கியர் () செயல்பாட்டைப் பயன்படுத்தி அழிக்கிறோம், இது எல்.சி.டி.யில் உள்ள அனைத்து உரையையும் அகற்றி எல்.சி.டி.
இறுதியாக உள்ளே வெற்றிடத்தை லூப், நாம் காட்ட முதல் கட்ட மற்றும் இரண்டாவது வரியில் விநாடிகள் மதிப்பு "STM32 -Blue பில்". இரண்டாவது மதிப்பு மில்லிஸ் () செயல்பாட்டிலிருந்து பெறலாம். Millis () நேரம் எம்.சி.யு. இயக்கப்படுகிறது இருந்து உயர்த்துவதன் வலது பெறுகிறார் இது ஒரு டைமர் ஆகும். மதிப்பு மில்லி விநாடிகளின் வடிவத்தில் உள்ளது, எனவே அதை எங்கள் எல்சிடியில் காண்பிக்கும் முன் அதை 1000 ஆல் வகுக்கிறோம்.
void loop () { lcd.setCursor (0, 0); // முதல் வரிசையில் முதல் நெடுவரிசை lcd.print ("STM32 -Blue Pill"); // இந்த lcd.setCursor ஐ அச்சிடுங்கள் (0, 1); // செகண்ட் வரிசையில் முதல் நெடுவரிசை lcd.print (மில்லிஸ் () / 1000); // பத்திரங்களின் மதிப்பை அச்சிடுக }
நிரலை STM32F103C8T6 இல் பதிவேற்றுகிறது
மேலே உள்ள பத்தியில் விவாதிக்கப்பட்டபடி, குறியீடு பதிவேற்றப்பட்டவுடன் வெளியீட்டை நீங்கள் கவனிக்க முடியும். போர்டு இன்னும் நிரலாக்க பயன்முறையில் இருப்பதால், அடுத்த முறை நீங்கள் பலகையை அதிகப்படுத்தும் போது இந்த நிரல் இயங்காது. எனவே நிரல் பதிவேற்றப்பட்டதும் துவக்க 0 இல் உள்ள குதிப்பவர் கீழே காட்டப்பட்டுள்ளபடி 0 நிலைகளுக்கு மாற்றப்பட வேண்டும். இப்போது நிரல் எஸ்.டி.எம் 32 போர்டில் பதிவேற்றம் செய்யப்பட்டுள்ளதால், எங்களுக்கு ஏற்கனவே எஃப்.டி.டி.ஐ போர்டு தேவையில்லை, மேலும் முழு அமைப்பையும் எஸ்.டி.எம் 32 போர்டின் மைக்ரோ-யூ.எஸ்.பி போர்ட்டால் இயக்க முடியும், மேலும் கீழே காட்டப்பட்டுள்ளது.

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