- RS-485 సీరియల్ కమ్యూనికేషన్
- ఆర్డునోతో RS-485 ను కనెక్ట్ చేస్తోంది
- USB నుండి RS-485 కన్వర్టర్ మాడ్యూల్
- మోడ్బస్ మాస్టర్ సాఫ్ట్వేర్
- ఉపకరణాలు అవసరం
- సర్క్యూట్ రేఖాచిత్రం
- RS-485 MODBUS స్లేవ్ కోసం ప్రోగ్రామింగ్ Arduino UNO
- ఆర్డునో యుఎన్ఓను రూ .485 మోడ్బస్ స్లేవ్గా పరీక్షిస్తోంది
మోడ్బస్ అనేది సీరియల్ కమ్యూనికేషన్ ప్రోటోకాల్, దీనిని 1979 లో మోడికాన్ కనుగొన్నారు మరియు ఇది పారిశ్రామిక ఎలక్ట్రానిక్ పరికరాల మధ్య సీరియల్ లైన్ల ద్వారా డేటాను ప్రసారం చేయడానికి ఉపయోగించబడుతుంది. RS-485 మోడ్బస్ ప్రసార మార్గాల కోసం RS-485 ను ఉపయోగిస్తుంది. మోడ్బస్ ఒక సాఫ్ట్వేర్ ప్రోటోకాల్ మరియు హార్డ్వేర్ ప్రోటోకాల్ కాదని గమనించాలి. ఇది మోడ్బస్ మాస్టర్ మరియు మోడ్బస్ స్లేవ్ వంటి రెండు భాగాలుగా విభజించబడింది. RS-485 మోడ్బస్ నెట్వర్క్లో 1 నుండి 127 వరకు ప్రత్యేకమైన చిరునామాతో ఒక మాస్టర్ మరియు 127 బానిసలు ఉన్నారు. ఈ MAX485 Arduino ప్రాజెక్టులో, మేము సీరియల్ కమ్యూనికేషన్ కోసం Arduino Uno ను బానిసగా ఉపయోగిస్తాము.
మోడ్బస్ను ఎక్కువగా పిఎల్సిలలో (ప్రోగ్రామబుల్ లాజిక్ కంట్రోలర్స్) ఉపయోగిస్తారు. ఇది కాకుండా, మోడ్బస్ను హెల్త్కేర్, ట్రాన్స్పోర్టేషన్, హోమ్ ఆటోమేషన్ మొదలైన వాటిలో కూడా ఉపయోగిస్తారు. మోడ్బస్లో 255 ఫంక్షన్ కోడ్లు ఉన్నాయి మరియు ప్రధానంగా మోడ్బస్ యొక్క మూడు ప్రసిద్ధ వెర్షన్లు ఉన్నాయి:
- మోడ్బస్ RTU
- MODBUS ASCII
- మోడ్బస్ / టిసిపి
మోడ్బస్ ASCII మరియు మోడ్బస్ RTU మధ్య తేడా ఏమిటి?
మోడ్బస్ RTU మరియు మోడ్బస్ ASCII ఒకే ప్రోటోకాల్ను మాట్లాడుతుంది. ఒకే తేడా ఏమిటంటే, వైర్పై ప్రసారం చేయబడే బైట్లను RTU తో బైనరీగా మరియు మోడ్బస్ RTU తో చదవగలిగే ASCII గా ప్రదర్శిస్తారు. ఈ ట్యుటోరియల్లో మోడ్బస్ RTU ఉపయోగించబడుతుంది.
ఈ ట్యుటోరియల్ ఆర్డునో UNO తో RS-485 మోడ్బస్ కమ్యూనికేషన్ను బానిసగా ఉపయోగించడం గురించి . ఇక్కడ మేము పిసిలో సింప్లీ మోడ్బస్ మాస్టర్ సాఫ్ట్వేర్ను ఇన్స్టాల్ చేస్తాము మరియు రెండు ఎల్ఇడిలను మరియు సర్వో మోటారును ఆర్ఎస్ -485 ను ట్రాన్స్మిషన్ లైన్గా ఉపయోగించడం ద్వారా నియంత్రిస్తాము. ఈ LED లు మరియు సర్వో మోటారు స్లేవ్ ఆర్డునోతో అనుసంధానించబడి మాస్టర్ మోడ్బస్ సాఫ్ట్వేర్ను ఉపయోగించి విలువలను పంపడం ద్వారా నియంత్రించబడతాయి. ఈ ట్యుటోరియల్ RS-485 ను ఉపయోగిస్తుంది కాబట్టి, మొదట ఆర్డునో యునో మరియు ఆర్డునో నానో మధ్య RS485 సీరియల్ కమ్యూనికేషన్ ద్వారా వెళ్ళమని సిఫార్సు చేయబడింది. సీరియల్ కమ్యూనికేషన్ కోసం RS485 ను ఇతర కంట్రోలర్లతో కూడా ఉపయోగించవచ్చు:
- రాస్ప్బెర్రీ పై & ఆర్డునో UNO మధ్య RS-485 సీరియల్ కమ్యూనికేషన్
- RS-485 ఉపయోగించి STM32F103C8 మరియు Arduino UNO మధ్య సీరియల్ కమ్యూనికేషన్
RS-485 మరియు మోడ్బస్ల గురించి కొంత నేపథ్యాన్ని అన్వేషించడం ద్వారా ప్రారంభిద్దాం. వివిధ సీరియల్ కమ్యూనికేషన్ ప్రోటోకాల్ల గురించి ఇక్కడ మరింత తెలుసుకోండి.
RS-485 సీరియల్ కమ్యూనికేషన్
RS-485 అనేది అసమకాలిక సీరియల్ కమ్యూనికేషన్ ప్రోటోకాల్, దీనికి గడియారం అవసరం లేదు. ఇది బైనరీ డేటాను ఒక పరికరం నుండి మరొక పరికరానికి బదిలీ చేయడానికి అవకలన సిగ్నల్ అనే సాంకేతికతను ఉపయోగిస్తుంది.
కాబట్టి ఈ అవకలన సిగ్నల్ బదిలీ పద్ధతి ఏమిటి ??
సానుకూల మరియు ప్రతికూల 5V ని ఉపయోగించి అవకలన వోల్టేజ్ను సృష్టించడం ద్వారా డిఫరెన్షియల్ సిగ్నల్ పద్ధతి పనిచేస్తుంది. రెండు వైర్లను ఉపయోగిస్తున్నప్పుడు ఇది హాఫ్-డ్యూప్లెక్స్ కమ్యూనికేషన్ను అందిస్తుంది మరియు ఫుల్-డ్యూప్లెక్స్కు 4 ఫోర్లు వైర్లు అవసరం.
ఈ పద్ధతిని ఉపయోగించడం ద్వారా:
- RS-485 గరిష్టంగా 30Mbps అధిక డేటా బదిలీ రేటుకు మద్దతు ఇస్తుంది.
- ఇది RS-232 ప్రోటోకాల్తో పోలిస్తే గరిష్ట డేటా బదిలీ దూరాన్ని కూడా అందిస్తుంది. ఇది గరిష్టంగా 1200 మీటర్ల వరకు డేటాను బదిలీ చేస్తుంది.
- RS-232 కంటే RS-485 యొక్క ప్రధాన ప్రయోజనం సింగిల్ మాస్టర్తో ఉన్న బహుళ బానిస, RS-232 ఒకే బానిసకు మాత్రమే మద్దతు ఇస్తుంది.
- RS-485 ప్రోటోకాల్కు కనెక్ట్ చేయబడిన గరిష్టంగా 32 పరికరాలను కలిగి ఉంటుంది.
- RS-485 యొక్క మరొక ప్రయోజనం శబ్దం నుండి రోగనిరోధక శక్తిని కలిగి ఉంటుంది, ఎందుకంటే అవి బదిలీ చేయడానికి అవకలన సిగ్నల్ పద్ధతిని ఉపయోగిస్తాయి.
- I2C ప్రోటోకాల్తో పోలిస్తే RS-485 వేగంగా ఉంటుంది.
ఆర్డునోతో RS-485 ను కనెక్ట్ చేస్తోంది
RS-485 మాడ్యూల్ సీరియల్ పోర్ట్ ఉన్న ఏదైనా మైక్రోకంట్రోలర్కు కనెక్ట్ చేయవచ్చు. మైక్రోకంట్రోలర్లతో RS-485 మాడ్యూల్ను ఉపయోగించటానికి, మాగ్జిమ్ MAX485 IC పై ఆధారపడిన 5V MAX485 TTL నుండి RS485 వరకు మాడ్యూల్ అవసరం, ఎందుకంటే ఇది 1200 మీటర్ల దూరానికి సీరియల్ కమ్యూనికేషన్ను అనుమతిస్తుంది. ఇది ద్వి దిశాత్మక మరియు సగం డ్యూప్లెక్స్ మరియు డేటా బదిలీ రేటు 2.5 Mbps. ఈ మాడ్యూల్కు 5 వి వోల్టేజ్ అవసరం.
RS-485 యొక్క పిన్-అవుట్:
పిన్ పేరు |
పిన్ వివరణ |
వీసీసీ |
5 వి |
జ |
నాన్-ఇన్వర్టింగ్ రిసీవర్ ఇన్పుట్ నాన్-ఇన్వర్టింగ్ డ్రైవర్ అవుట్పుట్ |
బి |
రివర్స్ ఇన్పుట్ విలోమం విలోమ డ్రైవర్ అవుట్పుట్ |
GND |
GND (0V) |
R0 |
రిసీవర్ అవుట్ (RX పిన్) |
RE |
స్వీకర్త అవుట్పుట్ (తక్కువ-ప్రారంభించు) |
DE |
డ్రైవర్ అవుట్పుట్ (హై-ఎనేబుల్) |
DI |
డ్రైవర్ ఇన్పుట్ (TX పిన్) |
USB నుండి RS-485 కన్వర్టర్ మాడ్యూల్
ఇది US48 నుండి RS485 కన్వర్టర్ అడాప్టర్ మాడ్యూల్, ఇది WIN7, XP, Vista, Linux, Mac OS కి మద్దతు ఇస్తుంది మరియు కంప్యూటర్లో COM పోర్ట్ను ఉపయోగించడం ద్వారా RS485 ఇంటర్ఫేస్ను ఉపయోగించడానికి సులభమైనది . ఈ మాడ్యూల్ ప్లగ్-అండ్-ప్లే పరికరం . కమాండ్ నిర్మాణాలు లేవు, వర్చువల్ COM పోర్ట్కు పంపినవి స్వయంచాలకంగా RS485 గా మార్చబడతాయి మరియు దీనికి విరుద్ధంగా. మాడ్యూల్ పూర్తిగా USB బస్సు నుండి స్వీయ-శక్తితో ఉంటుంది. కాబట్టి, ఆపరేషన్ కోసం బాహ్య విద్యుత్ సరఫరా అవసరం లేదు.
ఇది సీరియల్ / COM పోర్ట్గా కనిపిస్తుంది మరియు అనువర్తనాలు లేదా హైపర్-టెర్మినల్ నుండి అందుబాటులో ఉంటుంది. ఈ కన్వర్టర్ సగం డ్యూప్లెక్స్ RS-485 కమ్యూనికేషన్ను అందిస్తుంది. బాడ్ రేటు పరిధి 75 బిపిఎస్ నుండి 115200 బిపిఎస్ వరకు, గరిష్టంగా 6 ఎంబిపిఎస్ వరకు ఉంటుంది.
ఈ పరికరాన్ని ఉపయోగించడానికి ఇంటర్నెట్లో వివిధ మోడ్బస్ సాఫ్ట్వేర్ అందుబాటులో ఉంది. ఈ ట్యుటోరియల్లో సింప్లీ మోడ్బస్ సాఫ్ట్వేర్ అనే సాఫ్ట్వేర్ ఉపయోగించబడుతుంది.
మోడ్బస్ మాస్టర్ సాఫ్ట్వేర్
మోడ్బస్ మాస్టర్ సాఫ్ట్వేర్ అనువర్తనం COM ద్వారా బానిస మోడ్బస్ RS-485 Arduino పరికరానికి డేటాను పంపడం అవసరం.
మోడ్బస్ మాస్టర్ డేటా కమ్యూనికేషన్ టెస్ట్ సాఫ్ట్వేర్. మీరు ఇచ్చిన లింక్ నుండి సింపుల్ మోడ్బస్ మాస్టర్ను డౌన్లోడ్ చేసుకోవచ్చు మరియు సాఫ్ట్వేర్ మాన్యువల్ను సూచించడం ద్వారా దాని గురించి మరింత తెలుసుకోవచ్చు.
సాఫ్ట్వేర్ను ఉపయోగించే ముందు, ఈ క్రింది పరిభాషలను తెలుసుకోవడం చాలా ముఖ్యం.
బానిస ID:
నెట్వర్క్లోని ప్రతి బానిసకు 1 నుండి 127 వరకు ప్రత్యేకమైన యూనిట్ చిరునామా కేటాయించబడుతుంది. మాస్టర్ డేటాను అభ్యర్థించినప్పుడు, అది పంపే మొదటి బైట్ స్లేవ్ చిరునామా. ఈ విధంగా ప్రతి బానిస సందేశాన్ని విస్మరించాలా వద్దా అని మొదటి బైట్ తర్వాత తెలుసు.
ఫంక్షన్ కోడ్:
మాస్టర్ పంపిన రెండవ బైట్ ఫంక్షన్ కోడ్. ఈ సంఖ్య బానిసకు ఏ పట్టికను యాక్సెస్ చేయాలో మరియు టేబుల్ నుండి చదవాలా లేదా వ్రాయాలా అని చెబుతుంది.
మద్దతు ఉన్న రిజిస్టర్ ఫంక్షన్ కోడ్లు:
ఫంక్షన్ కోడ్ |
చర్య |
పట్టిక పేరు |
04 (04 హెక్స్) |
చదవండి |
అనలాగ్ ఇన్పుట్ రిజిస్టర్లు |
03 (03 హెక్స్) |
చదవండి |
అనలాగ్ అవుట్పుట్ హోల్డింగ్ రిజిస్టర్లు |
06 (06 హెక్స్) |
సింగిల్ రాయండి |
అనలాగ్ అవుట్పుట్ హోల్డింగ్ రిజిస్టర్ |
16 (10 హెక్స్) |
బహుళ వ్రాయండి |
అనలాగ్ అవుట్పుట్ హోల్డింగ్ రిజిస్టర్లు |
మద్దతు ఉన్న కాయిల్ ఫంక్షన్ సంకేతాలు:
ఫంక్షన్ కోడ్ |
చర్య |
పట్టిక పేరు |
02 (02 హెక్స్) |
చదవండి |
వివిక్త ఇన్పుట్ పరిచయాలు |
01 (01 హెక్స్) |
చదవండి |
వివిక్త అవుట్పుట్ కాయిల్స్ |
05 (05 హెక్స్) |
సింగిల్ రాయండి |
వివిక్త అవుట్పుట్ కాయిల్ |
15 (0 ఎఫ్ హెక్స్) |
బహుళ వ్రాయండి |
వివిక్త అవుట్పుట్ కాయిల్స్ |
CRC:
CRC అంటే చక్రీయ పునరావృత తనిఖీ. లోపం గుర్తించడానికి ఇది ప్రతి మోడ్బస్ సందేశం చివర జోడించబడిన రెండు బైట్లు.
ఉపకరణాలు అవసరం
హార్డ్వేర్
- ఆర్డునో UNO
- MAX-485 TTL నుండి RS-485 కన్వర్టర్ మాడ్యూల్
- USB నుండి RS-485 కన్వర్టర్ మాడ్యూల్
- LED (2)
- 1 కె-రెసిస్టర్ (2)
- 16x2 LCD డిస్ప్లే
- 10 కె పొటెన్టోమీటర్
- సర్వో మోటార్ ఎస్జి -90
సాఫ్ట్వేర్
- మోడ్బస్ మాస్టర్
సర్క్యూట్ రేఖాచిత్రం
MAX-485 TTL నుండి RS-485 కన్వర్టర్ మాడ్యూల్ మరియు Arduino UNO మధ్య సర్క్యూట్ కనెక్షన్:
ఆర్డునో UNO |
MAX-485 TTL నుండి RS-485 కన్వర్టర్ మాడ్యూల్ |
0 (RX) |
RO |
1 (టిఎక్స్) |
DI |
4 |
DE & RE |
+ 5 వి |
వీసీసీ |
GND |
GND |
MAX-485 TTL నుండి RS-485 మాడ్యూల్ మరియు USB నుండి RS-485 కన్వర్టర్ మధ్య సర్క్యూట్ కనెక్షన్:
MAX-485 TTL నుండి RS-485 వరకు కన్వర్టర్ మాడ్యూల్ |
USB నుండి RS-485 మాడ్యూల్ PC తో కనెక్ట్ చేయబడింది |
జ |
జ |
బి |
బి |
Arduino UNO మరియు 16x2 LCD డిస్ప్లే మధ్య సర్క్యూట్ కనెక్షన్లు:
16x2 LCD |
ఆర్డునో UNO |
వి.ఎస్.ఎస్ |
GND |
VDD |
+ 5 వి |
వి 0 |
16x2 LCD యొక్క కాంట్రాస్ట్ / ప్రకాశం నియంత్రణ కోసం పొటెన్టోమీటర్ యొక్క పిన్ను నియంత్రించడానికి |
ఆర్ఎస్ |
8 |
ఆర్డబ్ల్యూ |
GND |
ఇ |
9 |
డి 4 |
10 |
డి 5 |
11 |
డి 6 |
12 |
డి 7 |
13 |
జ |
+ 5 వి |
కె |
GND |
2 LED ల మధ్య సర్క్యూట్ కనెక్షన్, సర్వో మోటార్ మరియు ఆర్డునో UNO:
ఆర్డునో UNO |
LED1 |
LED2 |
సర్వో మోటార్ |
2 |
1 కె రెసిస్టర్ ద్వారా యానోడ్ |
- |
- |
5 |
- |
1 కె రెసిస్టర్ ద్వారా యానోడ్ |
- |
6 |
- |
- |
పిడబ్ల్యుఎం పిన్ (ఆరెంజ్) |
+ 5 వి |
- |
- |
+ 5 వి (RED) |
GND |
కాథోడ్ GND |
కాథోడ్ GND |
GND (బ్రౌన్) |
RS-485 MODBUS స్లేవ్ కోసం ప్రోగ్రామింగ్ Arduino UNO
Arduino UNO మోడ్బస్ స్లేవ్గా కాన్ఫిగర్ చేయబడింది. అలాగే, Arduino UNO రెండు LED లు మరియు ఒక సర్వో మోటారుతో జతచేయబడింది. కాబట్టి బానిస Arduino మాస్టర్ మోడ్బస్ సాఫ్ట్వేర్ నుండి నియంత్రించబడుతుంది. ఆర్డునో UNO మరియు మోడ్బస్ మాస్టర్ సాఫ్ట్వేర్ మధ్య కమ్యూనికేషన్ RS-485 మాడ్యూల్ ఉపయోగించి సాధించబడుతుంది. PC తో కనెక్ట్ చేయడానికి, USB నుండి RS-485 కన్వర్టర్ మాడ్యూల్ ఉపయోగించబడుతుంది. మరియు MAX-485 TTL నుండి RS-485 కన్వర్టర్ మాడ్యూల్తో Arduino UNO, మొత్తం సెటప్ ఫైల్ క్రింది విధంగా కనిపిస్తుంది:
ఆర్డునో UNO, లైబ్రరీలో మోడ్బస్ను ఉపయోగించడం కోసం
ప్రారంభంలో, అవసరమైన లైబ్రరీని చేర్చండి. మోడ్బస్ఆర్టియు లైబ్రరీ ఆర్ఎస్ -485 మోడ్బస్ కమ్యూనికేషన్ను ఉపయోగించడం కోసం, మరియు లిక్విడ్ క్రిస్టల్ లైబ్రరీ ఎల్సిడిని ఆర్డునో యుఎన్ఓతో ఉపయోగించడం కోసం, మరియు సర్వో లైబ్రరీ ఆర్డునో యుఎన్ఓతో సర్వో మోటారును ఉపయోగించడం కోసం.
# చేర్చండి
ఇప్పుడు ఆర్డునో పిన్స్ 2 మరియు 5 లతో అనుసంధానించబడిన LED యానోడ్ పిన్స్ LED1 మరియు LED2 గా నిర్వచించబడ్డాయి.
# led1 2 ను నిర్వచించండి # led2 5 ని నిర్వచించండి
తరువాత లిక్విడ్ క్రిస్టల్ క్లాస్ను యాక్సెస్ చేసే వస్తువు ఆర్సిడినో యుఎన్ఓతో అనుసంధానించబడిన ఎల్సిడి పిన్లతో (ఆర్ఎస్, ఇ, డి 4, డి 5, డి 6, డి 7) ప్రకటించబడుతుంది.
లిక్విడ్ క్రిస్టల్ ఎల్సిడి (8,9,10,11,12,13);
LCD పూర్తయినప్పుడు, క్లాస్ సర్వో కోసం సర్వో ఆబ్జెక్ట్ను ప్రారంభించండి. క్లాస్ మోడ్బస్ కోసం బస్ ఆబ్జెక్ట్ను కూడా ప్రారంభించండి.
సర్వో సర్వో; మోడ్బస్ బస్సు;
మోడ్బస్ కమ్యూనికేషన్ కోసం విలువలను నిల్వ చేయడానికి తదుపరిది సున్నాతో ప్రారంభించిన మూడు విలువలతో శ్రేణిని ప్రకటించారు.
uint16_t modbus_array = {0,0,0};
లో సెటప్ ఫంక్షన్, మొదటగా LCD 16x2 మోడ్ లో సెట్ మరియు ఒక స్వాగత సందేశం ప్రదర్శించబడుతుంది మరియు బయటపడతాడు.
lcd.begin (16,2); // ఎల్సిడి 16x2 మోడ్లో సెట్ చేయబడింది lcd.print ("RS-485 Modbus"); // స్వాగత సందేశం lcd.setCursor (0,1); lcd.print ("Arduino Slave"); ఆలస్యం (5000); lcd.clear ();
దీని తరువాత, LED1 మరియు LED2 పిన్లను అవుట్పుట్ పిన్లుగా సెట్ చేస్తారు.
పిన్మోడ్ (led1, OUTPUT); పిన్మోడ్ (led2, OUTPUT);
ఆర్డునో యొక్క పిడబ్ల్యుఎం పిన్ 6 కి అనుసంధానించబడిన సర్వో పల్స్ పిన్ జతచేయబడింది.
servo.attach (6);
ఇప్పుడు మోడ్బస్ కమ్యూనికేషన్ కోసం ఈ క్రింది పారామితులు సెట్ చేయబడ్డాయి. మొదటి '1' స్లేవ్ ID ని సూచిస్తుంది, రెండవ '1' డేటాను బదిలీ చేయడానికి RS-485 ను ఉపయోగిస్తుందని మరియు '4' Arduino UNO కి కనెక్ట్ చేయబడిన RS-485 DE&RE పిన్ను సూచిస్తుంది.
బస్ = మోడ్బస్ (1,1,4);
మోడ్బస్ బానిస 9600 బాడ్రేట్ వద్ద సెట్ చేయబడింది.
లూప్ బస్ పోల్ యొక్క నిర్వచనంతో మొదలవుతుంది మరియు మాస్టర్ మోడ్బస్ నుండి విలువను వ్రాయడానికి మరియు స్వీకరించడానికి బస్.పోల్ () ఉపయోగించబడుతుంది.
bus.poll (modbus_array, sizeof (modbus_array) / sizeof (modbus_array));
సీరియల్ పోర్టులో ఏదైనా డేటా అందుబాటులో ఉందో లేదో తనిఖీ చేయడానికి ఈ పద్ధతి ఉపయోగించబడుతుంది.
సీరియల్ పోర్టులో ఏదైనా డేటా అందుబాటులో ఉంటే, మోడ్బస్ RTU లైబ్రరీ సందేశాన్ని తనిఖీ చేస్తుంది (పరికర చిరునామా, డేటా పొడవు మరియు CRC ని తనిఖీ చేయండి) మరియు అవసరమైన చర్యను చేస్తుంది.
ఉదాహరణకు మాస్టర్ నుండి ఏదైనా విలువను వ్రాయడానికి లేదా చదవడానికి, ModbusRTU సంతకం చేయని 16-బిట్ పూర్ణాంక శ్రేణిని మరియు దాని పొడవును మాస్టర్ మోడ్బస్ నుండి పొందాలి. ఈ శ్రేణి మాస్టర్ నుండి వ్రాసిన డేటాను కలిగి ఉంటుంది.
ఈ ట్యుటోరియల్లో ఎల్ఈడీ 1, ఎల్ఈడీ 2, సర్వో మోటార్ యాంగిల్ కోసం మూడు శ్రేణులు ఉన్నాయి .
మొదట ఆన్ లేదా ఆఫ్ చేయడానికి LED1 modbus_array ఉపయోగించబడుతుంది.
if (modbus_array == 0) // మాస్టర్ మోడ్బస్ రాసిన modbus_array లో విలువపై ఆధారపడి ఉంటుంది { DigitalWrite (led1, LOW); // 0 lcd.setCursor (0,0) ఉంటే LED OFF ; lcd.print ("L1: OFF"); } else { డిజిటల్ రైట్ (led1, HIGH); 0 lcd.setCursor (0,0) కాకుండా ఇతర విలువ ఉంటే // LED ఆన్ చేయండి ; lcd.print ("L1: ON"); }
ఆన్ లేదా ఆఫ్ చేయడానికి తరువాత LED2 modbus_array ఉపయోగించబడుతుంది.
if (modbus_array == 0) // మాస్టర్ మోడ్బస్ రాసిన modbus_array లో విలువపై ఆధారపడి ఉంటుంది { DigitalWrite (led2, LOW); // 0 lcd.setCursor (8,0) ఉంటే LED ఆఫ్ ; lcd.print ("L2: OFF"); } else { డిజిటల్ రైట్ (led2, HIGH); 0 lcd.setCursor (9,0) కాకుండా ఇతర విలువ ఉంటే // LED ఆన్ చేయండి ; lcd.print ("L2: ON"); }
సర్వో మోటర్ యొక్క కోణాన్ని సెట్ చేయడానికి తరువాత ఉపయోగించిన modbus_array మరియు విలువ 16x2 LCD డిస్ప్లేలో ముద్రించబడుతుంది.
int pwm = modbus_array; servo.write (pwm); lcd.setCursor (0,1); lcd.print ("సర్వో కోణం:"); lcd.print (pwm); ఆలస్యం (200); lcd.clear ();
ఇది మోడ్బస్ స్లేవ్గా పనిచేసినందుకు ప్రోగ్రామింగ్ ఆర్డునో యుఎన్ఓను పూర్తి చేస్తుంది. తదుపరి దశ దీనిని మోడ్బస్ స్లేవ్గా పరీక్షిస్తుంది.
ఆర్డునో యుఎన్ఓను రూ.485 మోడ్బస్ స్లేవ్గా పరీక్షిస్తోంది
సర్క్యూట్ కనెక్షన్లు పూర్తయిన తరువాత మరియు కోడ్ ఆర్డునో యుఎన్ఓకు అప్లోడ్ చేయబడిన తరువాత, సింపుల్ మోడ్బస్ మాస్టర్ సాఫ్ట్వేర్ ఇన్స్టాల్ చేయబడిన పిసితో యుఎస్బిని ఆర్ఎస్ -485 మాడ్యూల్కు కనెక్ట్ చేసే సమయం.
పరికర నిర్వాహికిని తెరిచి, మీ PC ప్రకారం USB నుండి RS-485 మాడ్యూల్ కనెక్ట్ చేయబడిన COM పోర్ట్ను తనిఖీ చేయండి మరియు ఆ తర్వాత సింపుల్ మోడ్బస్ మాస్టర్ 8.1.1 సాఫ్ట్వేర్ను తెరవండి.
1. మోడ్బస్ సాఫ్ట్వేర్ తెరిచిన తరువాత ఇప్పుడు రైట్ ఎంపికను తెరవండి.
2. కేవలం మోడ్బస్ మాస్టర్ రైట్ తెరిచిన తర్వాత. పారామితులను సెట్ చేయండి
RTU లో మోడ్, మీ PC ప్రకారం COM పోర్ట్ (గని COM6), బౌడ్ 9600 వద్ద, డేటా బిట్స్ 8, స్టాప్ బిట్ 1, పారిటీ నన్ మరియు స్లేవ్ ఐడి 1 గా ఉంది.
3. ఆ సెట్ చేసిన తరువాత మొదటి రిజిస్టర్ 40001 గా మరియు వ్రాయడానికి విలువలు 3 మరియు ఫంక్షన్ కోడ్ 16 (రైట్ హోల్డింగ్ రిజిస్టర్).
ఆ తరువాత 1 నుండి 40001 (LED1 ఆన్ కోసం) మరియు 1 నుండి 40002 (LED2 ఆన్ కోసం) మరియు 90 నుండి 40003 (సర్వో మోటార్ యాంగిల్ కోసం) వ్రాసి, ఆపై SEND బటన్ క్లిక్ చేయండి.
ఎల్ఈడీ స్టేటస్ ఆన్ మరియు సర్వో యాంగిల్ 90 డిగ్రీల వద్ద ఉన్నట్లు మీరు చూడవచ్చు.
4. ఆ తరువాత 40001 ను 1 గా మరియు 40002 ను 0 గా మరియు 40003 ను 180 గా ఎంటర్ చేసి SEND బటన్ క్లిక్ చేయండి.
5. ఇప్పుడు 135 నుండి 40003 మరియు 40001 ను 0 గా మరియు 40002 ను 1 గా వ్రాయండి.
ఈ ఎలా ఉంది RS-485 Modbus స్లేవ్ Arduino UNO తో సీరియల్ కమ్యూనికేషన్ లో ఉపయోగించవచ్చు. తదుపరి ట్యుటోరియల్లో మేము MODBUS ప్రారంభంలో మాస్టర్గా Arduino Uno ని ఉపయోగిస్తాము.
పూర్తి కోడ్ మరియు ప్రదర్శన వీడియోను క్రింద కనుగొనండి.