Domanda:
Best practice per la trasmissione del segnale analogico del sensore su distanze maggiori (circa 100 ') - in prodotti sensibili ai costi per microcontrollori
risingtiger
2020-01-13 07:38:27 UTC
view on stackexchange narkive permalink

Sto cercando le migliori pratiche per trasmettere un segnale del sensore analogico su lunghe distanze a un microcontrollore come Arduino che funziona a 3,3 vo 5v. Mantenere bassi i costi è imperativo.

SPI e I2C sono molto comuni nella terra di Arduino, ma sembra che non ci sia molta soluzione quando i sensori devono essere a più di diversi metri di distanza dal microcontrollore. Ma forse I2C o SPI funzioneranno con i componenti e il cablaggio giusti. Qualche idea?

I loop di corrente da 4-20 mA sembrano una soluzione solida poiché la corrente non scende lungo le distanze fintanto che la potenza fornita rimane costantemente al di sopra della richiesta. Ma i sistemi 4-20 mA di sensori, trasmettitori e ricevitori sembrano essere i pilastri nel mondo industriale e praticamente assenti nei sistemi embedded a basso costo.

Un'esigenza classica è rilevare la temperatura tramite un termistore resistivo. I loro trasmettitori economici che possono essere accoppiati a un termistore per trasmettere un segnale di loop di corrente 4-20 mA? E poi un ricevitore economico sul lato del microcontrollore? Penso che qualcosa come un MOSFET sul lato del trasmettitore funzionerebbe, accoppiato con una resistenza sul lato incorporato.

Purtroppo, essendo un ingegnere del software, l'elettronica è ancora un po 'confusa per me.

AGGIORNAMENTO: Avrebbe dovuto specificare di più. Distanze di 30 '- 150' attraverso ambienti potenzialmente rumorosi. Posso andare MOLTO basso sul bit rate: 10 Khz. Anche 1 Khz se una cosa del genere è praticabile. Inserire un filtro passa basso e / o filtri software non è un grosso problema. Vorrei essere inferiore a $ 10 per sensore (escluso l'alloggiamento). Ma vorrei anche stare lontano da una scheda PCB personalizzata sul sensore, se possibile.

Hai ragione riguardo al resistore sul lato del ricevitore come convertitore da corrente a tensione in modo che possa essere facilmente letto dall'ADC dell'MCU.Non conosco il lato trasmettitore, ma userei un amplificatore operazionale invece di un MOSFET (o un amplificatore operazionale che utilizza un transistor esterno come amplificatore di potenza in modo che l'amplificatore operazionale possa gestire la regolazione senza bisogno didissipare il calore stesso).Non proverei a eseguire I2C o SPI per pochi piedi, anche se puoi e le persone hanno.RS-422 o RS-485 è quello che userei.
Puoi definire "lunga distanza"?Pollici?Metri?Miglia?
Ci aiuterebbe se ci dicessi qualcosa in più sulla tua applicazione.Che tipo di sensore o cosa misurerai?Quanta energia consumano i sensori?Come sono disposti i sensori (stella, linea, griglia)?È un segnale per nodo?(Sei sicuro che rimarrà un segnale per nodo?;)
Come suggerisce DKNguyen, hai considerato di eseguire SPI su RS-422 (o RS-485 half duplex)?
Dipende dalla tua larghezza di banda e quanto è economico, quanto è lunga la distanza? Per https://www.lammertbies.nl/comm/info/rs-232-specs, mentre RS232 è di circa 16m a 19200 baud, a 2400 baud è stato testato a 1000m.Un loop di corrente da 60 mA potrebbe gestire 5 km a bassa velocità.I modem possono percorrere molti chilometri su un doppino intrecciato.O forse, il Bluetooth potrebbe essere la cosa giusta - sebbene infinitamente più complicato, un paio di dispositivi Bluetooth sono quasi certamente più economici di 500 m di cavo.
** È NECESSARIO ** specificare la velocità dati richiesta.Puoi dire 100 bps su una corda bagnata (quasi letteralmente se è bagnata con acqua salata :-)).||Sarebbe DAVVERO utile specificare l'ordine di costo desiderato e qualsiasi altro vincolo che conosci e dobbiamo indovinare.||Respingi RS422 / 485 come troppo complesso.Non è.Il meccanismo di base è la tensione differenziale bilanciata e può essere fatto per ben meno di un dollaro.E ben al di sotto di quello se deve essere.
Potresti usare CAN bus
Citi un termistore come esempio.Se hai effettivamente bisogno di misurare la temperatura, puoi probabilmente farla franca facendo passare il doppino intrecciato dal termistore direttamente alla scheda uC, piuttosto che digitalizzare sul sensore.La temperatura cambia piuttosto lentamente, il che significa che è abbastanza facile calcolare la media nel software per rimuovere il rumore.Questa soluzione è, ovviamente, meno valida per qualsiasi segnale analogico che cambia più velocemente.
@Selvek.Interessante.Sarà la temperatura, l'umidità e il livello dell'acqua.Tutto cambia molto lentamente.E tutto funziona con la misurazione della resistenza di base.So che posso fare molto nel codice per filtrare segnali inaspettati se conosco un tasso di cambio massimo (che sarà di circa 1 grado al minuto).Qualcosa come la linea Cat5 o anche Cat7 funzionerebbe?E fai passare un segnale analogico.
In IoT, le letture di dati a bassa frequenza sono comuni.Rilevare il livello di un serbatoio d'acqua, o la luce ambientale esterna, o l'umidità nel suolo o l'umidità in una serra.Questi stanno cambiando lentamente.Un punto dati può essere acquisito solo una volta al minuto.Ciò è in contrasto con la maggior parte delle applicazioni industriali.Per questi punti dati a bassa frequenza, forse la precisione potrebbe essere acquisita leggendo il segnale analogico molte volte in 2 secondi.Quindi eseguire filtri passa basso e passa alto in base al minuto precedente.Quindi calcola in base a una media corrente.
Considera IR se la distanza è grande e c'è una linea di vista
C'è una ragione per cui devi portare il segnale a una scheda così distante, piuttosto che avvicinare la scheda al segnale?Inoltre, cos'è il "basso costo"?Dollari?Decine di dollari?
Se vuoi davvero implementare una soluzione analogica per un sensore remoto, assicurati di tenere in considerazione il costo dei cavi.Potresti sposarti con una soluzione solo per scoprire che hai bisogno di un cavo magico per farlo funzionare bene.
Se tutto ciò che ti interessa è la temperatura, i termistori NTC da 10K sono molto economici, non richiedono molto da leggere e pochi ohm di resistenza del cavo hanno un effetto trascurabile sulla precisione.Li usiamo su doppini intrecciati non schermati per oltre 50 metri senza problemi nelle impostazioni di tipo ufficio.
@someonesomewheresupportsmonica.Penso che per i sensori di temperatura e semplici sensori basati sulla resistenza sia la strada da percorrere.
Dieci risposte:
TimWescott
2020-01-13 08:10:14 UTC
view on stackexchange narkive permalink

"Best practice" e "poco costoso" sono entrambi soggetti a opinione.

In tutti i casi, metterei un piccolo processore davvero economico sul sensore e lo farei parlare in digitale.Il modo 1950-1975 per farlo sarebbe 4-40 mA, oppure il telecomando invierà un segnale PWM o modulato in frequenza.

  • Fino a sei piedi circa, alimenta il sensore remoto da + 5 V (o + 3,3 V) ed esegui la seriale asincrona con riferimento a terra (pin UART) direttamente dal sensore al processore "principale".
  • Fino a una sessantina di piedi circa, alimenta il sensore remoto da qualsiasi cosa e rigeneralo dal telecomando.Probabilmente gli darei + 12V per l'overhead e userei un regolatore di commutazione "laggiù", ma puoi usare un regolatore lineare.Usa RS-422 con il telecomando impostato solo per inviare o usa RS-485 in half-duplex, con una sorta di protocollo in modo che i telecomandi parlino solo quando si parla.
RS-422 è un modo pratico per trasmettere su lunghe distanze.Ma questo progetto richiede di mantenere bassi i costi / complessità.Potrebbe non sembrare un grosso problema lanciare un microcontrollore in più per sensore, ma questo aumenta la complessità: più codice;più schede PCB da produrre;più componenti da rompere;e più cose da mantenere.Ma se esiste un componente RS-422/485 economico e semplice che converte semplicemente un segnale analogico in digitale e lo trasmette attraverso la linea, potrebbe funzionare.Tuttavia, complessità aggiunta, ma una complessità che può essere principalmente esternalizzata.
VillageTech
2020-01-13 08:56:45 UTC
view on stackexchange narkive permalink

L'altra soluzione può essere I2C - ci sono estensori, che consentono di creare bus fino a 100 m (300 piedi). Uno di questi è NXP P82B96. È molto utile nelle costruzioni amatoriali, perché non è costoso ed esiste anche in un case DIP-8 facile da montare. Inoltre consente di tradurre i livelli logici in tensioni più elevate (ad esempio 12V). Puoi trovare alcune note applicative sulle pagine NXP, ad esempio: https://www.nxp.com/docs/en/application-note/AN10658.pdf

Esiste anche la possibilità di costruire un bus optoisolato utilizzando P82B96: https://www.nxp.com/docs/en/application-note/AN10364.pdf

Un'altra possibilità è P82B715, ma probabilmente è meno utile perché la lunghezza massima del bus è di circa 50 m (150 piedi) e ci sono alcune altre limitazioni. C'è questa nota dell'app: https://www.nxp.com/docs/en/data-sheet/P82B715.pdf

L'utilizzo di I2C è una soluzione molto efficace, poiché sul mercato sono presenti molti chip di interfaccia economici (ADC, DAC, IO, sensori di temperatura ecc.) Quindi, dal lato del sensore, non è necessario utilizzare un MCU (e per creare software dedicato per questo MCU).

Personalmente, ho realizzato il mio impianto domotico utilizzando questa soluzione (P82B96 con isolamento ottico) e posso confermare che funziona molto bene ed è stabile ed affidabile.

Interessante!Il P82B96 sembra una soluzione praticabile.Aggiungere la complessità degli MCU insieme all'alimentazione e alle conversioni necessarie per comunicare su rs422 è eccessivo: più costo;più componenti da rompere;più codice da mantenere e più PCB da creare.Che tipo di alimentazione richiede il P82B96?
Paul
2020-01-14 00:40:29 UTC
view on stackexchange narkive permalink

Ho ottenuto ottimi risultati trasmettendo i dati dei sensori utilizzando la Controller Area Network (CAN).Ho un microcontrollore a 16 bit con un CAN integrato che si interfaccia tramite SPI a un convertitore A / D a 24 bit.Questo microcontrollore campiona ogni 20 ms e invia i dati tramite CAN a un altro microcontrollore (32 bit) situato a 50 metri di distanza.CAN dispone di un controllo avanzato degli errori che i sistemi meno recenti potrebbero non avere.Utilizza una coppia differenziale quindi è abbastanza immune al rumore.Microchip realizza l'MCP2515 che si interfaccia con CAN tramite SPI.

+1 C'è una ragione per cui la maggior parte dei dispositivi elettronici per auto utilizza CAN per i moduli per parlare tra loro, invece di qualcosa come RS-232 o RS-485.È semplicemente un sistema migliore e molto più affidabile.Per ragioni storiche ci sono altri sistemi utilizzati per OBD come ISO-9141 ("K-line") e J1939, ma per i moduli per parlare tra loro, CAN è fondamentalmente l'unico gioco in città in questi giorni.
Sebbene J1939 originariamente non menzionasse CAN, quasi certamente implica CAN in questi giorni.Potresti aver cercato J1850. Ma sì, CAN è un protocollo forte.A merito dell'idea di domotica c'è un contingente di automazione industriale che utilizza CAN come CANOpen.Se è abbastanza buono per loro ...
CAN è davvero impressionante.Ma richiede un microcontrollore all'estremità del sensore, o almeno così presumo.Sul mercato esistono componenti utilizzabili che possono ricevere un segnale analogico e trasmetterlo in un segnale CAN in uscita sul cavo?Il punto qui è che sto cercando di stare lontano da complessità, costi e codice extra.Ma se sul mercato è disponibile un convertitore CAN semplice ed economico che è abbastanza plug and play, potrebbe essere la strada da percorrere.
@foreverska Ah, il mio errore - sono passati un paio d'anni da quando ci ho lavorato, e i numeri si sono confusi nella mia testa.:)
@risingtiger Esistono per diverse definizioni di economico.AnalogX (Autosport Labs) è apparentemente $ 100.Per $ 150-200 probabilmente puoi acquistare un accoppiatore bus Beckhoff o WAGO CANOpen + modulo analogico da Ebay.
"CAN dispone di un controllo avanzato degli errori che i vecchi sistemi potrebbero non avere."Questo è un eufemismo.L'overhead è enorme: sono necessari un minimo di 52 bit per inviare 8 bit di dati, e questo prima di qualsiasi bit-stuffing.Non è un problema in questo caso, data la bassa velocità di trasmissione dati.Ma il risultato è un'affidabilità molto elevata su lunghe distanze.E puoi ottenere un up con entrambi i convertitori CANBUS e A / D per soldi molto economici - Digikey vende DSPIC33EP32GP502-I / SO per meno di 2 dollari in qtà 1. Non menzioni altri requisiti, quindi ti consiglio di andare aun posto come digikey e facendo qualche ricerca.
cstanto
2020-01-13 21:55:16 UTC
view on stackexchange narkive permalink

Il loop da 4-20 mA richiederà un'elettronica di azionamento complessa e una tensione di alimentazione più elevata (gli amplificatori di azionamento utilizzati prima erano 18 V).Sebbene sia ancora comunemente usato nei sistemi industriali fino ad oggi e abbia dei vantaggi, è davvero più un sistema legacy per quanto riguarda la maggior parte delle applicazioni, e per lo più utilizzato nel retrofit di sensori su sistemi daq più vecchi che precedono il diffuso digitalecomunicazioni disponibili oggi.

La soluzione più semplice sarebbe l'aggiunta di un driver RS-422 o RS-485 al circuito.Questi standard sono molto comuni nel settore dei sensori industriali.La maggior parte dei circuiti integrati viene fornita con un circuito suggerito anche nella scheda tecnica, in modo da poterli implementare senza troppi problemi.

I dispositivi 4-20mA * non * sono dispositivi legacy: sono il pane quotidiano nel mondo industriale e gli scaffali sono pieni di dispositivi nuovi di zecca di tutti i tipi che utilizzano un'uscita analogica 4-20mA.
@J ..., cstanto ha detto legacy * system *, non dispositivi legacy.Ovviamente esistono dispositivi moderni progettati per interfacciarsi con sistemi legacy e viceversa.Ma se si dovesse progettare un sistema da zero oggi, dubito che il protocollo di comunicazione sarebbe la scelta migliore.
@NateS.E sbaglieresti.È davvero una scelta eccellente, anche oggi.
@J Sì, capisco che i nuovi dispositivi siano ancora progettati e venduti con loop da 4-20 mA, ho trascorso 5 anni a lavorare per un'azienda che ha fatto proprio questo, ma una buona parte di quella popolarità è perché vengono montati in sistemi che non hannofunzionalità di comunicazione digitale più moderne.Consigliamo sempre le varianti CAN / RS232 / RS485 dei nostri strumenti e sensori su varianti da 4-20 mA a meno che il cliente non sia assolutamente controproducente e non sapesse come acquisire dati da un 4-20, poiché consentiva capacità di controllo e diagnostica più sofisticate.cont ...
... Con l '"industria 4.0" e la crescente spinta verso sensori intelligenti, i loop da 4-20 mA verranno eliminati dal mercato nel tempo per tutte le applicazioni tranne che di nicchia.
@cstanto Fair, e non nego l'utilità delle comunicazioni digitali per molti dispositivi, ma ci sono anche molti componenti semplici nelle macchine che in realtà non hanno bisogno di più di un semplice loop analogico, e i vantaggi di non complicare eccessivamente il sistemanon può essere trascurato neanche.È ancora un'altra cosa che può fallire, e sto sicuramente vedendo (e progettando) apparecchiature nuove di zecca con una buona quantità di I / O analogico nel mix I / O.In base alla mia esperienza, i produttori sono desiderosi di consigliare la cosa più recente solo per tenerti aggiornato su ciò che è là fuori - non significa che sia sempre la soluzione migliore.
@J Non ho dubbi che ci sia un elemento per vendere loro la cosa più recente per il gusto di farlo, e alcune applicazioni più semplici in realtà non richiedono molto di più di un'uscita analogica.Ma nella nostra esperienza, convincere le persone a configurare uscite come modbus su RS485 piuttosto che analogiche ha portato a molto meno tempo speso per fornire supporto tecnico ai clienti perché non capivano come convertire correttamente i loro 4-20mA in qualcosa di leggibile dall'uomo o come calibrareil loro sensore con potenziometri ecc.
Le comunicazioni digitali @J consentono di eseguire molte operazioni di diagnostica, calibrazione e manutenzione senza rimuovere il sensore / strumento dall'applicazione e aprirlo, il che può essere estremamente vantaggioso per gli utenti finali.Spesso, però, abbiamo scoperto che non veniva sempre preso in considerazione fino a quando non glielo abbiamo spiegato.
@cstanto Sembra che tu stia parlando di neofiti e piccoli tinker che non sanno davvero cosa stanno facendo.Le persone che costruiscono macchine serie multimilionarie non richiedono tale presa durante la progettazione e l'implementazione di un sistema.Se un sensore si rompe o necessita di calibrazione, è necessario rimuoverlo: non vedo come le comunicazioni digitali lo cambino, a dire il vero.Uso dispositivi sia digitali che analogici - molti, tutti i gusti, protocolli e tipi - e ognuno ha i suoi vantaggi e svantaggi.Penso ancora che entrambi abbiano un posto rilevante nell'automazione moderna.
@J No, decisamente parlando di persone che lavorano per grandi aziende.Non abbiamo avuto a che fare con armeggiatori e hobbisti.Sarai stupito di quante persone costruiscono macchine multimilionarie non hanno la più pallida idea di cosa stiano facendo.Ho visto ingegneri meccanici, manager, ecc. Senza esperienza in elettronica, raggruppati con sensori di approvvigionamento e sistemi daq.
@J In un sensore possono succedere cose che richiedono attenzione, senza che si rompa.Essere in grado di farlo senza smontare l'intero sistema per arrivarci non ha prezzo.Inoltre, non è necessario rimuovere i sensori per calibrarli, se il sistema è progettato correttamente.
@cstanto Questo è certamente vero per * alcuni * sensori, ma non è assolutamente vero per * tutti * i sensori.In ogni caso, è logico che le persone che disturbano il tuo supporto tecnico siano persone che non sanno cosa stanno facendo.Non sarà uno spaccato rappresentativo dei tuoi clienti.In ogni caso, l'I / O analogico è onnipresente, attuale e molto vivo.Come ogni cosa, ovviamente non è la soluzione giusta per tutto, ma, come qualsiasi cosa, ha ancora posti in cui rimane una scelta migliore.
jonathanjo
2020-01-15 20:04:22 UTC
view on stackexchange narkive permalink

Condivido la tua riluttanza a mettere un'intera CPU per sensore, tuttavia ...

RS-485 per comunicazioni sensore / uscita sensibili ai costi

Posso consigliare quanto segue, che è il modo in cui ora faccio questi tipi di dispositivi di sensore / output:

  • CPU locale molto piccola simile ad Arduino per posizione del sensore
  • Driver RS-485
  • PSU locale molto piccolo a modalità commutata
  • Potenza centralizzata
  • Collegamento tramite CAT-5 o cavo di alimentazione + coppia dati

Ciò significa che puoi mantenere tutta l'elettronica per sensore molto piccola, il che semplifica tutto (meno rumore, meno errori). Il software per parlare al sensore è dedicato: nessun multielaborazione o interleaving di funzioni, ha un'intera CPU. Se c'è un solo sensore metto l'adattatore RS-485 sul computer ricevente; più di solito ho un dispositivo Atmega con RS-485 ed ethernet e converto da e verso pacchetti UDP. Quindi il server, o i server, così facili da rendere ridondanti, possono svolgere il lavoro ovunque sia conveniente.

RS-485 è economico, semplice e facile da eseguire il debug se segui alcune semplici regole. Funziona su brevi o lunghe distanze. Scegli la tua velocità e imposta un protocollo semplice (facile per gli ingegneri del software) e funzionerà per sempre. Lo eseguo spesso a 9600 o anche più lentamente. Se disponi di LED adatti, puoi capire le rotture senza attrezzi. È sufficientemente semplice ho seguito un corso di "informatica fisica" in una scuola d'arte di New York per avviare una rete in un solo pomeriggio, basato su un formato molto simile a syslog (RFC 3164) più un CRC-32.

Don non usare radio Mi sono tenuto lontano da tutto ciò che è basato sulla radio tranne dove assolutamente impossibile eseguire cavi. Non si sa quando arriverà qualche macchina di interferenza: troppo spesso è qualcosa come i walkie-talkie della stampa o della polizia all'inaugurazione del mio evento.

Don non usare ethernet Usavo ethernet con POE, ma ho cambiato dopo aver dovuto fare molti ambienti robusti (esterni, subacquei, vicino a grandi macchine industriali). Non ci sono interruttori da mantenere, nessuna tensione POE. E nessuna corsa agli armamenti di 10BaseT, 100BaseT, 1000BaseT.

DNon usare bus di tipo board Una volta avevo un sistema (costruito da altri) che era SPI a 2 metri: funzionava quasi ma quando dovevamo spostarlo a 3 metri ... non funzionava mai. Alla fine l'ho sostituito con RS-485 come descritto qui.

CAN è fantastico ma risolve un problema difficile e quindi c'è molta complessità. Seriale e RS-485 sono assolutamente onnipresenti e questo ti farà risparmiare tempo ancora e ancora.

Le regole semplici

  • Half-duplex a due fili (mai a quattro fili)
  • A) Un master (PC) molti slave (sensori) oppure b) Un altoparlante e possibilmente molti ascoltatori
  • Se più di una dozzina di schiavi, pensa a a) collisioni eb) caricamento del bus
  • Potenza dal centro
  • Nessuna connessione locale all'estremità del sensore
    • Se ne hai bisogno, utilizza optoisolatori o relè
  • Qualunque sia il tuo protocollo, deve avere un checksum
  • Usalo come UDP e non come TCP
  • Eseguilo il più lentamente possibile
    • A 9600 probabilmente non avrai mai problemi
  • Oltre i 20 metri, prestare attenzione alla terminazione
  • Se sei fuori o sott'acqua o hai un grande potere nelle vicinanze, va comunque bene ma fai di più i compiti
  • Se hai bisogno di velocità (diciamo 1 Mbit / sec), va comunque bene ma fai più compiti a casa
  • Se hai bisogno di isolamento, va comunque bene ma fai più compiti a casa
  • Se hai bisogno di centinaia di nodi, va comunque bene ma fai più compiti a casa

