- RS-485 சீரியல் கம்யூனிகேஷன்
- கூறுகள் தேவை
- சுற்று வரைபடம்
- RS485 சீரியல் கம்யூனிகேஷனுக்கான STM32F103C8 & Arduino UNO ஐ நிரல் செய்தல்
- STM32F103C8 மற்றும் Arduino UNO க்கு இடையிலான RS485 தகவல்தொடர்பு சோதனை:
தகவல்தொடர்பு நெறிமுறைகள் டிஜிட்டல் எலக்ட்ரானிக்ஸ் மற்றும் உட்பொதிக்கப்பட்ட அமைப்பின் ஒருங்கிணைந்த பகுதியாகும். பல மைக்ரோகண்ட்ரோலர் மற்றும் சாதனங்களின் இடைமுகம் எங்கிருந்தாலும், தரவுகளை பரிமாறிக்கொள்ள தகவல்தொடர்பு நெறிமுறை பயன்படுத்தப்பட வேண்டும். பல வகையான தொடர் தொடர்பு நெறிமுறை உள்ளது. RS485 என்பது தொடர் தொடர்பு நெறிமுறைகளில் ஒன்றாகும், இது தொழில்துறை திட்டங்கள் மற்றும் கனரக இயந்திரங்களில் பயன்படுத்தப்படுகிறது.
முந்தைய டுடோரியலில் Arduino Uno க்கும் Arduino Nano க்கும் இடையிலான RS485 சீரியல் கம்யூனிகேஷன் பற்றி அறிந்து கொண்டோம் . இந்த பயிற்சி STM32F103C8 மைக்ரோகண்ட்ரோலரில் RS-485 சீரியல் தகவல்தொடர்புகளைப் பயன்படுத்துவது பற்றியது. நீங்கள் STM32 மைக்ரோகண்ட்ரோலருக்கு புதியவர் என்றால், Arduino IDE: ஒளிரும் எல்.ஈ.யைப் பயன்படுத்தி STM32 உடன் தொடங்குவதைத் தொடங்கவும், இங்கே அனைத்து STM32 திட்டங்களையும் சரிபார்க்கவும்.
இந்த டுடோரியலில் மாஸ்டர் STM32F103C8 ஆனது மூன்று புஷ் பொத்தான்களைக் கொண்டுள்ளது, அவை RS-485 சீரியல் தகவல்தொடர்புகளைப் பயன்படுத்தி ஸ்லேவ் அர்டுயினோ யூனோவில் இருக்கும் மூன்று எல்.ஈ.டிகளின் நிலையைக் கட்டுப்படுத்தப் பயன்படுகின்றன.
RS-485 சீரியல் தகவல்தொடர்புகளின் செயல்பாட்டைப் புரிந்துகொள்வதன் மூலம் ஆரம்பிக்கலாம்.
RS-485 சீரியல் கம்யூனிகேஷன்
RS-485 என்பது ஒத்திசைவற்ற தொடர் தொடர்பு நெறிமுறை, இது கடிகாரம் தேவையில்லை. பைனரி தரவை ஒரு சாதனத்திலிருந்து மற்றொரு சாதனத்திற்கு மாற்ற இது வேறுபட்ட சமிக்ஞை எனப்படும் நுட்பத்தைப் பயன்படுத்துகிறது.
எனவே இந்த வேறுபட்ட சமிக்ஞை பரிமாற்ற முறை என்ன ??
நேர்மறை மற்றும் எதிர்மறை 5 வி ஐப் பயன்படுத்தி வேறுபட்ட மின்னழுத்தத்தை உருவாக்குவதன் மூலம் வேறுபட்ட சமிக்ஞை முறை செயல்படுகிறது. இரண்டு கம்பிகளைப் பயன்படுத்தும் போது இது ஒரு அரை-இரட்டை தகவல்தொடர்பு மற்றும் நான்கு கம்பிகளைப் பயன்படுத்தும் போது முழு-இரட்டை தொடர்பு ஆகியவற்றை வழங்குகிறது.
இந்த முறையைப் பயன்படுத்துவதன் மூலம்:
- RS-485 அதிகபட்ச தரவு பரிமாற்ற வீதத்தை 30Mbps அதிகபட்சமாக ஆதரிக்கிறது.
- இது RS-232 நெறிமுறையுடன் ஒப்பிடும்போது அதிகபட்ச தரவு பரிமாற்ற தூரத்தையும் வழங்குகிறது. இது அதிகபட்சமாக 1200 மீட்டர் வரை தரவை மாற்றுகிறது.
- RS-232 ஐ விட RS-485 இன் முக்கிய நன்மை ஒற்றை மாஸ்டருடன் பல அடிமை, RS-232 ஒற்றை அடிமையை மட்டுமே ஆதரிக்கிறது.
- RS-485 நெறிமுறையுடன் இணைக்கப்பட்ட அதிகபட்சம் 32 சாதனங்களைக் கொண்டிருக்கலாம்.
- RS-485 இன் மற்றொரு நன்மை, அவை பரிமாற்றத்திற்கு வேறுபட்ட சமிக்ஞை முறையைப் பயன்படுத்துவதால் சத்தத்திற்கு நோய் எதிர்ப்பு சக்தி.
- I2C நெறிமுறையுடன் ஒப்பிடும்போது RS-485 வேகமாக உள்ளது.
RS-485 தொகுதி சீரியல் போர்ட்டைக் கொண்ட எந்த மைக்ரோகண்ட்ரோலருடன் இணைக்கப்படலாம். மைக்ரோகண்ட்ரோலர்களுடன் RS-485 தொகுதியைப் பயன்படுத்துவதற்கு 5V MAX485 TTL முதல் RS485 வரை ஒரு தொகுதி தேவைப்படுகிறது, இது மாக்சிம் MAX485 IC ஐ அடிப்படையாகக் கொண்டது, ஏனெனில் இது 1200 மீட்டர் நீண்ட தூரத்திற்கு தொடர் தகவல்தொடர்புகளை அனுமதிக்கிறது, மேலும் இது இருதரப்பு மற்றும் அரை இரட்டை தரவு பரிமாற்ற வீதத்தை 2.5 கொண்டுள்ளது எம்.பி.பி.எஸ். இந்த தொகுதிக்கு 5 வி மின்னழுத்தம் தேவைப்படுகிறது.
RS-485 முள் விளக்கம்:

