Arduino

Argomenti relativi alla programmazione con Arduino

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

Arduino e sensore di temperatura TMP36

Come utilizzare il sensore di temperatura TMP36

La conversione di grandezze fisiche in elettriche è un aspetto che prima o poi viene affrontato quando iniziamo a realizzare piccoli esperimenti con Arduino. Oggi la sensoristica è ricca di dispositivi capaci di svolgere questa conversione. Nello specifico, per quanto riguarda la misura della temperatura abbiamo in commercio dispositivi di ogni sorta, da quelli ultrasensibili a quelli con precisioni dell’ordine del centesimo di grado, dai costi contenuti ai costi esorbitanti. Il tipo di uscita di questi sensori va dal classico segnale analogico fino a quelli con uscita digitale e comunicazione I2C, SPI o 1Wire.
Per i nostri esperimenti ci accontenteremmo di un sensore molto diffuso, dal costo contenuto e dal semplice utilizzo, il TMP36 prodotto da Analog Device.

Il TMP36 permette di acquisire temperature comprese nell’intervallo tra -40°C e +125°C restituendo in uscita valori di tensione lineari tra circa 0.1Vdc e 1.7Vdc. Una variazione di grado produce una variazione della tensione di uscita pari a 10mV; alla temperatura di 0°C il sensore eroga una tensione di 500mV.

Il circuito che ho realizzato è molto banale, si limita a collegare il sensore direttamente ad Arduino UNO tramite la porta analogica A0:

Sensore Temperatura TMP36 con Arduino

Continua a leggere

Memorizzare dati su un sito web con PHP e Mysql

Introduzione all’internet delle cose con Arduino, PHP e Mysql

Il termine ‘internet delle cose‘ sta diventando sempre più popolare per due motivi fondamentali, il primo riguarda la grande diffusione dei dispositivi programmabili come Arduino e Netduino (senza tralasciare  il sistema OpenPicus e il RaspberryPI) con la loro relativa semplicità di utilizzo, mentre il secondo motivo è dovuto alla necessità di conoscere in tempo reale cosa questo dispositivo sta facendo e come sia possibile controllarne le funzionalità, anche a distanza.
Tutto questo è strettamente legato alla diffusione della rete 3G e degli smartphone che permettono di avere una connessione ad internet pressoché ovunque.

Questo scenario rende interessante lo sviluppo di nuove tipologie di applicazioni legate appunto al controllo e allo scambio dati tra dispositivi hardware collegati ad internet.

Esistono numerosi prototipi ma anche esempi reali che dimostrano come l’utilizzo di sistemi embedded+internet creino infrastrutture, anche complesse, controllabili. Il classico esempio riguarda la gestione del traffico che nelle nostre città viene gestito da semplici semafori che regolano il traffico in modo statico. Utilizzando dispositivi smart è possibile ottimizzare questo sistema migliorando la viabilità, evitando ingorghi e facendo risparmiare energia e carburante. Ma le applicazioni sono davvero notevoli e sono tutte orientate al risparmio energetico e al migliorare il nostro modo di vivere.

Continua a leggere

Motore passo passo bipolare e driver L298N

Come pilotare un motore passo passo usando l’integrato L298N

Quando osservo i robot industriali assemblare, saldare, fresare o posizionare oggetti con una precisione sconcertante rimango affascinato dalla capacità umana di poter costruire queste macchine. Anche nelle nostre abitazioni sono presenti oggetti dotati di parti meccaniche, che compiono movimenti molto precisi, come ad esempio le stampanti, i plotter e gli scanner.
Questi dispositivi hanno in comune tra loro un particolare dispositivo chiamato motore passo passo (stepper motor). E’ un trasduttore elettromeccanico che converte degli impulsi elettrici in un movimento fisico. Ad ogni impulso elettrico corrisponde un movimento del rotore; questo spostamento viene chiamato step.
A differenza del motore in corrente continua i motori passo passo possono mantenere la propria velocità di rotazione costante, anche con carico applicato, senza usare sistemi di controreazione (tachimetriche o encoder). Il motore eroga una coppia elevata, anche con bassi numeri di giri, possiede accelerazioni e frenate repentine ed è capace di mantenere il carico applicato fermo in posizione, senza vibrazioni.
Naturalmente esistono anche degli svantaggi, tra cui la necessità di utilizzare un circuito elettrico di pilotaggio, un rendimento energetico basso, una velocità di rotazione ridotta ed un costo di acquisto elevato.

Continua a leggere

Sondaggi

Quale scheda Arduino usi maggiormente?

View Results

Loading ... Loading ...