Costi

I costi sono bassi, inferiori a $ 10,00 / unità, la maggior parte dipende dalla custodia e dai connettori. Di seguito trovi uno sconto di 10 prezzi su Digikey o Ebay.

Per una scheda una tantum o sperimentale utilizzo schede dalla Cina:

  • Convertitori da TTL a RS-485 da Ebay (£ 0,90)
  • Arduino "Pro Micro" o simile (con pulsante di ripristino!) (£ 1,80)

Per le schede dedicate preferisco chip individuali:

  • Chip 75176-pinout £ 0,70 + socket se lo spazio
  • ATTiny22 o simile £ 0,50-1,50

Il 75176-pinout è uno standard per i driver RS-485, il che significa che puoi utilizzare driver esotici se necessario (ad esempio con una protezione ESD più elevata).

In entrambi i casi, alimento 12VDC o 24VDC per l'alimentazione insieme a un doppino intrecciato per il segnale. Su CAT-5 funziona bene, o alimentazione + cavo dati. Su ogni unità un alimentatore Recom R-78E5.0-0.5 (£ 1,99 / unità). Questi dispositivi sono fantastici. Mettere un minuscolo alimentatore accanto a ciascuna unità ha fatto scomparire tutti i problemi di alimentazione e rumore.

A prova di futuro

