ultimo aggiornamento 2 febbraio 2013


 
Arduino UNO

Arduino UNO -  parallelo

Arduino UNO -  seriale
Arduino DUE

Arduino DUE -  parallelo

Arduino DUE -  seriale

Collegamento PARALLELO con Arduino UNO

La Parallax Digital I/O Board Kit può essere collegata alle schede della serie Arduino come : Arduino 2009, UNO, UNO R3, e suoi cloni per pilotare circuiti ad alta tensione, in quanto consente di controllare fino a 8 uscite isolate e di leggere fino a 8 ingressi optoisolati.
Gli ingressi possono sopportare una tensione da 5-30VDC (AC compatibile) e le uscite possono essere sia dotate di relè meccanici oppure a stato solido in grado di commutare carichi fino a 12A , come ad esempio ventole di raffreddamento, solenoidi, elementi di riscaldamento e altro ancora.
I circuiti logici operano a 5V, 8 led verdi e 8 led rossi indicano lo stato di input e output, 2 led gialli indicano la presenza di tensione sulla linea di alimentazione dei relè e della logica. Gli ingressi possono essere configurati per gestire diverse tensioni di ingresso.
La scheda di interfaccia utilizza uno shield, che nel prototipo è realizzato con una Proto shield V.4 , sulla scheda è presente un regolatore di tensione

 

homotix

Lo schema di utilizzo è semplice, è presente un connettore X1 (10+10 pin)  i cui pin sono collegati alle varie porte digitali di Arduino.   Essendo il collegamento parallelo ogni porta comanda un relè della scheda.
Il regolatore IC1 tipo LM1086 (tensione fissa 3,3V) è opzionale. tramite il jumper JP1, è possibile scegliere il valore di VDD da inviare alla scheda Digital I/O.
Il programma Test_digital_io_1.ino permette di testare la scheda.

Lato superiore della scheda con i vari connettori utilizzati per i test

Il cablaggio non è dei migliori!

LM1086 - 1.5A Low Dropout Positive Regulators

Piedinatura Datasheet Foto dell'integrato

 

Pin di Arduino utilizzati nel programma
 

Pin

Descrizione

2

Uscita comando relè 1

3

Uscita comando relè 2

4

Uscita comando relè 3

5

Uscita comando relè 4

6

Uscita comando relè 5

7

Uscita comando relè 6

8

Uscita comando relè 7

9

Uscita comando relè 8

Programma
Test_digital_io_1.ino

Listato del programma per testare il collegamento parallelo

/*
 Test_digital_io_1.ino
 Il programma ha il compito di testare il funzionamento
 della DIGITAL I/O BOARD PARALLAX
 Test delle uscite - Collegamento parallelo
   
 Ultima modifica il 31/12/2012
 da Adriano Gandolfo <https://www.adrirobot.it>
 This example code is in the public domain.
 */

byte accensione_led[15][8] = 
{{0,0,0,0,0,0,0,0}, // = 0
{1,1,1,1,1,1,1,1},  // = 1
{0,0,0,0,0,0,0,0},  // = 2
{1,0,1,0,1,0,1,0},  // = 3
{0,0,0,0,0,0,0,0},  // = 4
{0,1,0,1,0,1,0,1}, // = 5
{0,0,0,0,0,0,0,0}, // = 6
{1,0,0,0,0,0,0,0}, // = 7
{0,1,0,0,0,0,0,0}, // = 8
{0,0,1,0,0,0,0,0}, // = 9
{0,0,0,1,0,0,0,0}, // = 10
{0,0,0,0,1,0,0,0}, // = 11
{0,0,0,0,0,1,0,0}, // = 12
{0,0,0,0,0,0,1,0}, // = 13
{0,0,0,0,0,0,0,1}}; // = 14

void setup() {                
  pinMode(2, OUTPUT); //RLY1
  pinMode(3, OUTPUT); //RLY2
  pinMode(4, OUTPUT); //RLY3
  pinMode(5, OUTPUT); //RLY4
  pinMode(6, OUTPUT); //RLY5
  pinMode(7, OUTPUT); //RLY6
  pinMode(8, OUTPUT); //RLY7
  pinMode(9, OUTPUT); //RLY8
}
    
void TEST(byte digit) {
  byte pin = 2;
  for (byte Count = 0; Count < 8; ++Count) {
    digitalWrite(pin, accensione_led[digit][Count]);
    ++pin;
  }
}

void loop() {
  for (byte count = 15; count > 0; --count) {
   delay(1000); // pausa in millisecondi
   TEST(count - 1); 
  }
}

 

Collegamento SERIALE con Arduino UNO

