Controllo e acquisizione dati via USB: la nuova scheda I/O con 32 canali e DAC a 8 bit

Dotata di 32 ingressi/uscite sia digitali che analogici e supportata da un protocollo di comunicazione ad hoc, si programma con lโ€™IDE Arduino.

Nonostante lโ€™esistenza di molte schede embedded, le interfacce USB per Personal Computer sono ancora molto richieste, soprattutto nelle applicazioni in cui bisogna eseguire dei controlli tramite software.

Per questo vogliamo proporvi una scheda in grado di comandare degli utilizzatori tramite relรฉ, acquisire segnali analogici o digitali tramite specifici ingressi, che sia gestibile da PC mediante un protocollo di comunicazione e infine che sia integrabile nelle vostre applicazioni in maniera semplice e veloce. Per poter fornire lโ€™alimentazione a tutti gli elementi circuitali, la nostra periferica non viene alimentata dai 5V della connessione USB ma da un ingresso dedicato a 12 Vcc.

Altra caratteristica rilevante di questo circuito รจ che la gestione degli utilizzatori รจ affidata ad un microcontrollore ATmega2560 montato su un modulo โ€œprotoboardโ€ (disponibile con codice MEGA2560PRODB) che ci dร  la possibilitร  sia di programmarlo con lโ€™IDE Arduino sia di implementare facilmente il protocollo di comunicazione nello sketch.

La compatibilitร  con il mondo Arduino porta vantaggi in termini di facilitร  di scrittura e debug dei programmi, per coloro che non dispongono di costosi sistemi di sviluppo dedicati. Per quanto riguarda le linee di ingresso e uscita, questo circuito dispone di ben 32 I/O cosรฌ ripartiti: 8 ingressi digitali, 8 uscite digitali, 8 uscite analogiche, altrettanti ingressi ed eventualmente puรฒ essere abbinato ad un modulo relรฉ ad 8 canali. Per gli otto ingressi analogici, la gestione รจ affidata a convertitori ADC e DAC a 10 bit. Per il funzionamento dellโ€™interfaccia รจ disponibile un apposito protocollo attraverso il quale รจ possibile leggere i livelli dei segnali presenti sugli ingressi e comandare tutte le uscite.

Per facilitare il test dei programmi, abbiamo previsto sulla scheda alcune risorse hardware (essenzialmente dei LED) che consentono di verificare immediatamente il corretto funzionamento della scheda e dei programmi caricati; in sostanza lโ€™interfaccia si comporta anche come una demoboard.

Schema elettrico della scheda I/O USB

Per meglio comprendere il funzionamento della scheda diamo subito unโ€™occhiata allo schema a blocchi. La sezione di comunicazione col PC fa capo alla board basata su ATmega2560 (siglata IC7 nello schema elettrico), la quale integra un transceiver USB/TTL di tipo CP2102/9 della Silabs, che provvede allโ€™interfacciamento USB tra il microcontrollore (le linee dellโ€™UART, per lโ€™esattezzaโ€ฆ) ed il computer; la scheda, quando collegata ad un PC, viene alimentata tramite i 5 V forniti dalla porta USB ed รจ galvanicamente accoppiata attraverso la massa, comune a quella dello stadio di alimentazione.

Dispone di 54 ingressi/uscite digitali (di cui 14 possono essere utilizzate come uscite PWM), 4 UART (porte seriali), 16 ingressi analogici, un oscillatore quarzato a 16 MHz, un connettore micro USB, un header per lโ€™ICSP e un pulsante di reset.

Come accennato, la scheda puรฒ essere alimentata direttamente tramite il connettore microUSB (per la programmazione o la simulazione di applicazioni a basso assorbimento di corrente) o tramite il pin 5V. Due LED a bordo e LD1 e LD2 sulla scheda, segnalano il colloquio sullโ€™USB attraverso il convertitore USB/TTL della Silabs.

Mentre la sezione dโ€™ingresso dellโ€™IC7 viene alimentata con i 5 volt presenti sulla porta USB, tutto il resto del circuito viene fatto funzionare con lโ€™alimentazione esterna proveniente dalla presa jack PWR, la quale alimenta un regolatore di tensione lineare (VR1) che ricava 5V ben stabilizzati e puรฒ erogare la corrente richiesta.