Un ulteriore vantaggio di questo approccio è che pone tutti gli importanti problemi di compatibilità nel protocollo sulla linea RS-485. Se in futuro non è possibile ottenere lo stesso sensore o CPU, ottenerne uno diverso e ricreare. Se usi chip driver 75176-pinout sarai sempre in grado di ottenere sostituzioni.

E se hai bisogno di interfacciarti con qualcosa che vuoi isolato, è facile ottenere un driver isolato come quello di Digilent (anche se molto più costoso, circa £ 17,00). Ma senza alcuna riprogettazione del sistema di base, né ricodifica.

Riferimenti

Per una lettura corretta dell'RS-485, inizia con questi e segui i riferimenti.

  • Texas Instruments Guida alla progettazione RS-485 PDF
  • Texas Instruments AN 1057 Dieci modi per interfacce RS-485 antiproiettile PDF
  • Bob Perrin, "The Art and Science of RS-485", Circuit Cellar, luglio 1999. PDF

Specifiche

  • "Half-duplex a due fili" in realtà significa tre fili: un doppino intrecciato per il segnale e una terra, che spesso è la terra dell'alimentazione CC se i sistemi sono alimentati dalla stessa potenza.
  • Vedrai un'enorme disputa sul fatto che tu abbia bisogno di uno scudo, ma Perrin dice che non lo fai a meno che tu non abbia circostanze esotiche
  • In half-duplex, l'uscita che il driver è abilitato durante la trasmissione.
    • Su un PC in genere abiliti il ​​driver con RTS dell'uscita RS-232. Il kernel Linux ha una chiamata ioctl (8) per abilitarlo su linee seriali TIOCSRS485 doc
    • Su un microcontrollore utilizzi una linea IO per Driver-Enable DE . Puoi sempre ascoltare (collega Receive-Enable / RE a terra) o più comunemente unirti a DE e / RE e guidare dallo stesso pin IO . Si potrebbe plausibilmente utilizzare un pin IO e guidare / RE ma non l'ho mai visto.
  • Ci sono moltissime varianti di chip driver, ma scegline uno in un pacchetto 75176 poiché è il più comune
  • È una buona idea usare pacchetti DIL a 8 pin e una presa per il driver in modo che quando qualcuno lo collega in modo errato puoi sostituire il driver bruciato; inoltre è possibile utilizzare chip driver più robusti, se lo si desidera, o versioni a bassa EMI con velocità di rotazione inferiori.
