Installare Arduino Uno passo passo

Come installare Arduino sul vostro computer

Dopo aver acquistato Arduino Uno ho creato degli screenshot sulla procedura di come installare Arduino e come configurare l’ambiente di sviluppo per eseguire e caricare i nostri programmi.
La prima cosa da fare per chi non ha mai iniziato a programmare questo dispositivo è collegarsi al sito arduino.cc e scaricare l’ambiente di sviluppo Arduino 0022 (versione per Windows) nella sezione download.

Il pacchetto contiene sia l’ambiente di sviluppo sia i driver per la scheda.

Ora scompattiamo il pacchetto zip e disponiamolo in una cartelle facilmente accessibile. Per il momento non eseguiamo nessun file e procediamo con il collegamento della scheda al pc e all’installazione dei driver.

Procuriamoci un cavo usb A-B (simile a quello utilizzato per le stampanti) e colleghiamo l’Arduino al pc. Windows rivelerà immediatamente la scheda:

Continua a leggere

Come pilotare un relè con Arduino o Netduino

Tutorial utilizzo di un relay con Arduino o Netduino

Il relè è un dispositivo elettromeccanico costituito da un avvolgimento e da uno o più contatti meccanici, è utilizzato per operazione di interruzione e commutazione di circuiti elettrici.
Normalmente viene comandato da un segnale a bassa tensione e i suoi contatti meccanici sono collegati a circuiti di potenza o di utilizzazione.

Ne esistono di varie tipologie tra cui

  • Relè Normali: la commutazione dei contatti avviene quando la bobina è costantemente alimentata.
  • Relè ad impulsi: la commutazione dei contatti avviene alimentando la bobina per un breve periodo di tempo.
  • Relè a tempo: la commutazione dei contatti avviene in modo ritardato rispetto al tempo di alimentazione della bobina stessa.

le caratteristiche elettriche che accomunano i relè sono:

  • Tensione di alimentazione della bobina
  • Resistenza elettrica della bobina
  • Corrente elettrica della bobina
  • Massima tensione sopportata dai contatti
  • Massima corrente sopportata dai contatti

questi dati ci permettono di scegliere il relè appropriato per il nostro circuito.
Nel caso utilizzassimo il Netduino come circuito pilota, potremmo scegliere un relè che ha una tensione di esercizio di 5V con corrente relativamente bassa per l’eccitazione della bobina.

Continua a leggere

MCP9700A Netduino e sensore di temperatura analogico

MCP9700A come leggere il valore di temperatura

Sfruttiamo il Netduino per la realizzazione di un dispositivo che permette la lettura della temperatura tramite il sensore MCP9700A.
Il sensore fornisce una tensione analogica proporzionale alla temperatura rilevata. E’ un dispositivo molto semplice e compatto, ha tre pin, uno per l’alimentazione, uno per la massa e uno per la tensione analogica di uscita.

MCP9700A

Per capire come collegare questo sensore al Netduino analizziamo prima le sue caratteristiche. Può essere alimentato da un intervallo di tensione che va da 2.3Vdc a 5.5Vdc, misura temperature che vanno da un minimo di -40°C a un massimo di 125°C con una precisione tipica di -+1°C (-+2°C massima). Ad una temperatura di 0°C il dispositivo eroga in uscita una tensione di 500mV utile come riferimento di partenza per il nostro circuito. La variazione di un grado produce una variazione di tensione di 10mV. La minima tensione in uscita dal sensore è di 100mV mentre quella massima è di 1.75V.
Per approfondire tutti gli aspetti di questo sensore potete consultare il suo datasheet.
La tabella seguente mostra un riassunto di quanto detto:

DescrizioneValori
Alimentazione del sensoreda 2.3Vdc a 5.5Vdc
Intervallo di temperaturada -40°C a 125°C
Precisione tipica+/- 1°C da 0 a 70°C
Variazione di tensione10mV per grado
Tensione di uscita a 0°C500mV
Intervallo di tensione in uscitada 100mV a 1.75V

Il grafico seguente mostra invece la curva di risposta del sensore.

Curva di risposta MCP9700A

La precisione del sensore è garantita alimentandolo a 3.3Vdc. In effetti, a parità di temperatura rilevata, alimentandolo prima a 3.3Vdc e poi a 5Vdc ho notato delle differenze di tensione in uscita dal sensore.
Come sappiamo il gli ingressi analogici del Netduino possono accettare una tensione massima di 3.3Vdc, l’MCP9700A può essere collegato direttamente all’ingresso analogico poiché la sua massima tensione in uscita è pari a 1.75Vdc.
Il Netduino dispone di un’alimentazione da 3.3Vdc che ho utilizzato per alimentare il sensore.