Questa parte circuitale alimenta direttamente i buffer degli ingressi (IC3), il DAC (IC4), gli operazionali e anche parte del modulo basato sullโ€™ATmega2560. Gli otto ingressi analogici fanno capo ciascuno ad un amplificatore operazionale in configurazione non-invertente, di cui รจ possibile scegliere tra due valori del guadagno in tensione: 1 e 2. Infatti, prendendo a riferimento lโ€™operazionale IC2a (fermo restando che quanto spiegato per questo vale per tutti gli altri operazionali presenti nel circuito…) le resistenze R37 ed R53 sono di ugual valore (10 kohm ciascuna) quando il jumper AD8 รจ aperto lโ€™amplificatore ha guadagno unitario, mentre con il predetto jumper chiuso il guadagno รจ pari a:

Gv = (10+10) kohm / 10 kohm

quindi, appunto, 2 volte in tensione.

Lโ€™uscita di ciascuno degli operazionali fornisce la propria tensione unidirezionale ad un ingresso analogico del modulo IC7, ovvero A7 legge lโ€™uscita di IC2a, A6 quella di IC2b, A5 quella di IC2c e via di seguito.
Per effetto di questa configurazione e dellโ€™A/D converter a 10 bit integrato nel modulo Arduino, il valore della tensione di ciascun ingresso INADC (0รท5V o 0รท10V a seconda di come viene impostato il dip switch sulla retroazione, che ad esempio per IC2a รจ lโ€™AD8) viene convertito in un valore numerico, con la possibilitร  di apprezzare valori dellโ€™ordine di 10 mV, vale a dire con risoluzione di 10 mV.

Le otto uscite analogiche utilizzano, invece, un comune DAC a 8 bit; anche in questo caso lโ€™escursione della tensione (questa volta dโ€™uscita) puรฒ essere compresa tra 0 e 5 V o tra 0 e 10 V, a seconda di come viene impostato il dip switch sulla retroazione dellโ€™operazionale sulle uscite OUTDAC. Come desumibile dallo schema elettrico, mentre lโ€™acquisizione dei segnali agli ingressi analogici viene effettuata internamente al modulo Arduino, la conversione digitale/analogico viene effettuata da un DAC esterno, pilotato dallโ€™IC7 attraverso tre linee binarie che sono le D10, D51 e D52, utilizzate rispettivamente come LOAD, DATA e CLK (clock) per il latch dโ€™ingresso dellโ€™IC4.

Questโ€™ultimo รจ un DAC ad ingresso seriale, dove si caricano 8 bit alla volta inviati serialmente allโ€™input DATA e scanditi dal clock, ogni volta che il piedino LOAD commuta a livello alto.

Il DAC utilizzato nella scheda รจ un TLC5628C capace di fornire in uscita una tensione da 0 a 5V in funzione del valore che la relativa stringa ad 8 bit ricevuta sul pin DATA presenta; ogni volta che viene completato il caricamento di una stringa di 8 bit, avviene la conversione in blocco e la rispettiva uscita presenta il valore corrispondente.

Essendo, ciascuna tensione, espressa con 8 bit e quindi con valore decimale compreso fra 0 e 255, sono possibili 256 valori discreti e quindi si ottiene una risoluzione di 40 mV, nel senso che la tensione allโ€™uscita analogica puรฒ variare a scatti di 40mV.

Piรน esattamente, il DAC รจ a otto canali, tante quante vogliamo che siano le nostre uscite analogiche, pertanto il modulo Arduino ATmega2560 invia una stringa complessivamente formata da 64 bit di dati: 8 per ciascun canale.

Il controllo digitale del TLC5628C avviene tramite un semplice bus seriale a tre fili compatibile con livelli CMOS/TTL e facilmente interfacciabile a tutti i piรน diffusi dispositivi a microprocessore e microcontrollore. La word di comando รจ in realtร  a 12 bit e comprende gli 8 bit di dati, tre bit di selezione canale DAC e un bit che consente la selezione della gamma di tensione dโ€™uscita: nel nostro caso la stringa imposta un valore massimo della tensione di uscita pari a Vref (x1) e quindi, con i valori attuali di R62 ed R63, unโ€™escursione compresa fra 0 e 2,5V.

I registri DAC sono a doppio buffer, consentendo un set completo di nuovi valori da scrivere sul dispositivo, tutte le uscite DAC vengono aggiornate contemporaneamente tramite il controllo interno LDAC. La funzione di refresh simultaneo implementata nel componente fa in modo che i dati degli 8 canali siano memorizzati fino alla successiva ricezione dei dati e quindi aggiornati simultaneamente alle uscite.