Wow!Risposta molto ben strutturata.Avere un microcontrollore sul sensore è ancora un problema per me, in questa situazione.Anche se solo a malapena, se considero quanto sia economica anche una scheda Arduino completa.Quindi, la tua risposta sembra valida.
Gwyn
2020-01-14 03:52:15 UTC
view on stackexchange narkive permalink

Se stai cercando di mantenerlo semplice e non di convertirlo in formato digitale, il rilevamento della corrente è un modo economico e pratico.

Non deve essere un sistema da 4-20 mA. Sei libero di scegliere le correnti in base alle distanze, all'alimentazione disponibile e alla rumorosità elettrica del tuo ambiente. Un altro vantaggio è che hai solo bisogno di un cavo a 2 conduttori, quindi qualsiasi cosa (anche il cavo di alimentazione) andrà bene.

Ecco un esempio che ho usato con un cavo di circa 40m. L'LM35 emette una tensione proporzionale alla temperatura, utilizzata per guidare una corrente attraverso R2. R1 viene utilizzato per aumentare il limite inferiore delle temperature misurabili. Scegli R_sense in base alla tensione di alimentazione e agli ingressi del microcontrollore.

schematic

simula questo circuito - Schema creato utilizzando CircuitLab

Assicurati solo che la tensione minima attraverso l'alimentazione dell'LM35 sia rispettata nel tuo caso d'uso. Ci sono ulteriori informazioni nella scheda tecnica dell'LM35 su come scegliere i valori dei resistori.

