RS485 side Arduinoga: täielik juhend koos näidetega

  • Mooduli MAX485 ühendamine ja kasutamine RS485 side loomiseks Arduinoga.
  • Kuidas rakendada simpleks-, pooldupleks- ja täisdupleksside erinevate vajaduste jaoks.
  • Seadmete juhtimine samal RS485 siinil mitme Arduinoga.

rs485

Jadaside on üks levinumaid viise andmete vahetamiseks elektroonikaseadmete vahel. Kui aga vahemaad suurenevad või keskkonnas esineb elektromagnetilisi häireid, võivad sidesignaalid olla altid vigadele. Siin tuleb mängu RS485 sidestandard, mis pakub tugevat ja tõhusat alternatiivi. Arduino oma mitmekülgsusega võimaldab meil seda protokolli täielikult ära kasutada üsna lihtsal viisil.

Selles artiklis näeme, kuidas RS485 sidet saab rakendada mitme Arduino vahel, kasutades mooduleid, mis põhinevad integreeritud MAX485-l, kiibil, mis teisendab TTL-signaale (Arduinost) RS485-ks ja vastupidi. Kogu selle õpetuse käigus käsitleme nii põhikontseptsioone kui ka praktilisi näiteid, mis võimaldavad teil rakendada Arduino mikrokontrollerite vahelist simpleks-, pooldupleks- ja täisdupleks-suhtlust, ning selgitame, kuidas saate seda sidesüsteemi laiendada nii, et see käsitleks korraga mitut seadet. RS485 buss.

Mis on RS485?

RS485 on tööstuses laialdaselt kasutatav sidestandard, mis on tuntud oma vastupidavus ja selle vastupanuvõimet pikamaa edastamine isegi mürarikkas tööstuskeskkonnas. Erinevalt teistest jadakommunikatsiooni tüüpidest, nagu RS232, võimaldab RS485 ühendada samasse siini mitu seadet, mistõttu on see ideaalne tööstuslike automatiseerimis- ja juhtimisrakenduste jaoks.

See protokoll on elektromagnetilise müra suhtes vastupidav tänu sellele, et see kasutab a diferentsiaalsignalisatsioonisüsteem, mis tähendab, et andmeid saadetakse kahe juhtme A ja B kaudu, mis on pingelt vastupidised. See võimaldab kaablitesse kogunenud müra hõlpsasti tühistada, tagades signaali terviklikkuse.

RS485 üks peamisi eeliseid on see toetab vahemaid kuni 1200 meetrit ja kiirus kuni 35 Mbps lühikestel vahemaadel, muutes selle ideaalseks protokolliks tööstus- ja juhtimisrakenduste jaoks keskkondades, kus on vaja pikka kaablit.

RS485 siderežiimid

rs485 pinout

RS485 side puhul saame süsteemi konfigureerida kolmel erineval viisil: simpleks, pooldupleks ja täisdupleks. Igal neist on oma eripärad ja seda rakendatakse vastavalt projekti vajadustele.

Lihtne suhtlus

Simpleksrežiimis toimub side ainult ühes suunas, see tähendab, et üks seade toimib saatja ja veel üks sarnane vastuvõtja. See on kasulik olukordades, kus soovite lihtsalt andmeid saata või vastu võtta, ilma et oleks vaja tagasisidet.

Näiteks saame seadistada süsteemi, kus Arduino loeb sensori väärtuse ja saadab selle teisele seadmele, mis selle lihtsalt vastu võtab. Sel juhul, kuna andmed liiguvad ainult ühes suunas, võib teatud lisajuhtelementidest loobuda, muutes süsteemi lihtsamaks ja säästlikumaks.

Pooldupleksside

Enamik Arduino RS485 rakendusi rakendatakse pooldupleksrežiimis, kuna see nõuab ainult seda kaks juhetja võimaldab nii andmeid saata kui vastu võtta, kuigi mitte samaaegselt. See tähendab, et kui üks seade saadab andmeid, peavad teised seadmed olema vastuvõturežiimis ja vastupidi.

Saate- ja vastuvõturežiimide vahetamiseks kasutage täiendavad tihvtid (RE/DE) moodulil MAX485, mida juhite koodist, et teha kindlaks, kas seade peaks igal ajahetkel saatma või vastu võtma.

See režiim on eriti kasulik, kui teil on samal siinil mitu seadet, mis peavad omavahel suhtlema, kuid mitte samaaegselt.

Täisdupleksside

Täisdupleksrežiimis saavad seadmed andmeid samaaegselt saata ja vastu võtta. Kuid täisdupleksi rakendamiseks RS485-s kaks paari keerutatud juhtmeid, mis suurendab juhtmestiku maksumust ja keerukust. Lisaks vajate iga seadme jaoks kahte MAX485 moodulit, et hallata edastus- ja vastuvõtukanaleid eraldi.

RS485 sidepidamiseks Arduinoga vajalikud komponendid