Unโ€™interessante funzione offerta dal nostro DAC รจ il ripristino allโ€™accensione, che consente di memorizzare gli ultimi valori e riproporli allโ€™accensione.

I singoli stati DAC producono una tensione di uscita che varia tra uno o due volte la tensione di riferimento applicata a REF1-REF2 rispetto a GND.

Come vedete nello schema elettrico del circuito, ciascuna uscita del DAC pilota lโ€™ingresso di uno stadio amplificatore ad operazionale in configurazione non-invertente con guadagno in tensione selezionabile fra 1 e 4, rispettivamente lasciando lo switch aperto oppure chiudendolo; prendendo ad esempio IC5d (ma quanto esposto vale per tutti gli altri operazionali posti sullโ€™uscitaโ€ฆ) se DA1 viene lasciato aperto, lโ€™operazionale guadagna 1 (funziona da buffer) mentre se si chiude il guadagno diviene pari a:

Gv = (30+10) kohm / 10 kohm
quindi 4 volte in tensione.

Gli operazionali relativi alle otto linee di uscita sono contenuti a quattro per volta in integrati di tipo TLV274 della Texas Instruments, i quali sono dei quadrupli operazionali con uscita rail-to-rail, ossia capaci di sfruttare praticamente lโ€™intera tensione di alimentazione, quindi di avere lโ€™uscita la cui tensione spazia tra massa e il potenziale applicato al piedino 4 (12V). Lโ€™utilizzo degli operazionali consente di disporre su ciascuna uscita di una corrente di circa 100 mA che il convertitore DAC integrato nel modulo Atmega (IC7) impiegato in questa sezione non sarebbe in grado di erogare.

Passiamo adesso agli 8 ingressi e alle 8 uscite digitali, che sono abbastanza veloci da spiegare: gli ingressi accettano livelli TTL (0/5V) e nel caso di tensioni piรน alte รจ sufficiente fare ricorso a dei partitori resistivi; i DIGITAL INPUTS, come vedete, si avvalgono di resistori di pull-up integrati nella rete resistiva RA2 e di un line-driver ULN2803, composto da un Darlington NPN per ciascuna delle 8 linee che gestisce.

Il pull-up รจ necessario perchรฉ ciascun ingresso รจ considerato attivo a zero logico (ossia chiuso a massa) in quanto il line-driver inverte lo stato logico e lo presenta alla rispettiva linea dellโ€™IC7, inizializzata come input; siccome ciascun Darlington dellโ€™ULN2803 รจ open-collector, viene mantenuto a livello alto quando รจ interdetto, mediante una resistenza della rete resistiva RA3, in serie alla quale abbiamo posto un LED per rendere visibile lo stato logico, secondo questa convenzione: LED acceso significa ingresso aperto (e Darlington in saturazione), mentre LED spento significa input a zero logico. Per quanto riguarda le 8 uscite digitali (DIGITAL OUTPUTS) corrispondono ciascuna ad una linea di I/O dellโ€™IC7 inizializzata come output ed ognuna pilota un LED attraverso il rispettivo resistore di limitazione della corrente, facente parte della rete resistiva RA1. Considerato lโ€™assorbimento di ciascun LED, ogni uscita puรฒ erogare circa 30 mA massimi.

Volendo pilotare utilizzatori elettrici che devono essere galvanicamente isolati dalla scheda o che necessitino di una certa corrente, รจ possibile collegare al pin-strip delle uscite (OUTDIG) una scheda a relรจ, come ad esempio la Modulo 8 relรจ 5 Vdc 10A della Futura Elettronica, reperibile con il Codice prodotto RELAY8CH.

A riguardo considerate che la nostra scheda dโ€™interfaccia prevede giร  dei fori per poter applicare, tramite colonnine distanziali da 25 mm, la scheda relรจ, non a caso nelle foto in queste pagine potete vedere lโ€™insieme delle due unitร .

Concludiamo la descrizione della scheda con il blocco di alimentazione, che prende tensione (tipicamente 12Vcc) dalla presa jack PWR e la filtra mediante i condensatori C1 e C2 prima di inviarla al regolatore lineare VR1, un comune 7805, affinchรฉ esso ricavi 5Vcc con i quali funziona lโ€™intera logica, oltre alla โ€œbatteriaโ€ di amplificatori operazionali degli input analogici.

