Arduino

Argomenti relativi alla programmazione con Arduino

Gestire una tastiera 4×3 con Arduino

Come utilizzare un keypad a 12 tasti (tastiera 4×3) con Arduino UNO

Gestire una tastiera 4×3 o comunemente tastierino numerico, permette di sviluppare applicazioni nelle quali l’utente ha la possibilità di interagire con Arduino UNO immettendo codici numerici, come ad esempio password per accedere ad aree riservate o impostare parametri per far funzionare in modo corretto un apparecchio.
La lettura dello stato dei pulsanti del tastierino avviene eseguendo un continuo scansionamento (pooling) degli stessi.

Un tipico tastierino 4×3 è composto da una matrice di pulsanti disposti in 4 righe e 3 colonne. Quando premiamo un pulsante della tastiera viene collegata elettricamente una riga con una colonna.

Tastiera Continua a leggere

Motor Shield utilizzarlo con Arduino UNO

Come pilotare motori dc utilizzando il motor shield

I motorini dc sono molto comuni nei vecchi giocatoli, possiamo recuperarli per costruire nuovi giochi, dei robot o dei rover utilizzando una scheda Arduino o Netduino. Queste schede, come è noto, non permettono di pilotare direttamente un motore dc perché la corrente in uscita dai pin è insufficiente ed il rischio di danneggiare irreparabilmente la scheda è inevitabile.
Esistono in commercio numerosi shield che dispongono di driver capaci di alimentare questi motorini dc, genericamente chiamati motor shield.

Motor Shield

Quello che ho utilizzato per questo tutorial è il motor shield ufficiale versione R3. Lo shield si basa sul driver L298P prodotto da ST microelectronics, configurabile anche per pilotare motori passo passo come visto in questo precedente tutorial.

Continua a leggere

Tutorial come costruire un cubo led 3x3x3

Costruire un cubo led 3x3x3 con Arduino Micro

Arduino come sappiamo è una piattaforma molto versatile che permette di realizzare diverse tipologie di progetti. La parte che preferisco maggiormente riguarda la realizzazione di progetti che in qualche modo risolvano o migliorino una attività pratica.
Nonostante ciò molti esperimenti vengono realizzati ai soli fini didattici o ludici. Il cubo led 3x3x3 è sicuramente uno di quei progetti che vengono realizzati per stupire gli amici!

Di tutorial per realizzare cubi led 3x3x3 ne esistono centinaia, ma nonostante ciò ho voluto realizzare anche io l’ennesimo cercando di spiegare la sua realizzazione in modo molto semplice, questo perché molti utenti,  che sono alle prime esperienze, hanno bisogno di spiegazioni passo passo molto elementari.

Cubo led 3x3x3

Continua a leggere

Webduino scheda relè evitare blocco Arduino UNO

Come aggiungere relè al progetto senza bloccare la scheda

Molti utenti che hanno realizzato il tutorial Scheda relè remota con Arduino e Webduino, dopo aver constatato il funzionamento del codice hanno poi implementato il codice per la gestione di ulteriori relè. A questo punto si sono accorti che il codice smette di funzionare e Arduino UNO sembra bloccata.
Tutto ciò avviene perché aggiungendo istruzioni contenenti stringhe ad un certo punto si arriva a saturare la memoria SRAM, questo è il motivo per cui la scheda va in blocco. La mancanza di memoria SRAM di fatto non permette di eseguire le istruzioni del nostro sketch.

Come è possibile risolvere il problema senza aumentare la memoria SRAM?

Sapiamo che la scheda possiede anche una memoria EEPROM da 1KB, e che tramite la funzione PROGMEM possiamo memorizzarci delle stringhe.

Anche la libreria Webduino permette di salvare e richiamare le stringhe dalla memoria EEPROM, quindi possiamo usare questa funzionalità per liberare SRAM e permettere la normale esecuzione del codice.

Vediamo come modificare una porzione del codice del precedente articolo:

if(Rele1 == true)
  server.print("<tr><td style=\"color: red;\">RELE 1 ON</td><td>");
else
  server.print("<tr><td style=\"color: black;\">RELE 1 OFF</td><td>");

utilizzando le funzioni della libreria Webduino, per memorizzare le stringhe nella EEPROM

//memorizza le stringhe sulla EEPROM
P(str_rele1ON) = "<tr><td style=\"color: red;\">RELE 1 ON</td><td>";
P(str_rele1OFF) = "<tr><td style=\"color: black;\">RELE 1 OFF</td><td>";

if(Rele1 == true)
  //richiama la stringa dalla eeprom
  server.printP(str_rele1ON);
else
  //richiama la stringa dalla eeprom
  server.printP(str_rele1OFF);

il codice precedente fa uso dell’istruzione P() e del metodo printP().

P() ha il compito di memorizzare la stringa nella EEPROM proprio come accade con l’istruzione PROGMEM. per richiamare la stringa è sufficiente richiamarla utilizzando il metodo printP() dell’oggetto server.

In definitiva se volete aggiungere più relè è sufficiente modificare il codice del tutorial come nell’esempio precedente.

PCF8574AP come espandere porte IO

Utilizzare un PCF8574ap per espandere le porte IO di Arduino

Capita di trovarci a realizzare applicazioni in cui il numero dei pin digitali richiesti, supera quelli disponibili sulla scheda Arduino UNO. In questi casi potremmo utilizzare una scheda con un numero maggiore di pin IO (ad esempio la Arduino MEGA, la Arduino DUE …) o scegliere dei circuiti esterni che danno la possibilità di espandere le porte IO utilizzando una comunicazione seriale I2C o SPI.