Conosci qualche buona risorsa per imparare i metodi del ciclo corrente?
@risingtiger.Non ho la mia copia a portata di mano in questo momento, ma deve esserci qualcosa in "The Art of Electronics" di Horowitz e Hill.È il mio libro di riferimento per tutto ciò che è elettronico da quando ho preso una copia di seconda mano da studente ...
Graham
2020-01-14 16:50:46 UTC
view on stackexchange narkive permalink

Se hai un microfono adatto a ciascuna estremità e il tuo micro può gestire l'elaborazione richiesta, Ethernet è una ottima soluzione per le comunicazioni a lunga distanza. I cavi Ethernet Cat5 sono disponibili in quasi tutte le lunghezze desiderate e il loro ampio utilizzo in tutti i tipi di applicazioni consente di ottenere anche versioni rinforzate. Suggerimento: i cavi utilizzati per collegare i banchi audio e di illuminazione per le applicazioni sul palco sono davvero molto buoni - se il tuo PC non riesce a connettersi a Internet per un'ora o giù di lì, non è un grosso problema, ma se perdi suono e illuminazione per AC / DC giocando in uno stadio hai un conto enorme tra le mani!

Questo è più semplice se i micro a ciascuna estremità eseguono un sistema operativo "normale". Windows o Linux funzioneranno, anche i sistemi operativi commerciali come Wind River funzioneranno bene, e sono sicuro che ce ne sono altri. Windows non sarebbe la mia prima scelta, ma Linux sta diventando abbastanza bravo nell'elaborazione in tempo reale in questi giorni. Con un sistema operativo installato, puoi semplicemente utilizzare le porte IP per inviare i tuoi dati.