Gli operazionali dโ€™uscita, invece, sono alimentati direttamente con i 12V presenti allโ€™ingresso del regolatore, ragion per cui la tensione applicata a PWR dovrebbe essere stabilizzata o comunque non dovrebbe scendere al disotto degli 11V, per assicurare la piena ampiezza della tensione alle uscite analogiche (10V). Completano questa sezione i condensatori di filtro sparsi opportunamente e in gran quantitร  in varie zone del circuito stampato, in prossimitร  dei circuiti integrati piรน sensibili ai disturbi e chiaramente della board Arduino ATmega 2560, che รจ un componente critico, dato che contiene il โ€œcervelloโ€ della demoboard.

Collaudo

Per alimentare la nostra scheda รจ necessario fare uso di una fonte (non necessariamente stabilizzata) di alimentazione che eroghi una tensione di 12รท13 volt in continua ed una corrente di 500 mA; tale corrente รจ sufficiente per il funzionamento, anche con a bordo una scheda relรจ a 8 canali.

La verifica del funzionamento del circuito va svolta in due fasi; in un primo tempo va controllato il funzionamento dellโ€™hardware mentre successivamente andremo a verificare che il circuito risponda ai comandi software, almeno di quelli base.

Alimentiamo dunque il circuito e, con un cavo USB, colleghiamo lโ€™interfaccia al PC.

Se tutto funziona correttamente i LED LD3 (presenta alimentazione esterna) e LD4 si illumineranno, mentre LD1 e LD2 (connessione USB) inizieranno a lampeggiare dopo il corretto riconoscimento della scheda da parte del PC.

Gli altri sedici LED di bordo che segnalano lo stato delle uscite e degli ingressi digitali si illuminano quando le uscite sono attive o gli ingressi vengono posti a massa.

Per quanto riguarda i jumper presenti nel circuito, ricordate che vanno utilizzati per modificare (da 5 a 10 volt) lโ€™escursione delle tensioni analogiche di ingresso e uscita.

Elenco Componenti:

R1:1,2 kohm (0603)
R2 R3, R4: 470 ohm (0603)
R5: 4,7 kohm (0603)
R6, R7, R8, R9, R10, R11, R12, R13: 47 ohm (0603)
R22รทR61: 10 kohm (0603)
R14รทR21: 30 kohm (0603)
R62, R63: 1 kohm (0603)
RA1, RA3: Array resistenze 8x1 kohm + C
RA: Array resistenze 8x10 kohm + C
C1, C3, C5: 100 nF 50 VL ceramico (0603)
C2: 470 F 16 VL elettrolitico (รธ 8 mm)
C4, C6, C11: 220 ยตF 6,3 VL elettrolitico (รธ 6.3 mm)
C7, C8, C10: 100 nF 50 VL ceramico (0603)
C9: 4,7 ยตF 25 VL elettrolitico (รธ 4 mm)
LD1: LED giallo (0805)
LD2, LD6รทLD21: LED rosso (0805)
LD3, LD4: LED verde (0805)
VR1: L7805CD2T-TR
IC3: ULN2803ADW
IC4: TLC5628CDW
IC1, IC2, IC5, IC6: TLV274IDR
IC7: Modulo Atmega2560
DA1รทDA8: Strip maschio 2 vie (16 pz.)
AD1รทAD8: Strip maschio 2 vie (16 pz.)
INADC, OUTDAC, INDIG: Strip maschio 10 vie (3 pz.)
OUTDIG: Strip maschio 12 vie
RESET: Microswitch SKQGAKE010
PWR: Plug DC 5.5/2.1
Varie
- Strip femmina 21x2 vie
- Strip femmina 16x2 vie
- Strip femmina 3x2 vie
- Jumper (16 pz.)
- Circuito stampato S1568 (140x110 mm)

 

Utilizzo della scheda

Per una prova piรน approfondita delle funzionalitร  della scheda รจ possibile ricorrere semplicemente alla gestione da un qualsiasi programma di terminale, dopo aver impostato la comunicazione sulla porta COM virtuale assegnata alla porta USB del modulo Arduino ATmega2560; in alternativa รจ possibile impartire i comandi, secondo lo stesso protocollo che descriveremo tra breve, nella finestra del Monitor Seriale dellโ€™IDE Arduino.
Di tale protocollo e dei comandi corrispondenti dovete tenere conto nella stesura degli sketch delle applicazioni che andrete a realizzare.