|
முள் பெயர் |
விளக்கம் |
|
வி.சி.சி. |
5 வி |
|
அ |
தலைகீழ் பெறுதல் உள்ளீடு தலைகீழ் இயக்கி வெளியீடு |
|
பி |
பெறுதல் உள்ளீட்டைத் தலைகீழாக மாற்றுகிறது தலைகீழ் இயக்கி வெளியீடு |
|
ஜி.என்.டி. |
GND (0V) |
|
ஆர் 0 |
ரிசீவர் அவுட் (ஆர்எக்ஸ் முள்) |
|
RE |
ரிசீவர் வெளியீடு (குறைந்த-இயக்கு) |
|
DE |
இயக்கி வெளியீடு (உயர்-இயக்கு) |
|
DI |
இயக்கி உள்ளீடு (TX முள்) |
RS485 தொகுதி பின்வரும் அம்சங்களைக் கொண்டுள்ளது:
- இயக்க மின்னழுத்தம்: 5 வி
- போர்டில் MAX485 சிப்
- RS485 தகவல்தொடர்புக்கான குறைந்த மின் நுகர்வு
- ஸ்லீ-ரேட் வரையறுக்கப்பட்ட டிரான்ஸ்ஸீவர்
- 5.08 மிமீ சுருதி 2 பி முனையம்
- வசதியான RS-485 தொடர்பு வயரிங்
- சிப்பின் அனைத்து ஊசிகளையும் மைக்ரோகண்ட்ரோலர் மூலம் கட்டுப்படுத்தலாம்
- போர்டு அளவு: 44 x 14 மிமீ
இந்த தொகுதியை STM32F103C8 மற்றும் Arduino UNO உடன் பயன்படுத்துவது மிகவும் எளிதானது. மைக்ரோகண்ட்ரோலர்களின் வன்பொருள் தொடர் துறைமுகங்கள் பயன்படுத்தப்படுகின்றன. STM32 மற்றும் arduino UNO இல் உள்ள வன்பொருள் சீரியல் ஊசிகளும் கீழே கொடுக்கப்பட்டுள்ளன.
- STM32F103C8 இல்: பின்ஸ் PA9 (TX) & PA10 (RX)
- Arduino Uno இல்: பின் 0 (RX) & 1 (TX)
புரோகிராமிங் வெறும் பயன்படுத்த மேலும் எளிது Serial.print () ஆர்எஸ்-485 மற்றும் எழுத Serial.Read () ஆர்எஸ்-485 மற்றும் ஊசிகளையும் படிக்க DE & RE என்ற புரட்சிகர-485 செய்யப்படுகிறது தரவைப் பெற LOW ஐ மற்றும் செய்யப்பட்ட உயர் RS-485 பஸ்ஸில் தரவை எழுதவும்.
கூறுகள் தேவை
- STM32F103C8
- Arduino UNO
- MAX485 TTL முதல் RS485 மாற்றி தொகுதி - (2)
- 10 கே பொட்டென்டோமீட்டர்
- புஷ் பொத்தான் - 3
- எல்.ஈ.டி - 3
- மின்தடையங்கள்
- ப்ரெட்போர்டு
- கம்பிகளை இணைக்கிறது
சுற்று வரைபடம்