Continua a leggere

PWM gestione col Netduino

Come generare un segnale PWM

I pin digitali del Netduino, come sapiamo, possono svolgere anche delle funzioni aggiuntive, in particolare i pin 5, 6, 10 ed 11 sono in grado di generare un segnale pwm (Pulse Width Modulation). Utilizzando questa funzione possiamo generare un segnale con una frequenza minima di 15Hz ed una massima di 500KHz, con un Duty Cycle variabile da 0 a 100%. Per poter generarlo dobbiamo creare un’istanza di oggetto dalla classe PWM

PWM pwm = new PWM(pin del Netduino);

Il costruttore della classe richiede come parametro il pin del Netduino che vogliamo utilizzare per generare il pwm.
Le funzioni disponibili sono due:

 

SetPulse accetta due argomenti, il primo indica il valore della frequenza da generare ed il secondo il valore del duty cycle. Il valori validi da inserire nel parametro della frequenza vanno da 2 a 65535 mentre quelli validi da inserire nel parametro duty cycle vanno da 1 a 65534 ma dipendono dal parametro frequenza.
Il valore 2 corrisponde a una frequenza di 500Khz mentre il valore 65535 corrisponde a un frequenza di 15hz.
Il secondo parametro che definisce il duty cycle dipende strettamente dal valore numerico inserito nel parametro della frequenza. Chiarisco subito con un esempio, se voglio generare un segnale a 100Hz con duty cycle del 30% devo procedere in questo modo: Continua a leggere

Netduino e collegamento alla seriale RS232 del pc

Come usare la seriale RS232

L’interfaccia RS232 è un protocollo standard che permette lo scambio, a bassa velocità, tra dispositivi digitali. Lo standard RS232 nacque nei prima anni 60 e nonostante sia un protocollo piuttosto vecchio è ancora oggi utilizzato per la comunicazione tra microcontrollori, dispositivi industriali e da svariati circuiti che non necessitano di elevate velocità di comunicazione.
Il termine seriale significa che i bit vengono trasferiti uno dopo l’altro su un singolo filo elettrico.

Il segnale RS232 è rappresentato nella figura seguente e può essere visualizzato tramite un comune oscilloscopio

Segnale RS232 livelli logici

Come possiamo vedere i valori di tensione del segnale RS232 vanno da -12Vdc a 12Vdc. Il segnale è composto sempre da un bit di start seguito da 8 bit di dati. Il bit 1 (Alto) è identificato da una tensione di -12Vdc mentre il bit 0 (Basso) corrisponde ad un livello di tensione di +12Vdc.

La velocità della comunicazione seriale è espressa in bps (bit per second) ed indica, appunto, la quantità di bit inviati in un secondo. La durata di un singolo bit dipende dalla velocità scelta per la trasmissione. Se per i nostri scopi abbiamo bisogno di una comunicazione seriale a 9600bps il singolo bit avrà una larghezza di 104us (1/9600).

Il connettore disponibile in molti pc desktop è un DB9 maschio ed è composto da nove pin, i quali svolgono delle funzioni specifiche:

rs232 pin function Continua a leggere

Netduino GPIO Speed Test

Testare la velocità di commutazione di un pin digitale

Una delle domande che mi pongo quando lavoro con un dispositivo programmabile è quanto questo sia veloce. Non so se esistano procedure specifiche che indichino la potenza di calcolo effettiva, indicativamente il test che eseguo io è quello di commutare di continuo un’uscita digitale e verificare con un oscilloscopio il tempo della durata di una istruzione.
Il codice è il seguente:

 

Questo codice generare un onda quadra con una frequenza di circa 8.4 KHz; Il segnale positivo generato dalla Write(true) dura circa 53us mentre il segnale negativo dovuto alla funzione Write(false)dura circa 64us. Verosimilmente il segnale negativo dura qualche microsecondo in più poiché il processore deve eseguire anche l’istruzione While(true). Quindi l’istruzione While viene eseguita in circa 11us (64us – 53us)

Netduino GPIO

Segnale PWM 50 per cento Continua a leggere

Usare gli ingressi analogici del Netduino

Come utilizzare le porte analogiche del Netduino