La Parallax Digital I/O Board Kit può essere collegata alle schede della serie Arduino come : Arduino 2009, UNO, UNO R3, e suoi cloni per pilotare circuiti ad alta tensione, in quanto consente di controllare fino a 8 uscite isolate e di leggere fino a 8 ingressi optoisolati.
Gli ingressi possono sopportare una tensione da 5-30VDC (AC compatibile) e le uscite possono essere sia dotate di relè meccanici oppure a stato solido in grado di commutare carichi fino a 12A , come ad esempio ventole di raffreddamento, solenoidi, elementi di riscaldamento e altro ancora.
I circuiti logici operano a 5V, 8 led verdi e 8 led rossi indicano lo stato di input e output, 2 led gialli indicano la presenza di tensione sulla linea di alimentazione dei relè e della logica. Gli ingressi possono essere configurati per gestire diverse tensioni di ingresso.
La scheda di interfaccia utilizza uno shield, che nel prototipo è realizzato con una Proto shield V.4 , sulla scheda è presente un regolatore di tensione

Lo schema di utilizzo è semplice, è presente un connettore X1 (5+5 pin)  i cui pin sono collegati alle varie porte digitali di Arduino.   Sono presenti i pin per comandare le uscite e per leggere gli ingressi provenienti dalla Digital I/O collegata in seriale.
Il regolatore IC1 tipo LM1086 (tensione fissa 3,3V) è opzionale. tramite il jumper JP1, è possibile scegliere il valore di VDD da inviare alla scheda Digital I/O.
Il programma Test_digital_io_2.ino permette di testare la scheda, in questo caso è possibile attivare i relè presenti sulla scheda.

Lato superiore della scheda con i vari connettori utilizzati per i test

Il cablaggio sul lato inferiore della scheda. Anche data la sua complessità non è dei migliori!

LM1086 - 1.5A Low Dropout Positive Regulators

Piedinatura Datasheet Foto dell'integrato

 

Pin di Arduino utilizzati nel programma
 

Pin

Descrizione

5

Data RLY

6

SCLK_RLY

8

LAT_RLY

10

/OE_RLY


Programma
Test_digital_io_2.ino

Listato del programma per testare il collegamento seriale

/*
Test_digital_io_2.pde
 Il programma ha il compito di testare il funzionamento
 della DIGITAL I/O BOARD PARALLAX
 Test delle uscite - Collegamento seriale
   
 Ultima modifica il 31/12/2012
 da Adriano Gandolfo <https://www.adrirobot.it>
 This example code is in the public domain.
 */

//Definizione dello stato delle 8 uscite
byte values[]={
  B11111111,
  B00000000,
  B01010101,
  B10101010,
  B00000000,
  B10000000,
  B01000000,
  B00100000,
  B00010000,
  B00001000,
  B00000100,
  B00000010,
  B00000001,};

// Definizione dei pin Arduino connessi
// al connettore della scheda Digital i/o
// DATA_RLY connesso a DS del 74HC595
int DATA_RLY = 5;
// SCLK_RLY connesso al SH_CP del 74HC595
int SCLK_RLY = 6;
// LAT_RLY connesso al ST_CP del 74HC595
int LAT_RLY = 8;
// /OE_RLY connesso a OE del 74HC595
int OE_RLY = 10;
 
void setup(){
  pinMode(LAT_RLY, OUTPUT);
  pinMode(SCLK_RLY, OUTPUT);
  pinMode(DATA_RLY, OUTPUT);
  pinMode(OE_RLY, OUTPUT);
  //Attiviamo le uscite del 74HC595
  digitalWrite (OE_RLY, LOW);
}
// Il ciclo emette in uscita i dati
// presenti nell'array
void loop(){
    for(int i=0;i<13;i++){
    digitalWrite(LAT_RLY, LOW);
    shiftOut(DATA_RLY, SCLK_RLY, MSBFIRST, values[i]);
    digitalWrite(LAT_RLY, HIGH); 
    delay(500);}
  }

 

Collegamento PARALLELO con Arduino DUE

La Parallax Digital I/O Board Kit può essere collegata alla scheda Arduino DUE per pilotare circuiti ad alta tensione, in quanto consente di controllare fino a 8 uscite isolate e di leggere fino a 8 ingressi optoisolati.
Gli ingressi possono sopportare una tensione da 5-30VDC (AC compatibile) e le uscite possono essere sia dotate di relè meccanici oppure a stato solido in grado di commutare carichi fino a 12A , come ad esempio ventole di raffreddamento, solenoidi, elementi di riscaldamento e altro ancora.
I circuiti logici operano a 5V, 8 led verdi e 8 led rossi indicano lo stato di input e output, 2 led gialli indicano la presenza di tensione sulla linea di alimentazione dei relè e della logica. Gli ingressi possono essere configurati per gestire diverse tensioni di ingresso.
La scheda di interfaccia utilizza uno shield, che nel prototipo è realizzato con una Proto shield V.4 , sulla scheda è presente un regolatore di tensione, questo è necessario in quanto la logica presente sulla scheda Digital I/O deve essere alimentata con una tensione Vdd di 3,3V in quanto questa è la tensione che le porte di Arduino DUE possono tollerare.

 

