- RS-485 సీరియల్ కమ్యూనికేషన్ ప్రోటోకాల్
- ఆర్డునోలో RS-485
- భాగాలు అవసరం
- సర్క్యూట్ రేఖాచిత్రం
- RS485 సీరియల్ కమ్యూనికేషన్ కోసం ప్రోగ్రామింగ్ Arduino UNO & Arduino Nano
- సీరియల్ కమ్యూనికేషన్ RS485 తో LED ప్రకాశాన్ని నియంత్రించడం
మైక్రోకంట్రోలర్లు మరియు పరిధీయ పరికరాల మధ్య కమ్యూనికేషన్ కోసం కమ్యూనికేషన్ ప్రోటోకాల్ను ఎంచుకోవడం ఎంబెడెడ్ సిస్టమ్లో ఒక ముఖ్యమైన భాగం. ఇది చాలా ముఖ్యం ఎందుకంటే ఏదైనా ఎంబెడెడ్ అప్లికేషన్ యొక్క మొత్తం పనితీరు కమ్యూనికేషన్ మార్గాలపై ఆధారపడి ఉంటుంది, ఎందుకంటే ఇది ఖర్చు తగ్గింపు, వేగవంతమైన డేటా బదిలీ, సుదూర కవరేజ్ మొదలైన వాటికి సంబంధించినది.
మునుపటి ట్యుటోరియల్స్ లో ఆర్డునోలోని I2C కమ్యూనికేషన్ ప్రోటోకాల్ మరియు SPI కమ్యూనికేషన్ ప్రోటోకాల్స్ గురించి తెలుసుకున్నాము. ఇప్పుడు RS-485 అని పిలువబడే మరొక సీరియల్ కమ్యూనికేషన్ ప్రోటోకాల్ ఉంది.ఈ ప్రోటోకాల్ అసమకాలిక సీరియల్ కమ్యూనికేషన్ను ఉపయోగిస్తుంది. RS-485 యొక్క ప్రధాన ప్రయోజనం రెండు పరికరాల మధ్య సుదూర డేటా బదిలీ. మరియు అవి సాధారణంగా విద్యుత్ శబ్దం లేని పారిశ్రామిక వాతావరణంలో ఉపయోగించబడతాయి.
ఈ ట్యుటోరియల్లో, మేము రెండు ఆర్డునోల మధ్య RS-485 సీరియల్ కమ్యూనికేషన్ గురించి నేర్చుకుంటాము మరియు తరువాత RS-485 మాడ్యూల్ ద్వారా ADC విలువలను పంపడం ద్వారా మాస్టర్ ఆర్డునో నుండి స్లేవ్ ఆర్డునోకు కనెక్ట్ చేయబడిన LED యొక్క ప్రకాశాన్ని నియంత్రించడం ద్వారా దానిని ప్రదర్శిస్తాము. మాస్టర్ ఆర్డునో వద్ద ADC విలువలను మార్చడానికి 10k పొటెన్షియోమీటర్ ఉపయోగించబడుతుంది.
RS-485 సీరియల్ కమ్యూనికేషన్ యొక్క పనిని అర్థం చేసుకోవడం ద్వారా ప్రారంభిద్దాం.
RS-485 సీరియల్ కమ్యూనికేషన్ ప్రోటోకాల్
RS-485 అనేది అసమకాలిక సీరియల్ కమ్యూనికేషన్ ప్రోటోకాల్, దీనికి క్లాక్ పల్స్ అవసరం లేదు. ఇది బైనరీ డేటాను ఒక పరికరం నుండి మరొక పరికరానికి బదిలీ చేయడానికి అవకలన సిగ్నల్ అనే సాంకేతికతను ఉపయోగిస్తుంది.
కాబట్టి ఈ అవకలన సిగ్నల్ బదిలీ పద్ధతి ఏమిటి ??
సానుకూల మరియు ప్రతికూల 5V ని ఉపయోగించి అవకలన వోల్టేజ్ను సృష్టించడం ద్వారా డిఫరెన్షియల్ సిగ్నల్ పద్ధతి పనిచేస్తుంది. రెండు వైర్లను ఉపయోగిస్తున్నప్పుడు ఇది హాఫ్-డ్యూప్లెక్స్ కమ్యూనికేషన్ను అందిస్తుంది మరియు ఫుల్-డ్యూప్లెక్స్కు 4 ఫోర్లు వైర్లు అవసరం.
ఈ పద్ధతిని ఉపయోగించడం ద్వారా
- RS-485 గరిష్టంగా 30Mbps అధిక డేటా బదిలీ రేటుకు మద్దతు ఇస్తుంది.
- ఇది RS-232 ప్రోటోకాల్తో పోలిస్తే గరిష్ట డేటా బదిలీ దూరాన్ని కూడా అందిస్తుంది. ఇది గరిష్టంగా 1200 మీటర్ల వరకు డేటాను బదిలీ చేస్తుంది.
- RS-232 కంటే RS-485 యొక్క ప్రధాన ప్రయోజనం సింగిల్ మాస్టర్తో ఉన్న బహుళ బానిస, RS-232 ఒకే బానిసకు మాత్రమే మద్దతు ఇస్తుంది.
- ఇది గరిష్టంగా 32 పరికరాలను RS-485 ప్రోటోకాల్కు అనుసంధానించగలదు.
- RS-485 యొక్క మరొక ప్రయోజనం ఏమిటంటే, వారు బదిలీ చేయడానికి అవకలన సిగ్నల్ పద్ధతిని ఉపయోగిస్తున్నందున ఇది శబ్దానికి రోగనిరోధక శక్తిని కలిగి ఉంటుంది.
- I2C ప్రోటోకాల్తో పోలిస్తే RS-485 వేగంగా ఉంటుంది.
ఆర్డునోలో RS-485
ఆర్డునోలో RS-485 ను ఉపయోగించటానికి, మాగ్జిమ్ MAX485 IC పై ఆధారపడిన 5V MAX485 TTL నుండి RS485 వరకు మాడ్యూల్ అవసరం, ఎందుకంటే ఇది 1200 మీటర్ల దూరానికి సీరియల్ కమ్యూనికేషన్ను అనుమతిస్తుంది మరియు ఇది ద్వి దిశాత్మకమైనది. సగం డ్యూప్లెక్స్ మోడ్లో ఇది డేటా బదిలీ రేటు 2. 5 ఎమ్బిపిఎస్.
5V MAX485 TTL నుండి RS485 మాడ్యూల్కు 5V యొక్క వోల్టేజ్ అవసరం మరియు 5V లాజిక్ స్థాయిలను ఉపయోగిస్తుంది, తద్వారా ఇది ఆర్డునో వంటి మైక్రోకంట్రోలర్ల హార్డ్వేర్ సీరియల్ పోర్ట్లతో అనుసంధానించబడుతుంది.
ఇది క్రింది లక్షణాలను కలిగి ఉంది:
- ఆపరేటింగ్ వోల్టేజ్: 5 వి
- ఆన్-బోర్డు MAX485 చిప్
- RS485 కమ్యూనికేషన్ కోసం తక్కువ విద్యుత్ వినియోగం
- స్లీ-రేట్ పరిమిత ట్రాన్స్సీవర్
- 5.08 మిమీ పిచ్ 2 పి టెర్మినల్
- అనుకూలమైన RS-485 కమ్యూనికేషన్ వైరింగ్
- చిప్ యొక్క అన్ని పిన్స్ మైక్రోకంట్రోలర్ ద్వారా నియంత్రించబడతాయి
- బోర్డు పరిమాణం: 44 x 14 మిమీ
RS-485 యొక్క పిన్-అవుట్:
పిన్ పేరు |
వా డు |
వీసీసీ |
5 వి |
జ |
నాన్-ఇన్వర్టింగ్ రిసీవర్ ఇన్పుట్ నాన్-ఇన్వర్టింగ్ డ్రైవర్ అవుట్పుట్ |
బి |
రివర్స్ ఇన్పుట్ విలోమం విలోమ డ్రైవర్ అవుట్పుట్ |
GND |
GND (0V) |
R0 |
రిసీవర్ అవుట్ (RX పిన్) |
RE |
స్వీకర్త అవుట్పుట్ (తక్కువ-ప్రారంభించు) |
DE |
డ్రైవర్ అవుట్పుట్ (హై-ఎనేబుల్) |
DI |
డ్రైవర్ ఇన్పుట్ (TX పిన్) |
ఈ RS-485 మాడ్యూల్ Arduino తో సులభంగా ఇంటర్ఫేస్ చేయవచ్చు. Arduino 0 (RX) మరియు 1 (TX) (UNO, NANO లో) యొక్క హార్డ్వేర్ సీరియల్ పోర్ట్లను ఉపయోగిద్దాం. ప్రోగ్రామింగ్ కూడా చాలా సులభం , RS-485 కు వ్రాయడానికి సీరియల్.ప్రింట్ () మరియు RS-485 నుండి చదవడానికి సీరియల్.రెడ్ () ను ఉపయోగించండి.
ప్రోగ్రామింగ్ భాగం తరువాత వివరంగా వివరించబడింది కాని మొదట అవసరమైన భాగాలు మరియు సర్క్యూట్ రేఖాచిత్రాన్ని తనిఖీ చేయడానికి అనుమతిస్తుంది.
భాగాలు అవసరం
- Arduino UNO లేదా Arduino NANO (2)
- MAX485 TTL నుండి RS485 కన్వర్టర్ మాడ్యూల్ - (2)
- 10 కె పొటెన్టోమీటర్
- 16x2 LCD డిస్ప్లే
- LED
- బ్రెడ్బోర్డ్
- వైర్లను కనెక్ట్ చేస్తోంది
ఈ ట్యుటోరియల్లో ఆర్డునో యునోను మాస్టర్గా మరియు ఆర్డునో నానోను బానిసగా ఉపయోగిస్తారు. ఇక్కడ రెండు ఆర్డునో బోర్డులు ఉపయోగించబడతాయి కాబట్టి రెండు RS-485 గుణకాలు అవసరం.
సర్క్యూట్ రేఖాచిత్రం
మొదటి RS-485 మరియు Arduino UNO (మాస్టర్) మధ్య సర్క్యూట్ కనెక్షన్:
RS-485 |
ఆర్డునో UNO |
DI |
1 (టిఎక్స్) |
DE RE |
8 |
R0 |
0 (RX) |
వీసీసీ |
5 వి |
GND |
GND |
జ |
స్లేవ్ RS-485 యొక్క A కు |
బి |
స్లేవ్ RS-485 యొక్క B కి |
రెండవ RS-485 మరియు Arduino నానో (బానిస) మధ్య కనెక్షన్:
RS-485 |
ఆర్డునో UNO |
DI |
డి 1 (టిఎక్స్) |
DE RE |
డి 8 |
R0 |
D0 (RX) |
వీసీసీ |
5 వి |
GND |
GND |
జ |
మాస్టర్ RS-485 యొక్క A కు |
బి |
మాస్టర్ RS-485 యొక్క B కి |
16x2 LCD మరియు Arduino నానో మధ్య సర్క్యూట్ కనెక్షన్:
16x2 LCD |
ఆర్డునో నానో |
వి.ఎస్.ఎస్ |
GND |
VDD |
+ 5 వి |
వి 0 |
LCD యొక్క కాంట్రాస్ట్ కంట్రోల్ కోసం పొటెన్షియోమీటర్ సెంటర్ పిన్కు |
ఆర్ఎస్ |
డి 2 |
ఆర్డబ్ల్యూ |
GND |
ఇ |
డి 3 |
డి 4 |
డి 4 |
డి 5 |
డి 5 |
డి 6 |
డి 6 |
డి 7 |
డి 7 |
జ |
+ 5 వి |
కె |
GND |
అనలాగ్ ఇన్పుట్ అందించడానికి 10K పొటెన్షియోమీటర్ Arduino UNO యొక్క అనలాగ్ పిన్ A0 కి అనుసంధానించబడి ఉంది మరియు Arduino నానో యొక్క పిన్ D10 కి ఒక LED అనుసంధానించబడి ఉంది.
RS485 సీరియల్ కమ్యూనికేషన్ కోసం ప్రోగ్రామింగ్ Arduino UNO & Arduino Nano
ప్రోగ్రామింగ్ కోసం రెండు బోర్డులు Arduino IDE ఉపయోగించబడుతుంది. కానీ మీరు టూల్స్-> పోర్ట్ మరియు బోర్డ్ నుండి టూల్స్-> బోర్డ్ నుండి సంబంధిత పోర్ట్ను ఎంచుకున్నారని నిర్ధారించుకోండి.
ఈ ట్యుటోరియల్ చివరిలో డెమో వీడియోతో పూర్తి కోడ్ ఇవ్వబడింది. ఇక్కడ మేము కోడ్ యొక్క ముఖ్యమైన భాగాన్ని వివరిస్తున్నాము. ఈ ట్యుటోరియల్లో రెండు ప్రోగ్రామ్లు ఉన్నాయి, ఒకటి ఆర్డునో యుఎన్ఓ (మాస్టర్) మరియు మరొకటి ఆర్డునో నానో (స్లేవ్).
మాస్టర్ కోసం కోడ్ వివరణ: ఆర్డునో UNO
మాస్టర్ వైపు, పొటెన్షియోమీటర్ను మార్చడం ద్వారా పిన్ A0 వద్ద అనలాగ్ ఇన్పుట్ను తీసుకోండి, ఆపై ఆర్డినో UNO యొక్క హార్డ్వేర్ సీరియల్ పోర్ట్స్ (0,1) ద్వారా సీరియల్ ఆ విలువలను RS-485 బస్కు రాయండి .
హార్డ్వేర్ సీరియల్ పిన్స్ (0,1) వద్ద సీరియల్ కమ్యూనికేషన్ ప్రారంభించడానికి:
సీరియల్.బెగిన్ (9600);
Arduino UNO యొక్క పిన్ A0 వద్ద అనలాగ్ విలువను చదవడానికి మరియు వాటిని వేరియబుల్ పోట్వాల్ ఉపయోగంలో నిల్వ చేయడానికి:
int potval = అనలాగ్ రీడ్ (పుష్వాల్);
రాయడానికి ముందు potval సీరియల్ పోర్ట్ విలువ, పిన్స్ DE & రీ- RS-485 ఉండాలి HIGH పిన్ 8 HIGH హౌ టు కాబట్టి Arduino UNO పిన్ 8 అనుసంధానించబడిన:
డిజిటల్ రైట్ (ఎనేబుల్ పిన్, హై);
RS-485 మాడ్యూల్తో అనుసంధానించబడిన సీరియల్ పోర్టులో ఆ విలువలను ఉంచడానికి తరువాత, కింది స్టేట్మెంట్ను ఉపయోగించండి
సీరియల్.ప్రింట్ల్న్ (పొట్వాల్);
బానిస కోసం కోడ్ వివరణ: ఆర్డునో నానో
స్లేవ్ వైపు, ఆర్డినో నానో (పిన్స్ -0,1) యొక్క హార్డ్వేర్ సీరియల్ పోర్టులో లభించే మాస్టర్ RS-485 నుండి పూర్ణాంక విలువ అందుతుంది. ఆ విలువలను చదివి వేరియబుల్లో నిల్వ చేయండి. విలువలు (0 -1023) రూపంలో ఉంటాయి. కాబట్టి LED ప్రకాశాన్ని నియంత్రించడానికి PWM టెక్నిక్ ఉపయోగించబడుతున్నందున ఇది (0-255) గా మార్చబడుతుంది.
అప్పుడు మార్చబడిన విలువను LED పిన్ D10 (ఇది PWM పిన్) కు అనలాగ్ రైట్ చేయండి . కాబట్టి పిడబ్ల్యుఎం విలువను బట్టి ఎల్ఇడి మార్పుల ప్రకాశం మరియు ఆ విలువలను 16x2 ఎల్సిడి డిస్ప్లేలో ప్రదర్శిస్తుంది.
స్లేవ్ ఆర్డునో యొక్క RS-485 మాస్టర్ నుండి విలువలను స్వీకరించడానికి, RS-485 LOW యొక్క పిన్స్ DE & RE ను తయారు చేయండి. కాబట్టి Arduino NANO యొక్క పిన్ D8 (enablePin) తక్కువగా తయారు చేయబడింది.
డిజిటల్ రైట్ (ఎనేబుల్ పిన్, తక్కువ);
మరియు సీరియల్ పోర్ట్ వద్ద అందుబాటులో ఉన్న పూర్ణాంక డేటాను చదవడానికి మరియు వాటిని వేరియబుల్ ఉపయోగంలో నిల్వ చేయడానికి
int pwmval = Serial.parseInt ();
తరువాత విలువను (0-1023 నుండి 0-255 వరకు) మార్చండి మరియు వాటిని వేరియబుల్లో నిల్వ చేయండి:
int కన్వర్ట్ = మ్యాప్ (pwmval, 0,1023,0,255);
LED యానోడ్ అనుసంధానించబడిన చోట D10 ను పిన్ చేయడానికి అనలాగ్ విలువ (PWM) ను వ్రాయండి:
అనలాగ్రైట్ (లెడ్పిన్, కన్వర్ట్);
ఆ PWM విలువను 16x2 LCD డిస్ప్లే వాడకంలో ముద్రించడానికి
lcd.setCursor (0,0); lcd.print ("PWM FROM MASTER"); lcd.setCursor (0,1); lcd.print (మార్చండి);
సీరియల్ కమ్యూనికేషన్ RS485 తో LED ప్రకాశాన్ని నియంత్రించడం
పొటెన్షియోమీటర్ ఉపయోగించి PWM విలువ 0 వద్ద సెట్ చేయబడినప్పుడు, LED ఆపివేయబడుతుంది.
పొటెన్షియోమీటర్ ఉపయోగించి పిడబ్ల్యుఎం విలువ 251 వద్ద సెట్ చేయబడినప్పుడు: దిగువ చిత్రంలో చూపిన విధంగా ఎల్ఈడీ పూర్తి ప్రకాశంతో ఆన్ చేయబడింది:
కాబట్టి ఆర్డునోలో సీరియల్ కమ్యూనికేషన్ కోసం RS485 ను ఈ విధంగా ఉపయోగించవచ్చు.