Protocollo di comunicazione

Per la nostra scheda abbiamo creato un protocollo ad-hoc ed un set di comandi impartibili dallโ€™IDE Arduino (aprendo una sessione di Monitor Seriale) o da terminale (Mobaxterm, Telnet, Terminale di Windows o Hyper Terminal, Shell Bash di Linux ecc.) che descriveremo distinti per sezione del circuito: ingressi analogici e digitali, impostazione uscite analogiche e digitali e via di seguito.

Richiesta stato delle uscite digitali
Il comando corrispondente รจ composto da 8 caratteri i cui primi 4 non devono subire variazioni, mentre i successivi 3 sono dinamici in base al tipo di richiesta che si vuole fare, ovvero richiesta di stato o commutazione uscita.
La struttura del comando รจ quella proposta qui:

In questo formato:
โ€ข n: rappresenta lโ€™uscita. Se si imposta X il comando riguarda tutte le uscite
โ€ข s: puรฒ assumere H (stato alto), L (stato basso), ? (richiesta stato)

Esempio di comandi:
Impostare lโ€™uscita 5 allo stato alto: * * D O 5 H #
Impostare lโ€™uscita 1 allo stato basso: * * D O 1 L #
Impostare tutte le uscite allo stato basso: * * D O X L #
Richiedere lo stato dellโ€™uscita 7: * * D O 7 ? #
Richiedere lo stato di tutte le uscite: * * D O X ? #

Richiesta stato ingressi digitali
Il comando del caso รจ composto da 8 caratteri i cui primi 4 non devono subire variazioni, come pure lโ€™ultimo, mentre gli altri 2 sono dinamici in base al numero dellโ€™ingresso interessato.
La risposta indicherร  con โ€œHโ€ se lโ€™ingresso รจ alto (chiuso verso 5V), oppure โ€œLโ€ se รจ basso (chiuso verso GND o non collegato).
La struttura del caso รจ quella proposta di seguito.

In questo comando, n: rappresenta lโ€™ingresso.
Se si imposta X il comando riguarda tutti gli ingressi.

Esempio di comando:
Richiedere lo stato dellโ€™ingresso 7: * * D I 7 ? #
Richiedere lo stato di tutti gli ingressi: * * D I X ? #

Richiesta stato della porta per gli ingressi analogici
Il comando in questione effettua la richiesta del valore della corrispondente porta del microcontrollore (0รท255) ed รจ composto da 8 caratteri i cui primi 4 non devono subire variazioni, come pure lโ€™ultimo, mentre gli altri 2 sono dinamici in base al numero dellโ€™ingresso interessato.
La riposta indicherร  il valore da 0 a 1.024 relativa allโ€™ingresso scelto, ovvero alla porta di I/O del modulo ATmega2560 corrispondente.
Se il ponticello dellโ€™operazionale associato allโ€™ingresso รจ chiuso, si potrร  fornire allโ€™ingresso fino a 5V, quindi il valore 1.024 corrisponderร  a 5V.
Se il ponticello rimarrร  aperto si potrร  applicare una tensione massima di 10V, pertanto in tal caso leggendo 500 si avrร  la corrispondenza a 5V.
Il formato di questo comando รจ quello schematizzato nella tabella qui di seguito.

In questo comando, che prevede una risposta, n: rappresenta lโ€™ingresso. Come per gli altri comandi, se si imposta X il comando riguarda tutti gli ingressi.

Esempio di comando:
Richiedere lo stato dellโ€™ingresso 7: * * A I 7 ? #
Richiedere lo stato di tutti gli ingressi: * * A I X ? #
Un esempio di risposta รจ:

# A I 0 2 0 5 0 6 #

dove 0506 รจ il valore letto per lโ€™ingresso 2.

Richiesta tensione agli ingressi analogici
Questo comando richiede il valore in tensione 00.00V-10.00V presente allโ€™ingresso specificato ed รจ composto da 7 caratteri, i cui primi 4 non devono subire variazioni, come pure lโ€™ultimo, mentre il successivo รจ dinamico in base al numero dellโ€™ingresso interessato. La risposta indicherร  il valore da 0 a 1.024 dellโ€™ingresso scelto. Se il ponticello dellโ€™ingresso รจ chiuso, si potrร  collegare allโ€™ingresso massimo 5V, quindi il valore 1.024 corrisponderร  a 5V. Se il ponticello rimarrร  aperto si potrร  collegare massimo 10V, pertanto in tal caso leggendo 500 si avrร  la corrispondenza a 5V.
Il formato รจ del tipo proposto qui di seguito.