இந்த டுடோரியலில் STM32F103C8 ஒரு RS-485 தொகுதிடன் மாஸ்டராகவும், Arduino UNO மற்றொரு RS-485 தொகுதிடன் அடிமையாகவும் பயன்படுத்தப்படுகிறது.
RS-485 மற்றும் STM32F103C8 (மாஸ்டர்) இடையே சுற்று இணைப்பு:
|
ஆர்.எஸ் -485 |
STM32F103C8 |
|
DI |
PA9 (TX1) |
|
DE RE |
PA3 |
|
ஆர் 0 |
PA10 (RX1) |
|
வி.சி.சி. |
5 வி |
|
ஜி.என்.டி. |
ஜி.என்.டி. |
|
அ |
அடிமை RS-485 இன் A க்கு |
|
பி |
அடிமை RS-485 இன் B க்கு |
மூன்று புஷ் பொத்தானுடன் STM32F103C8:
10K இன் மூன்று புல் டவுன் மின்தடையுடன் மூன்று புஷ் பொத்தான்கள் STM32F103C8 இன் PA0, PA1, PA2 உடன் இணைக்கப்பட்டுள்ளன.
RS-485 மற்றும் Arduino UNO (அடிமை) இடையே சுற்று இணைப்பு:
|
ஆர்.எஸ் -485 |
Arduino UNO |
|
DI |
1 (TX) |
|
DE RE |
2 |
|
ஆர் 0 |
0 (RX) |
|
வி.சி.சி. |
5 வி |
|
ஜி.என்.டி. |
ஜி.என்.டி. |
|
அ |
மாஸ்டர் RS-485 இன் A க்கு |
|
பி |
மாஸ்டர் RS-485 இன் B க்கு |
மூன்று எல்.ஈ.டிக்கள் பயன்படுத்தப்படுகின்றன, அங்கு 330 ஓம்களின் மின்தடையுடன் எல்.ஈ.டிகளின் அனோட்கள் அர்டுயினோ யு.என்.ஓவின் 4, 7, 8 ஊசிகளுடன் இணைக்கப்பட்டுள்ளன மற்றும் எல்.ஈ.டிகளின் கத்தோட் ஜி.என்.டி.
RS485 சீரியல் கம்யூனிகேஷனுக்கான STM32F103C8 & Arduino UNO ஐ நிரல் செய்தல்
ஆர்டுயினோ ஐடிஇ இரண்டு வாரியங்களின் வளர்ச்சி மற்றும் நிரலாக்கத்திற்காக பயன்படுத்தப்படுகிறது, அதாவது எஸ்.டி.எம் 32 மற்றும் அர்டுடினோ யு.என்.ஓ. கருவிகள்-> துறைமுகம் மற்றும் கருவிகள்-> வாரியத்திலிருந்து தொடர்புடைய PORT ஐ நீங்கள் தேர்ந்தெடுத்துள்ளீர்கள் என்பதை உறுதிப்படுத்திக் கொள்ளுங்கள். உங்களுக்கு ஏதேனும் சிரமங்கள் அல்லது சந்தேகம் இருந்தால், உங்கள் STM32 ஐ ARDUINO IDE இல் புரோகிராமிங் செய்யுங்கள். இந்த டுடோரியலுக்கான நிரலாக்கமானது STM32F103C8 (மாஸ்டர்) க்கான இரண்டு பிரிவு ஒன்று மற்றும் Arduino UNO (Slave) க்கான மற்றொன்று ஆகியவற்றைக் கொண்டுள்ளது. இரண்டு குறியீடுகளும் கீழே ஒவ்வொன்றாக விளக்கப்படும்.
STM32F103C8 மாஸ்டராகமாஸ்டர் பக்கத்தில், புஷ் பட்டனின் நிலை படிக்கப்பட்டு பின்னர் அந்த மதிப்புகளை எஸ்.டி.எம் 32 எஃப் 103 சி 8 இன் வன்பொருள் சீரியல் போர்ட்ஸ் 1 (பிஏ 9, பிஏ 10) மூலம் ஆர்எஸ் -485 பஸ்ஸில் தொடர்ச்சியாக எழுதப்படுகிறது. இப்போது வரை வெளிப்புற நூலகம் தேவையில்லை. ஆர்டுயினோ தொடர் தொடர்புக்கு தேவையான அனைத்து நூலகங்களையும் கொண்டுள்ளது.
9600 என்ற பட்ரேட்டில் வன்பொருள் சீரியல் பின்ஸ் (PA9, PA10) ஐப் பயன்படுத்தி தொடர் தகவல்தொடர்புகளைத் தொடங்குங்கள்.
சீரியல் 1.பெஜின் (9600);
STM32F103C8 இன் PA0, PA1, PA2 இல் உள்ள புஷ் பொத்தானின் நிலையைப் படித்து அவற்றை மாறி பொத்தான் 1val, button2val, button3val இல் சேமிக்கவும். பொத்தானை அழுத்தினால் மதிப்பு HIGH மற்றும் அழுத்தும் போது குறைவாக இருக்கும்.
int button1val = DigitalRead (button1); int button2val = DigitalRead (button2); int button3val = DigitalRead (button3);
சீரியல் போர்ட்டுக்கு பொத்தானை மதிப்புகளை அனுப்புவதற்கு முன், RS-485 இன் DE & RE ஊசிகளானது STM32F103C8 இன் முள் PA3 உடன் இணைக்கப்பட்டிருக்கும் HIGH ஆக இருக்க வேண்டும் (பின் PA3 HIGH செய்ய):
டிஜிட்டல்ரைட் (enablePin, HIGH);
அடுத்து அந்த மதிப்புகளை சீரியல் போர்ட்டில் வைத்து, எந்த புஷ் பொத்தானை அழுத்துகிறீர்கள் என்பதைப் பொறுத்து மதிப்புகளை அனுப்பவும், வேறு அறிக்கையாக இருந்தால் பயன்படுத்தவும் மற்றும் பொத்தானை அழுத்தும்போது தொடர்புடைய மதிப்பை அனுப்பவும்.
முதல் பொத்தானை அழுத்தினால், நிபந்தனை பொருந்துகிறது மற்றும் '1' மதிப்பு Arduino UNO இணைக்கப்பட்டுள்ள தொடர் துறைமுகத்திற்கு அனுப்பப்படும்.
if (button1val == HIGH) { int num1 = 1; சீரியல் 1. பிரிண்ட்ல்ன் (எண் 1); }
இதேபோல், பொத்தான் 2 அழுத்தும் போது மதிப்பு 2 சீரியல் போர்ட் வழியாகவும், பொத்தான் 3 அழுத்தும் போது மதிப்பு 3 சீரியல் போர்ட்டுக்கு அனுப்பப்படும்.
else if (button2val == HIGH) { int num2 = 2; சீரியல் 1. பிரிண்ட்ல்ன் (எண் 2); } else if (button3val == HIGH) { int num3 = 3; சீரியல் 1. பிரிண்ட்ல்ன் (எண் 3); }
எந்த பொத்தானையும் அழுத்தும்போது மதிப்பு 0 Arduino Uno க்கு அனுப்பப்படும்.
வேறு { int எண் = 0; சீரியல் 1. பிரிண்ட்ல்ன் (எண்); }
இது STM32 ஐ மாஸ்டராக உள்ளமைக்க நிரலாக்கத்தை முடிக்கிறது.
அடிமையாக Arduino UNOஅடிமை பக்கத்தில், Arduino UNO ஒரு முழு எண் மதிப்பைப் பெறுகிறது, இது முதன்மை STM32F103C8 இலிருந்து அனுப்பப்படுகிறது, இது RS-485 தொகுதி இணைக்கப்பட்டுள்ள Arduino UNO (P0, 1) இன் வன்பொருள் சீரியல் துறைமுகத்தில் கிடைக்கிறது.
மதிப்பைப் படித்து மாறியில் சேமிக்கவும். பெறப்பட்ட மதிப்பைப் பொறுத்து தொடர்புடைய எல்.ஈ.டி இயக்கப்பட்டது அல்லது முடக்கப்பட்டுள்ளது அர்டுயினோ ஜி.பீ.ஓ.
மாஸ்டரிடமிருந்து மதிப்புகளைப் பெற RS-485 தொகுதியின் DE & RE ஐ ஊசலாடுங்கள். எனவே Arduino UNO இன் பின் -2 (enablePin) குறைவாக செய்யப்படுகிறது.
டிஜிட்டல்ரைட் (enablePin, LOW);
இப்போது சீரியல் போர்ட்டில் கிடைக்கும் முழு எண் தரவைப் படித்து அவற்றை ஒரு மாறியில் சேமிக்கவும்.
int பெறு = Serial.parseInt ();
பெறப்பட்ட மதிப்பைப் பொறுத்து (0, 1, 2, 3), அதற்கேற்ப மூன்று எல்.ஈ.டி ஒன்று இயக்கப்பட்டது.
if (பெற == 1) // பெறப்பட்ட மதிப்பைப் பொறுத்து தொடர்புடைய எல்.ஈ.டி இயக்கப்பட்டது அல்லது முடக்கப்பட்டுள்ளது { டிஜிட்டல்ரைட் (ledpin1, HIGH); } else if (பெற == 2) { DigitalWrite (ledpin2, HIGH); } else if (பெற == 3) { DigitalWrite (ledpin3, HIGH); } else { டிஜிட்டல்ரைட் (ledpin1, LOW); டிஜிட்டல்ரைட் (ledpin2, LOW); டிஜிட்டல்ரைட் (ledpin3, LOW); }
இது நிரலாக்கத்தை முடிக்கிறது மற்றும் Arduino UNO ஐ அடிமையாக உள்ளமைக்கிறது. இது Arduino UNO மற்றும் STM32 க்கான முழுமையான உள்ளமைவுகளை முடிக்கிறது. இந்த டுடோரியலின் முடிவில் வேலை செய்யும் வீடியோ மற்றும் அனைத்து குறியீடுகளும் இணைக்கப்பட்டுள்ளன.
STM32F103C8 மற்றும் Arduino UNO க்கு இடையிலான RS485 தகவல்தொடர்பு சோதனை:
1. மாஸ்டர் எஸ்.டி.எம் 32 உடன் இணைக்கப்பட்டுள்ள புஷ் பொத்தான் -1 அழுத்தும் போது, எல்.ஈ.டி 1 டர்ன்ஸ் ஆன் ஸ்லேவ் அர்டுயினோவுடன் இணைக்கப்பட்டுள்ளது.