Vista di assieme della scheda Arduino DUE su cui è montato un'apposito shield, il cavo piatto a 20 fili, e la Digital I/O Parallax

Dettaglio della scheda Arduino DUE con il prototipo dello shield su cui sono montati vari connettori usati per i test.

Dettaglio del connettore 10x1 monatato sil cavo 20 fili lato Arduino DUE

Dettaglio connettore lato Digital I/O

Dettaglio del regolatore usato per fornire la tensione Vdd pari a 3,3V necessaria per alimentare i circuiti digitali della Digital I/O

Dettaglio Jumper per la scelta della tensione Vdd

Dettaglio del regolatore usato per fornire la tensione Vdd pari a 3,3V necessaria per alimentare i circuiti digitali della Digital I/O

Prima di fornire tensione occorre prestare attensione affinchè il Jumper sia correttamente posizionato. Si ricorda che le porte di Arduino DUE funzionano a 3,3V e non tollerano i +5V.

Lo schema di utilizzo è semplice, è presente un connettore X1 (10+10 pin)  i cui pin sono collegati alle varie porte digitali di Arduino.   Essendo il collegamento parallelo ogni porta comanda un relè della scheda.
Il regolatore IC1 tipo LM1086 (tensione fissa 3,3V) che è opzionale per l'interfacciamento delle schede Arduino UNO, in questo caso è obbligatorio in quanto le porte di Arduino DUE non tollerano la tensione di +5V.    Ricordarsi pertanto di spostare l'apposito jumper JP1, in questo modo la tensione di 3,3V sarà inviata alla scheda Digital I/O.
Il programma test_digital_io_3.ino permette di testare la scheda.

LM1086 - 1.5A Low Dropout Positive Regulators

Piedinatura Datasheet Foto dell'integrato

 

Pin di Arduino utilizzati nel programma
 

Pin

Descrizione

2

Uscita comando relè 1

3

Uscita comando relè 2

4

Uscita comando relè 3

5

Uscita comando relè 4

6

Uscita comando relè 5

7

Uscita comando relè 6

8

Uscita comando relè 7

9

Uscita comando relè 8

Programma
test_digital_io_3.ino

Listato del programma per testare il collegamento parallelo

/*
 Test_digital_io_3.pde
 Il programma ha il compito di testare il funzionamento
 della DIGITAL I/O BOARD PARALLAX con Arduino DUE
 Test delle uscite - Collegamento parallelo
   
 Ultima modifica il 2/1/2013
 da Adriano Gandolfo <https://www.adrirobot.it>
 This example code is in the public domain.
 */

byte accensione_led[15][8] = 
{{0,0,0,0,0,0,0,0}, // = 0
{1,1,1,1,1,1,1,1},  // = 1
{0,0,0,0,0,0,0,0},  // = 2
{1,0,1,0,1,0,1,0},  // = 3
{0,0,0,0,0,0,0,0},  // = 4
{0,1,0,1,0,1,0,1}, // = 5
{0,0,0,0,0,0,0,0}, // = 6
{1,0,0,0,0,0,0,0}, // = 7
{0,1,0,0,0,0,0,0}, // = 8
{0,0,1,0,0,0,0,0}, // = 9
{0,0,0,1,0,0,0,0}, // = 10
{0,0,0,0,1,0,0,0}, // = 11
{0,0,0,0,0,1,0,0}, // = 12
{0,0,0,0,0,0,1,0}, // = 13
{0,0,0,0,0,0,0,1}}; // = 14

void setup() {                
  pinMode(2, OUTPUT); //RLY1
  pinMode(3, OUTPUT); //RLY2
  pinMode(4, OUTPUT); //RLY3
  pinMode(5, OUTPUT); //RLY4
  pinMode(6, OUTPUT); //RLY5
  pinMode(7, OUTPUT); //RLY6
  pinMode(8, OUTPUT); //RLY7
  pinMode(9, OUTPUT); //RLY8
}
    
void TEST(byte digit) {
  byte pin = 2;
  for (byte Count = 0; Count < 8; ++Count) {
    digitalWrite(pin, accensione_led[digit][Count]);
    ++pin;
  }
}

void loop() {
  for (byte count = 15; count > 0; --count) {
   delay(1000); // pausa in millisecondi
   TEST(count - 1); 
  }
}

 

Elenco revisioni
02/02/2013 Inserito filmato su Arduino Due e collegamento parallelo
16/01/2013 Emissione preliminare
Private Policy Cookie Policy