L’integrato PCF8574AP permette di risolvere questo problema fornendo 8 porte IO che possono essere gestite utilizzando il collegamento seriale I2C. Lo schema elettrico seguente mostra come collegare il pcf8574ap alla scheda Arduino Leonardo. L’unica osservazione riguarda le uscite del PCF8574, infatti come potete osservare i led non sono collegati direttamente alle porte dell’integrato ma bensì sono collegati tramite una resistenza alla linea dei 5Vdc. Questo perché l’integrato non è in grado di fornire la corrente sufficiente per alimentare il led; è quindi necessaria una resistenza di pull-up.

Continua a leggere

Microsoft Embedded Conference 2014

Partecipa alla seconda edizione della Microsoft Embedded Conference

Microsoft Embedded Conference

L’associazione culturale DotNetCampania, costituita da un team di persone del territorio campano ed appassionate delle tecnologie Microsoft, ha organizzato a Napoli per il giorno 15 Febbraio 2014 la seconda edizione della Microsoft Embedded Conference, una giornata completamente gratuita dedicata alle tecnologie embedded del mondo Microsoft. Quest’anno, il cuore dell’evento sarà caratterizzato dall’Internet Of Things e dalla M2M Communication, considerando che il 2014 sarà l’anno della consacrazione dell’interconnessione di tutte le tipologie di device e dispositivi embedded alla grande rete. Vedremo in che modo la Microsoft permetta la realizzazione di soluzioni di questo tipo, dando vita ai cosiddetti “Intelligent Systems”, ossia di sistemi fortemente interconnessi a partire da sensori ed attuatori posti ai “bordi” della rete che permettono in primo luogo di alimentare i centri di calcolo con una enorme mole di dati in tempo reale ed in secondo luogo di attuare delle azioni in seguito alle decisioni prese a valle dell’elaborazione dei dati stessi.

Continua a leggere su http://mec2014.dotnetcampania.org/

24LC256 utilizzare una memoria seriale su bus I2C

Come usare una memoria 24LC256 su bus I2C

Il limite di memoria di una scheda Arduino può essere superato utilizzando delle memorie esterne che permettono di aggiungere capacità di memorizzazione per tutte quelle applicazioni che richiedono la registrazione di dati. Possiamo scegliere tantissimi tipi di memorie a seconda del tipo di interfaccia (I2C, SPI, parallela…) e dalla loro capacità.

Per questo tutorial ho scelto una comunissima EEPROM Seriale prodotta da Microchip, la 24LC256. Questa memoria può essere collegata alle schede Arduino tramite bus I2C e offre 256 Kbits di memoria (32KB). La pin function della memoria è rappresentata in figura:

24LC256

Continua a leggere

Usare la porta DAC del PCF8591P

Come generare una tensione analogica da un dato digitale

Nel precedente articolo abbiamo imparato a gestire i quattro ingressi analogici del dispositivo PCF8591P. In questo tutorial impareremo a utilizzare la porta DAC (Digital to Analog Converter) per creare una tensione continua partendo da un dato digitale.

Lo schema elettrico rimane pressoché invariato. L’unica modifica riguarda l’eliminazione dei collegamenti sui pin analogici AIN ed il collegamento al pin AOUT di un diodo led rosso da 3mm e di una resistenza (R) da 100Ohm:

Usare DAC pcd8591p Continua a leggere

Come usare l’integrato PCF8591

Utilizzare Arduino per controllare l’integrato PCF8591

L’integrato PCF8591 prodotto da NXP dispone di 4 ingressi analogici con risoluzione di 8 bit e di una uscita analogica sempre ad 8 bit. La sua gestione avviene tramite bus I2C, permettendo così il collegamento nel bus di diversi integrati (per un massimo di 127 unità). Avendo una gestione software semplice ed un costo intorno ai 3€ viene impiegato in diversi shield Arduino per aumentare il numero di porte ADC, inoltre la presenza di una uscita analogica programmabile (DAC) permette di generare segnali utili in diversi progetti e applicazioni.

Nella figura seguente viene mostrato lo schema a blocchi del PCF8591:

Schema Blocchi PCD8591P

Continua a leggere

Arduino datalogger con pc

Come realizzare un datalogger utilizzando Arduino e un pc

Il datalogger è uno di circuiti che fanno parte del bagaglio tecnico di chi come noi smanetta con l’elettronica e l’informatica. Il suo funzionamento è in effetti semplice ma allo stesso tempo utile per realizzare tutte quelle applicazioni in cui è necessario acquisire e registrare dati (digitali o analogici), pensiamo a tutti i sistemi di monitoring (energia, gas, acqua …) alle stazioni meteo o a sistemi di controllo. Esistono circuiti dedicati che eseguono funzioni di datalogging locale e remote, persino cloud, dai costi variabili da poche decine di euro a centinaia di euro a seconda della robustezza e della precisione dei circuiti.
Per impadronirci anche di questo aspetto possiamo realizzare il nostro datalogger usando il nostro caro Arduino. Il logging può avvenire sia sui pin analogici che su quelli digitali a seconda dei segnali e dei sensori collegati alla scheda.

In questo tutorial utilizzerò i sei pin analogici della scheda per acquisire dei segnali analogici ed inviarli al pc, tramite la porta seriale, dove avverrà la memorizzazione dei dati. Ho deciso di non memorizzare i dati sulla scheda per far capire come inviare i dati e come sincronizzazione la comunicazione tra i due dispositivi.Come scheda ho impiegato la Arduino Ethernet e lato pc ho utilizzato Microsoft Visual C# 2012 (su Windows 8) per scrivere il programma di logging.

Continua a leggere

Sondaggi

Quali sistemi usi maggiormente per i tuoi esperimenti?

View Results

Loading ... Loading ...
Seguimi su Twitter