Nella sintassi del comando, il parametro n: rappresenta lโ€™ingresso da 1 a 8. Se si imposta X, il comando viene eseguito per tutti gli ingressi della scheda contemporaneamente.

Esempio di comando:
Richiedere lo stato dellโ€™ingresso 7:

* * A V 7 ? #

Richiedere lo stato di tutti gli ingressi:

* * A V X ? #

Un esempio di risposta รจ il seguente:

# A V 4 0 7 . 0 6 #

dove 07.06 รจ il valore letto per lโ€™ingresso 4

Imposta uscita analogica da valore intero 000-255
Il comando in questione รจ composto da 10 caratteri, i cui primi quattro non devono subire variazioni, come pure lโ€™ultimo: da protocollo sono fissi e proprietari. Invece gli altri 5 devono essere impostati in base allโ€™operazione da eseguire, come spiegheremo tra breve. Se il ponticello legato allโ€™ingresso viene chiuso, il valore di tensione corrispondente spazierร  tra 0V e 10V (Vmax); invece se il ponticello si tiene aperto, la tensione corrispondente varierร  tra 0V e 5V (Vmax).
Il formato di detto comando รจ quello schematizzato qui di seguito.

In questo tipo di comando:
โ€ข n: rappresenta lโ€™uscita, obbligatori (da 1 a 8). Se si imposta X il comando riguarda tutte le uscite
โ€ข ddd: da 000 a 255 rappresenta il valore che si desidera impostare allโ€™uscita. 000=0V โ€“ 255=Vmax.

Esempio di comando:
Impostare uscita 7 al valore 200: * * A O 7 2 0 0 #
Impostare tutte le uscite al valore decimale 100:

* * A O X 1 0 0 #

Un esempio di risposta รจ quello proposto qui di seguito:

# A O 7 2 0 0 #

200 รจ il valore impostato sullโ€™uscita 7

Imposta uscita analogica tramite valore in tensione 00.00V-10.00V
Questo comando รจ composto da 11 caratteri, i cui primi quattro non devono subire variazioni, come pure lโ€™ultimo, mentre il successivo รจ dinamico e si imposta in base al numero dellโ€™ingresso interessato. I successivi 5 bit rappresentano la tensione da impostare allโ€™uscita corrispondente.
Se il ponticello dellโ€™ingresso รจ chiuso, si potranno avere al massimo 5V, altrimenti allโ€™uscita si arriverร  fino a una tensione di 10V; pertanto in tal caso, impostando il valore 500 si avranno in uscita 5 volt.
Il formato della stringa รจ quello proposto qui di seguito.

In questo caso:
โ€ข n: rappresenta lโ€™ingresso da 1 a 8. Se si imposta X il comando riguarda tutti gli ingressi
โ€ข dd.dd: rappresenta il valore di tensione compreso tra 00.00 e 10.00

Esempio di comando:
Imposta lโ€™uscita 7 a 2.3V: * * A V 7 0 2 . 3 0 #
Imposta tutte le uscite a 2,3V: * * A V X 0 2 . 3 0 #

Un esempio di risposta รจ il seguente:

# A V 4 0 7 . 0 6 #

dove 07.06 รจ il valore letto per lโ€™ingresso 4

Conclusioni

La scheda dโ€™interfaccia che vi abbiamo proposto in queste pagine รจ una periferica di I/O completa e idonea ad eseguire lโ€™acquisizione, il comando ed anche il controllo a 360ยฐ di apparati e utilizzatori; si integra molto bene nella domotica ed anche nella gestione di sistemi dโ€™allarme, dโ€™illuminazione e di processi automatizzati tramite Personal Computer.
Come giร  esposto in questo articolo, le uscite digitali sono a livello TTL per poter sia essere lette da altri dispositivi e sistemi, sia essere impiegate per comandare schede attuatrici, delle quali la board a relรฉ da 8 canali รจ solo un esempio.

Lascia un commento

Il tuo indirizzo email non sarร  pubblicato. I campi obbligatori sono contrassegnati *

Menu