Arduino RS485 sidesüsteemi rakendamiseks vajate järgmisi komponente:

  • Üks või mitu Arduinost: Iga Arduino mudel sobib, kuid selles õpetuses kasutame seda Arduino UNO ja Arduino MEGA näidetena.
  • MAX485 moodulid: Need moodulid võimaldavad teil teisendada Arduino TTL-signaale RS485-le ja vastupidi. Need on väga odavad ja hõlpsasti leitavad sellistes kauplustes nagu AliExpress või eBay.
  • Lõpetustakistid: Signaali peegelduste vältimiseks asetatakse siini mõlemasse otsa tavaliselt 120 oomi takisti. Lühikestel vahemaadel saab ilma nendeta hakkama, kuid pikemate paigalduste korral on need signaali terviklikkuse säilitamiseks hädavajalikud.
  • Keerdpaarkaablid: Elektromagnetiliste häirete minimeerimiseks on soovitatav kasutada keerdpaarkaableid, eriti mürarikkas tööstuskeskkonnas.

Üldine ühendusskeem

Ühendage MAX485 moodulid Arduino jaoks on üsna lihtne. Kõige olulisemad kontaktid on A ja B, mis vastavad RS485 siiniliinidele. Need kontaktid peavad olema ühendatud kõigi siini seadmetega. Lisaks on moodulil RE ja DE kontaktid, mis kontrollivad, kas moodul on vastuvõtja või saatja režiimis.

Üldiselt toimub moodulite ühendamine Arduinoga järgmiselt:

  • Mooduli VCC ja GND ühendatakse Arduino VCC ja GND-ga.
  • Mooduli DI (andmesisend) ühendub Arduino TX-pistikuga, kui moodul peab toimima emitterina.
  • Mooduli RO (Receiver Output) ühendub Arduino RX-viiguga, kui moodul peab toimima vastuvõtjana.
  • Saate- ja vastuvõturežiimide vahetamiseks tuleb DE ja RE juhtida Arduino digitaalse viigu kaudu.

Kui vajate moodulit ainult saatja või vastuvõtjana toimimiseks, saate RE ja DE ühendada otse HIGH või LOW. Keerulisema side puhul, kus seade peab lülituma edastamise ja vastuvõtmise vahel, on kõige parem juhtida neid kontakte tarkvarast.

Koodinäited RS485 side jaoks

Allpool on mitu näidet, mis hõlmavad erinevaid RS485 sidekonfiguratsioone Arduino's.

Lihtne suhtlus

Väljaandja kood

Põhilise simplekssüsteemi puhul, kus meil on ainult üks saatja ja üks vastuvõtja, võib saatja kood välja näha järgmine:

void setup() { Serial.begin(9600); } void loop() { Serial.write(analogRead(0)); delay(500); }

Vastuvõtja kood

Vastuvõtja lihtsalt loeb läbi jadapordi saabuvad andmed:

void setup() { Serial.begin(9600); } void loop() { if (Serial.available()) { int data = Serial.read(); Serial.println(data); } }

Pooldupleksside

Selles näites rakendame poolduplekssüsteemi, kus seadmed vahelduvad andmete saatmise ja vastuvõtmise vahel.

Õpetaja kood

const int reDePin = 2; void setup() { pinMode(reDePin, OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(reDePin, HIGH); Serial.write('H'); delay(100); digitalWrite(reDePin, LOW); if (Serial.available()) { int data = Serial.read(); Serial.println(data); } }

Slave kood

const int reDePin = 2; void setup() { pinMode(reDePin, OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(reDePin, LOW); if (Serial.available()) { int data = Serial.read(); delay(100); digitalWrite(reDePin, HIGH); Serial.write(data + 1); } }

Täisdupleksside

Täisdupleksside rakendamiseks on vaja kahte MAX485 moodulit Arduino kohta. Iga moodulpaar käsitleb ühte andmeliini: üks edastamiseks ja teine ​​vastuvõtmiseks.

Kood on sarnane eelmiste näidetega, kuid sel juhul edastavad ja võtavad mõlemad seadmed alati samaaegselt.

Laiendus mitmele seadmele RS485 kaudu

RS485-l on võimalus ühendada kuni 32 seadet ühele siinile ja erijuhtudel võib see ulatuda rohkematele. See teeb sellest suurepärase valiku projektide jaoks, mis hõlmavad mitut mikrokontrollerit või seadet. Iga seadme tuvastamiseks võrgus on tavaline, et iga seadme jaoks rakendatakse aadress või ID.

Sel juhul saadab kapten sõnumi selle seadme aadressiga, millega ta soovib suhelda, ja ainult see seade vastutab sõnumi töötlemise ja vastuse andmise eest.

Sellele lisandub kasutusvõimalus keerulisemad protokollid näiteks MODBUS, mis võimaldab luua tööstuses ülitõhusaid ja turvalisi võrke.

Koduprojektide või vähem nõudlike rakenduste jaoks saate lihtsalt määrata igale Arduinole identifikaatori ja lasta neil vastata ainult neile mõeldud sõnumitele.


Ole esimene kommentaar

Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.