Netduino dispone di 6 ingressi per l’acquisizione di segnali analogici. Questa è una caratteristica importante perché molti sensori sono di tipo analogico, come alcuni che, ad esempio, variano la loro resistenza elettrica in base alla grandezza fisica che misurano.
Uno degli elementi più semplici che possiamo usare per imparare ad usare gli ingressi analogici del Netduino è la fotoresistenza che varia la sua resistenza elettrica in modo proporzionale alla quantità di luce a cui è sottoposta.
Prima di acquisire il segnale dobbiamo sapere che la massima tensione applicabile ai pin analogici è di 3.3Vdc. La risoluzione del Netduino, nel convertire il segnale analogico in digitale, è di 10bit, questo indica che applicando una tensione di 3.3Vdc all’ingresso analogico, otterremo un valore intero di 1024, applicando una tensione nulla otterremo un valore intero pari a 0, e applicando una tensione di 1.65 Vdc (pari alla metà della massima tensione applicabile) otterremo un valore intero di 512.
Quindi le variazioni di tensione tra 0 e 3.3v restituiranno dei valori compresi tra 0 e 1024.

Passiamo alla pratica e proviamo a collegare una fotoresistenza al Netduino. La sua resistenza varia in modo inversamente proporzionale alla quantità di luce che colpisce il sensore, più intensità luminosa corrisponde ad una minore resistenza e viceversa. Il modello che ho utilizzato io presenta una resistenza di 80-100 ohm quando il sensore è posto alla luce mentre quando è posto al buoi la sua resistenza aumenta sino a 10-15 Mohm.

Il circuito di test è il seguente:

Netduino e Fotoresistenza

La tensione di 3.3v va ad alimentare il circuito composto dalla fotoresistenza FR e dalla resistenza R da 5.6 KOhm.

Nota: Per i possessori di Netduino rev A dovete collegare anche la tensione 3.3v al pin Aref

Le variazioni di luminosità sul sensore si tradurranno in variazione di resistenza e di conseguenza in variazione di tensione. L’ingresso A0 è collegato tra la fotoresistenza e la resistenza. Continua a leggere

Caratteristiche Arduino Uno

ARDUINO UNO la scheda più famosa al mondo

Arduino Uno

Arduino Uno è un dispositivo basato su microcontrollore che permette di realizzare diversi tipi di circuiti elettronici. Possiede 14 pin digitali programmabili come ingressi o uscite (i quali hanno anche la capacità di essere utilizzati per funzioni dedicate come la generazione di segnale PWM o la comunicazione UART ) e 6 ingressi per l’acquisizione ed elaborazione di segnali analogici.
Il microcontrollore è l’ATmega328 prodotto da Atmel, ha una velocità di 16MHz, una memoria flash da 32KB, una sram da 2KB e una memoria EEPROM da 1KB.
L’alimentazione della scheda avviene tramite porta usb o tramite l’apposito connettore. In caso siano collegati sia il cavo usb sia il connettore di alimentazione, la scheda è capace di scegliere automaticamente la fonte di alimentazione esterna.

La tabella seguente elenca le caratteristiche di Arduino Uno

Tipo MicrocontrolloreAtmel ATmega328
Tensione di lavoro5Vdc
Tensione di alimentazione consigliatada 7Vdc a 12Vdc
Pin digitali14 configurabili come ingressi o uscite
Pin analogivi6 inghessi
Massima corrente per pin digitale40mA massima
Memoria Flash32KB
Memoria Sram2KB
Memoria EEPROM1KB
Velocità di clock del microcontrollore16MHz

Descrizione funzioni aggiuntive dei pin digitali

Pin 0UART RX
Pin 1UART TX
Pin 2Interrupt esterno
Pin 3Interrupt esterno oppure PWM
Pin 58 bit PWM
Pin 68 bit PWM
Pin 98 bit PWM
Pin 108 bit PWM oppure SPI(SS)
Pin 118 bit PWM oppure SPI(MOSI)
Pin 12SPI(MISO)
Pin 12SPI(SCK)

Descrizione funzioni aggiuntive dei pin analogici

Pin 4I2C (SDA)
Pin 5I2C (SCL)

Il progetto del dispositivo è open source, sono infatti disponibili schemi elettrici per la realizzazione del circuito e i sorgenti di tutto il software della piattaforma.

Il costo contenuto della scheda (neanche 30€) da la possibilità a tutti di poter sperimentare con questo dispositivo, sia per un uso puramente ludico sia per la creazione di dispositivi professionali.

I miei gadget

Newsletter

Seguimi su Twitter