Tutorial: Arduino Shield I/O

Tra le shield acquistate da robot-domestici.it c’era anche la I/O che ti permette di gestire  6 input analogici, 6 input digitali e 6 output digitali con relè a 12 volt. Sia gli input digitali sia gli output digitali dispongono anche di un led ciascuno come indicatore di stato.

Arduino shield I/O

Il vanttaggio di utilizzare la scheda I/O è che non devi preoccuparti di gestire componenti elettronici aggiuntivi o complessi sketch.

Per utilizzare un motore nel tuo progetto di un robot o per accendere di strisce di led o per acquisire i segnali esterni, sia analogici sia digitali, tutta l’elettronica che ti occorre è già sulla scheda.

In internet ci sono numerosi shield di esempio per utilizzarla, questo articolo inizia dall’assemblaggio e continua con un primo semplice sketch di test.

L’assemblaggio è molto semplice, occorre il kit della shield, un saldatore standard, dello stagno e un po’ di pratica, non ci sono componenti smd o particolarmente piccoli, ci sono solo molti componenti da assemblare, ti occorrerà qualche ora per eseguire un buon lavoro.

Inizia dall’osservazione della basetta:

Stampato shield I/O

disponi prima i componenti più bassi e piccoli da maneggiare: i diodi

Diodi montati orizzontalmente

passa al montaggio dei diodi verticali:

diodi verticali

quindi ai diodi zener, uno di fianco all’altro:

Diodi zener

A questo punto puoi passare al montaggio delle resistenze orizzontali, anche queste sono componenti piatti e quindi più facili da maneggiare e saldare in questa fase:

Resistenze orizzontali

poi passa al montaggio delle resistenze verticali:

Resistenze verticali

e quindi il momento di passare ai componenti più alti e che possono essere inserit facilemnte anche se non in ordine preciso, io ti consiglio di seguire comunque un ordine per semplificarti il montaggio:

Montare i transistor

monta il condensatore:

Montare un condensatore

e i led rossi e verdi:

Led rossi e verdi

manca poco, monta i relè ed i morsetti a cui collegare i contatti dei sensori per le entrate analogiche e digitali e gli attuatori sulle uscite digitali:

monta i relè e led

In ultimo, anche perchè prima avrebbe complicato il montaggio e infastidito tutta l’operazione, monta i contatti che consentono alla shield di collegarsi ad Arduino:

Pin di connessione ad Arduino

Ricorda che la shield si alimenta attraverso Arduino ricavando i +5v e la massa direttamente dal regolatore montato su Arduino e i 12v dall’alimentazione diretta di Arduino attraverso il pin Vin, questo significa che devi alimentare il tutto con una tensione di +12v per consentire ai relè di funzionare adeguatamente.

Prima di scrivere uno sketch di test è importante sapere che i pin digitali sono stati divisi 6 da utilizzare come INPUT e 6 da utilizzare come OUTPUT, per semplicità di realizzazione della sheda il progettista ha definito che i primi 6 pin digitali di Arduino (2-7) fossero utilizzabili come input e che i pin da 8 a 13 fossero dedicati all’uso come OUTPUT.

Se ti stai chiedendo come mai abbia evitato di utilizzare il pin 0 e 1 di Arduino è perchè tendenzialmente si evita di utilizzare questi pin in quanto riservati alla comunicazione seriale tra Arduino e il suo IDE; quindi a meno che non sia strettamente necessario utilizzarli si preferisce lasciarli liberi o impiegarli per la comunicazione seriale in alcuni shield, come vedrai nei prossimi articoli.

Lo sketch di esempio fa eseguire alla shield I/O:

  1. commuta in seguenza di tutti i relè;
  2. legge in sequenza tutti i segnali digitali;
  3. legge in sequenza tutti i segnali analogici;

Per verificare che la lettura sia corretta prendiamo come riferimento i morsetti non collegati a nulla, proveremo in un prossimo sketch ad eseguire comandi mirati e confrontare i segnali letti prima e dopo una operazione con un pulsante ad esempio.

Ecco lo sketch:

int in=0;
int out=0;
int an=0;

long interval = 1000;           // interval at which to blink (milliseconds)

void setup() {
  Serial.begin(9600);

  for (int in=2; in<=7; in++){
    pinMode(in, INPUT);
  }

  for (int out=8; out<=13; out++){
    pinMode(out, OUTPUT);
  }

  Serial.println("Setup Ok");
}

void loop()
{
  for (int out=8; out<=13; out++){
    digitalWrite(out, HIGH);
    delay(interval);
  }

  delay(interval);    

  for (int out=8; out<=13; out++){
    digitalWrite(out, LOW);
    delay(interval);
  }

  for (int in=2; in<=7; in++){
    Serial.print(in);
    Serial.print(" = ");
    Serial.println( digitalRead(in) );
    delay(interval);
  }

  delay(interval);    

  for (int an=0; an<=5; an++){
    Serial.print(an);
    Serial.print(" = ");
    Serial.println( analogRead(an) );
    delay(interval);
  }

  delay(interval);
}

Buon divertimento.

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/elettronica/tutorial-arduino-shield-io.html

17 pings

Skip to comment form

  1. […] un precedente articolo dedicato alla shield I/O hai visto come assemblarla passo passo e provato un primo sketch […]

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.