Potresti pensare che questo suoni instabile o troppo bello per essere vero, ma è esattamente così che SpaceX collega l'elettronica nei loro razzi.

Gli unici fili tra il palco e ciascun motore sono un cavo Ethernet e un cavo di alimentazione.

Se riescono a far funzionare un razzo nello spazio, sospetto che funzionerà anche per la tua applicazione. :)

Ho usato soluzioni simili a quelle che hai delineato nei progetti precedenti.Ma quei progetti avevano un budget molto più ampio per installazione.Questo particolare progetto richiede costi molto contenuti e manutenzione minima.Ma sì, Ethernet è davvero eccezionale nella sua ampia applicazione.
AaronD
2020-01-15 03:26:35 UTC
view on stackexchange narkive permalink

Mi piace di più la risposta di TimWescott, ma un'altra opzione è guardare un microfono professionale per il suono dal vivo e il lavoro in studio. Spesso corrono per centinaia di piedi in ambienti con illuminazione rumorosa e alimentazione CA, prima di essere amplificati a un livello utilizzabile dal resto dell'elettronica:

schematic

simula questo circuito - Schema creato utilizzando CircuitLab

La capsula microfonica stessa è elettricamente fluttuante, non è collegata alla custodia metallica con messa a terra, e i due fili del segnale vengono sottratti l'uno dall'altro e la differenza viene trasmessa come segnale previsto.