2. மாஸ்டர் எஸ்.டி.எம் 32 உடன் இணைக்கப்பட்ட புஷ் பொத்தான் -2 அழுத்தும் போது, எல்.ஈ.டி 2 டர்ன்ஸ் ஆன் அடிமை அர்டுயினோவுடன் இணைக்கப்பட்டுள்ளது.

3. இதேபோல் புஷ் பொத்தான் -3 அழுத்தும் போது எல்.ஈ.டி 3 ஸ்லேவ் அர்டுயினோவுடன் இணைக்கப்பட்டுள்ளது.

இது STM32F103C8 மற்றும் Arduino UNO க்கு இடையிலான RS485 தொடர் தகவல்தொடர்புகளை முடிக்கிறது. Arduino UNO மற்றும் STM32 போர்டுகள் விரைவான முன்மாதிரிக்கு பரவலாகப் பயன்படுத்தப்படும் பலகைகள் மற்றும் இந்த பலகைகளில் பல பயனுள்ள திட்டங்களை நாங்கள் செய்துள்ளோம். உங்களுக்கு ஏதேனும் சந்தேகம் இருந்தால் அல்லது எங்களுக்கு ஏதேனும் ஆலோசனை இருந்தால் கீழே எழுதவும் கருத்து தெரிவிக்கவும்.