Quindi qualsiasi rumore attraversi la schermatura messa a terra del cavo e su entrambi i fili, viene cancellato dal ricevitore. Torcendoli li si avvicina il più possibile alla stessa posizione in modo che la stessa quantità di rumore arrivi a entrambi, e mantenendo le loro impedenze uguali consente loro di accettarlo nella stessa misura.


Se hai bisogno di alimentazione anche all'estremità del microfono e non vuoi fare confusione con le batterie, puoi utilizzare "Phantom Power":

schematic

simula questo circuito

R1,2,5,6 consente al segnale audio CA di esistere ancora sugli stessi fili e l'alta tensione della sorgente deve comunque ottenere una quantità utile di potenza attraverso di essi.

C1,2,3,4 blocca quella CC dai componenti audio.

R3,4 ristabilisce il livello DC medio, essendo stato bloccato dai limiti.

D1,2,3,4 blocca la tensione massima e minima per proteggere dai picchi causati dall'accensione o dallo spegnimento, collegando un cavo con esso, ecc.

R7 mantiene stabile il driver attivo in un cavo lungo (capacitivo).

R8 corrisponde a R7 per mantenere le impedenze uguali e mostra che il segnale non deve apparire su entrambi i fili. È necessaria solo una differenza di qualche tipo e uguale impedenza.

jcaron
2020-01-15 17:46:43 UTC
view on stackexchange narkive permalink

Non so quali siano i tuoi esatti vincoli, ma piuttosto che portare il segnale alla scheda, porterei la scheda al segnale e poi trasporterò i dati risultanti su Ethernet (o anche Wi-Fi, se ill'ambiente è adatto a questo).

Probabilmente andrebbe bene una scheda ESP8266 o ESP32 economica accanto al sensore.

In caso di problemi con l'alimentazione della scheda, è possibile utilizzare Power over Ethernet (PoE) per alimentarli, con iniettori e splitter economici a entrambe le estremità.

Esistono anche schede con PoE integrato, come ESP32-POE-ISO di Olimex o wESP32 disponibile su Crowd Supply.

richard1941
2020-01-17 10:24:13 UTC
view on stackexchange narkive permalink

Vorrei costruire un oscillatore la cui frequenza dipende dal termistore.La sua uscita potrebbe essere accoppiata a trasformatore per bloccare il rumore di modo comune.Si potrebbe realizzare un demodulatore la cui uscita dipende solo dalla frequenza e per niente dall'ampiezza.Il resto è solo un brutto problema di calibrazione.



Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...