Goldenmotor hub testing – 2

Qualche primo risultato parziale, per cominciare, dopo un primo set di test.

Le prove eseguite sono per ora di due tipi: con carico disconnesso e con carico collegato.

Il carico √®, per ora e in attesa di collegare un dump load adeguato, una semplice ma funzionale resistenza elettrica da forno (quello passava il convento ūüėČ ).

Quindi:

  • in assenza di carico, a 337 RPM corrisponde una tensione concatenata Vij pari a circa 33,0 Volt e una tensione continua VDC a valle del ponte di diodi pari a 45 Volt circa
  • in presenza del carico, a 332 RPM corrisponde Vij pari a circa 32,0 Volt e¬†VDC¬† pari a 43 Volt circa
  • in presenza del carico, a 580 RPM corrisponde Vij pari a circa 57,0 Volt e¬†VDC¬† pari a 75 Volt circa

Di conseguenza

  • in assenza di carico, la costante del generatore √® pari a circa 7,4 RPM/Volt
  • in presenza di carico la costante del generatore √® pari a circa 7,7 RPM/Volt

Peraltro non siamo i primi nè gli unici che han pensato a questo utilizzo del motore Goldenmotor: nel relativo forum esistono almeno due discussioni al riguardo (qui e qui).

Nè sembra che la questione della corrente rappresenti un problema:

goldenmotor as wind turbine generator: from the forum

goldenmotor as wind turbine generator: from the forum

In fondo, poi, un video con il test di un hub motor analogo al nostro, con commenti molto interessanti.

——–

Here we are with some results from our first tests.

We tested the generator with and without a simple load (an oven resistor (37 Ohm), waiting for a more significative dump load)

So thi is what we do know, by now:

  • without load, at 337 RPM line voltage Vij¬† is 33.0 Volt and DC voltage VDC after a¬†bridge diode rectifier is 45 Volt, more or less
  • with load, at 332 RPM, Vij is 32.0 Volt and VDC¬† 43 Volt more or less
  • with load, at 580 RPM, Vij is 57.0 Volt and VDC¬† 75 Volt more or less

In consequence

  • without load the generator constant value is 7.4 RPM/Volt
  • with load it is equal to 7.7 RPM/Volt

And we are not the first neither the one working on a Goldenmotor hub as a generator. You can see more on Goldenmotor forum (here and here).

Also, current across the generator doesn’t seem to be a problem, as you can see in the above image.

Finally, a video showing some test on an analog hub motor, with some interesting comments.

Turbina in kit – DIY turbine – 3

L’assemblaggio della nostra nuova turbina √® cominciato! Il kit √® assolutamente un passo avanti notevole rispetto alle precedenti realizzazioni, molto pi√Ļ “serio” e professionale. Qualche piccola modifica e poi la struttura metallica appariva cos√¨ (in una allegra e soleggiata giornata di aprile…) :

VentolONE 4.0 - a quick look to the turbine

VentolONE 4.0 – a quick look to the turbine

VentolONE 4.0 - a quick look to the rotor

VentolONE 4.0 – a quick look to the rotor

Qualche problema in pi√Ļ invece nella realizzazione delle pale. Contavamo e contiamo di utilizzare del polietilene espanso schiumato per via delle sue caratteristiche meccaniche, l’insensibilit√† agli agenti atmosferici, il basso costo.

Schiuma di polietilene espanso

Per ora tuttavia il taglio a filo caldo ha dato risultati poco positivi: la finitura superficiale √® grossolana, e il taglio molto difficoltoso. Dobbiamo studiarci qualcos’altro, che probabilmente esiste dal momento che questa ditta realizza profilati di questo materiale con la tecnica del filo a caldo.

PE foam - hot wire cutting failing

PE foam – hot wire cutting failing

Per contro il taglio di polistirene espanso √® molto pi√Ļ semplice, ma le caratteristiche meccaniche lasciano piuttosto a desiderare.

Polistirene espanso (Styrofoam)

Styrofoam hot wire cutted blade

Styrofoam hot wire cutted blade

——

As you can see in the above images, we started to mount the VentolONE prototype kit. It looks beautiful!

We had some problems with hot wire cutting, but we aren’t so experienced in this technique: next days we will try again, since this company is able to do (obviously, not in a DIY way!).

Turbina in kit – DIY turbine – 2

Ci siamo quasi, oggi comincia l’assemblaggio dei pezzi che abbiamo fatto tagliare a laser con spesa assolutamente contenuta da questa realt√† molto interessante: Lasermio.

P1030953

VentolONe 4.0 – components

———

Components arrived yesterday! We are ready to make our first DIY “serious” turbine!

All these parts were laser cutted by Lasermio, a really interesting and cheap way for makers to realize their projects!

Another rendering of VentolONE 4.0

Another rendering of VentolONE 4.0

Turbina in kit – DIY turbine

Manca poco, ormai! Ricordate il progetto di realizzare una turbina in kit commerciabile? Se ne era parlato per la prima volta al ritorno da Zanzibar, qui.
Ebbene, sembra proprio che ci siamo, che sia questione di giorni ormai, il tempo che ci giungano i pezzi fatti tagliare appositamente.

VentolONE 4.0 – kit

Nell’immagine sopra un rendering dell’ottimo lavoro messo in atto dalla nostra new-entry Marco Anfossi.

Non ci stupisce affatto, peraltro, che altri in altri Paesi stiano percorrendo strade analoghe, come Lynxwind che commercializza di già un bellissimo kit negli Stati Uniti (qui la pagina Facebook).

———

It’s just a question of a small time! Don’t you remember our project to build (to make, better!) a kit VAWT turbine, just like an IKEA furniture? We talked about here.

Well, we are waiting for the first kit, laser-cutted yesterday!

And, by the way, we found some other people try to do the same, like¬†Lynxwind and it’s beautiful turbine (here their Facebook page). Have a look, the way they realize the blades is very interesting!

Lynxwind vawt turbine

Makers!

Oggi siamo qui, in visita esplorativa! Il prossimo anno, magari, anche noi a esporre?

image

Update
Ci conoscevano gia’! Questi qua, tra gli altri!
image

Andrea: “avremmo in mente di produrre una piccola turbina eolica, il progetto e’ nato per Paesi in Via di Sviluppo, ora vorremmo estenderlo qui”
Andrea di Slowd: “aspetta, aspetta, aspetta, vi conosco, ho letto da qualche parte, aspetta…ah si’, il VentolONE!”

…! Godimento!

Update 2 – intriso di polemica e sarcasmo
Aggiungiamo alcune riflessioni relative alla giornata di oggi e alla fiera MakersItaly.
Chi scrive era da un po’ che non usava il treno, e ha scelto il treno in questa occasione per poter riflettere, pensare, godere del viaggio stesso.
Durante il viaggio chi scrive ha avuto modo di toccare con mano, casomai non lo sapessimo gia’, il livello di sfacelo generalizzato in cui si e’ infilato il nostro Paese. Treni in ritardo, viaggi di 250km che richiedono 5 ore (5 ore da Savigliano a Rho Fiera, 250km!) perche’ un bancomat in stazione, dopo un rifacimento costato milioni di euro, si e’ ben pensato di non metterlo, treni luridi fuori e luridi dentro, magari con riscaldamento bloccato. E poi alcuni episodi molto evocativi. Di fianco a me 2 ragazzi cinesi presumibilmente universitari: li osservo, e penso. Quando torneranno in Cina cosa racconteranno del nostro Paese? E torneranno in Italia, dopo, con i “picci” per investire? Credo proprio di no. Il capotreno ci comunica che il treno non ferma a Rho Fiera, strano mi dico, sul sito non era segnalato. Gi√†, Internet in Italia… Scendo allora a Magenta. Magenta e’ in Lombardia. Nella “Regione meglio amministrata d’Italia”, secondo il suo presidente dimissionario. Accidenti! Un degrado diffuso, strutture pericolanti (e pericolose), sporcizia, erbacce e liquami. Certo non e’ Milano Centrale per importanza, mi dico. Eppero’…qui c’e’ da prendersi una malattia solo a respirare! E, ricordate, 3 mesi fa noi si viaggiava in Tanzania in mezzo e insieme a quelli che qui tanta politica chiamano amabilmente “bingo bongo” e “baluba”. Insomma, non ci spaventa certo un po’ di casino, di solito…
Mentre scendiamo dal treno osserviamo il capotreno che fa scendere una coppia di squatter i quali protestano vivacemente perche’ non hanno il biglietto “ma vaffanculo ormai eravamo arrivati”. Li guardo, mi vieto di giudicarli, penso che se riescono ad andare in giro cosi’ conciati, luridi COME il treno (gi√†…) la loro vita non dev’essere stata granch√©, e anche ora… il treno riparte, il lui continua a protestare, scaglia la bottiglia contro una carrozza. Io sto li’, guardo, un misto di rabbia e di disgusto, alzando gli occhi verso una pensilina liberty transennata perch√© pericolante. Una signora sta cercando di prendere uno snack da una macchinetta self-bar (installata a cielo aperto…boh, misteri lombardi!). Qualcosa s’e’ inceppato. Non scende nulla. Boh. “Ragazzi, per favore, potreste tirare due calci alla macchinetta, non mi fa scendere nulla”, dice, rivolta ai due squatter. “No, no, non li’, piu’ in basso” continua, trafelata, colta di sorpresa dalla rapidita’ con cui i due si scagliano contro il vetro. La brioche scende, piu’ d’una, la signora prende la sua, altri orgogliosi prelevano dal novello pozzo di S.Patrizio. Io…io sono senza parole. La signora tornera’ stasera dal maritino e lamenter√† l’inefficienza dei servizi sociali che permettono che esistano in giro tipi cosi’. Che e’ una vergogna che viaggino sui treni senza biglietto. Che di sicuro si drogano e rovinano i treni stessi. Il maritino annuir√†, mangiando una fetta di torta, al cioccolato come la brioche della mogliettina. Squatter gli uni, squatter gli altri, intrisi tutti di quel “familismo amorale” che sembra ormai l’unico destino per questo nostro Paese. Sembra.
A sera, al rientro, passo da Milano Centrale su un treno di cui non si distingue assolutamente il colore, sporco com√¨√®. Gia’, Milano Centrale. Una stazione importante. Nella quale la biglietteria non si trova, non √® segnalata se non…di fronte alla biglietteria, che √® al piano inferiore. Chiedo lumi a un operatore del servizio informazioni, che sta parlando in inglese maccheronico con una donna di colore stupita che il suo treno sia cosi’ in ritardo (essendo di colore trattasi di bingobongo femmina, del resto non lo sa che questa e’ la Regione meglio amministrata d’Italia?). Finalmente trovo la biglietteria, sgarbatamente indicatami dall’operatore. C’√® la coda, stranieri tanti: cosa racconteranno a casa? E torneranno in Italia con i “picci”?
Cerco dunque una obliteratrice. Di 18 linee in cui guardo con relative macchinette UNA sola funziona, e c’√® la coda. Di italiani e di stranieri. Cosa racconteranno?
Mi avvio al binario, l’altoparlante richiama l’attenzione ai ritardi sulla linea nel tratto Torino-Novara causa lavori di potenziamento. Strano. L’ultima volta in treno a Milano era stata 7 anni fa, mi pare. C’erano gi√† analoghi problemi di ritardo per potenziamento, mi pare. Chiss√† che potenza che avr√† alla fine dei lavori, sar√† una potenza di millemilamilioni di Watt! Nel Piemonte, la regione sorella della regione meglio amministrata d’Italia: sar√† la medesima famiglia.
A questo punto mi chiedo, cari concittadini, fino a quando accetteremo tutto ci√≤? O moriremo di familismo amorale, del tipo “basta che non tocchi a me, e poi chissenefotte”?
E poi: cari amministratori a vario livello, di fronte a simili esempi di scempio umano, quando al 22 del mese guardate la vostra busta paga…non vi vergognate un po’? Ch√®, come diceva Fra Cristoforo nei Promessi Sposi, “verr√† un giorno”…

VentolINO in Fiera! – VentolINO in a charity fair

Il weekend scorso abbiamo partecipato insieme alla nostra ONLUS Solarecollettivo alla Fiera del Volontariato, organizzata a Saluzzo dal Centro Servizi per il volontariato della Provincia di Cuneo.

Tra le mille iniziative che Walter e sua moglie Dulce, instancabili, hanno coordinato all’interno dello stand, anche l’esposizione del VentolINO, per l’occasione dotato di una semplice rope pump del tutto analoga a quella realizzata a Zanzibar la scorsa estate.

Che dire: il VentolINO ha fatto sicuramente la sua figura, tanto da meritarsi una menzione sul giornale locale, pur tra mille e pi√Ļ meritorie associazioni di volontariato che presentavano le loro attivit√† nei rispettivi stand.


In particolare ci ha colpiti un piccolo episodio: due bambini si avvicinano, osservano curiosi e pensierosi la rope pump, poi l’uno fa all’altro:

‚Äúho capito come funziona, i tondini di gomma finiscono nell’acqua che rimane incastrata nel tubo e cos√¨ sale fino a uscire dall’altra parte‚ÄĚ !

In due minuti ci hanno confermato che…la rope pump e il VentolONE sono ‚Äútecnologie appropriate‚ÄĚ!

—–

We had been at Fiera del Volontariato in Saluzzo last weekend, a charity fair in a lovely town in the North of Italy. VentolINO was successfully exposed, with a simple rope pump moved by a DC motor for car wipers: lots of people looking at the turbine, at the rope pump, talking with us about its functioning. Also an old italian minister was interested…but we are not sure he understood the way VentolINO works!

Dulce with her potions!

Alette e palette – blades improvements

Altre modifiche in corso! Al fine di ottimizzare le prestazioni, in analogia con esperienze analoghe (vedasi windgenkits e la discussione su vawts.net) abbiamo pensato di integrare delle alette di estremit√† alle pale, per recuperare l’energia altrimenti persa in turbolenze, scie e vortici.

In letteratura aeronautica si parla di un 2-3%. Nel nostro caso anche questo aspetto è da verificare sperimentalmente.

Maggiori informazioni anche semplicemente su wikipedia.
Peraltro, per non realizzare ex-novo le pale stesse e i profili, abbiamo pensato per ora di applicare semplicemente una piccola sagoma alle due basi, come si vede in figura, ancora una volta realizzati per il tramite di Vectorealism:


La versione definitiva prevede gi√† fin d’ora l’integrazione delle alette nella sagoma stessa.

In order to improve turbine efficency we added two winglets to each blade, one on each side, just like windgenkits and vawts.net.

PASWAT says:

Winglets will create a small increase in the lift to drag ratio, and that will create a small increase in the overall energy conversion. Most of the energy conversion for conventional VAWT occurs on the upwind pass of the blades (about 80%). So if the winglet extends inward from the blade, it will have the most effect. A winglet extending outward from the blade must be considered from the perspective of added drag when upwind versus less tip vortex losses when downwind.

This improvement aims to reduce vortex, blade tip losses: it should be around 2-3%. Obviously we need to test this.
As you can see in the above images, we simply added a thin shape to the external airfoils, just to mantain the previous ones and reduce costs. The final version will include the winglets directly in the whole structure.

Nuovi dati – Datalogging goes on

Nuovi test, nuovi dati, ancora difficoltà.

In una giornata particolarmente ventosa, venerd√¨ 20 gennaio, abbiamo pensato di sfruttare l’occasione e misurare dati pi√Ļ realistici, avendo a che fare con vento “vero” a terra dell’ordine di 3-4 m/s, pi√Ļ che sufficienti per avviare la nostra piccola turbina. Purtroppo abbiamo avuto la dabbenaggine di non fissare il VentolINO al suolo, con conseguente rovinosa caduta della torretta e della turbina quando girava, pi√Ļ o meno, a 200 giri/min… caspita, un disastro! Il weekend √® trascorso perci√≤ nella riparazione del danno (oltre all’esternazione di colorite espressioni ūüėČ ) e nella nuova acquisizione di pochi dati, ancora con turbina priva di carico.

Ebbene, ancora non siamo ai risultati attesi: ci aspetteremmo valori di őĽ intorno a 1,4 – 1,5 , invece otteniamo poco pi√Ļ di 1,0. Eppure stiamo lavorando in similitudine geometrica e fluidodinamica con il VentolONE big!

prestazioni del VentolONE big
prestazioni (parziali) del VentolINO

Abbiamo avuto modo di notare, tra le altre cose, come il fissaggio delle pale sia particolarmente arduo, anzi, di fatto impossibile nella configurazione attuale: gi√† a 100 giri/min queste subiscono una accelerazione centrifuga del centro di massa (posto, a circa 45mm dal perno di fissaggio) pari 2,6 g (circa 26 m/s2), che non √® uno scherzo! Facile immaginare quello che poi accade nella realt√†, cio√® una “apertura” delle pale che, a lungo andare, tende a frenare la turbina stessa e a far scendere őĽ intorno a 0,75. Effettivamente non abbiamo pensato di misurare l’angolo di attacco dopo pochi giri, per vedere se lo spostamento √® immediato, il che giustificherebbe il valore ridotto di őĽ. Rimedieremo!

Conclusioni parziali: accidenti, queste pale vanno fissate in qualche maniera! magari anche drastica (un ulteriore perno), pur di poter sviluppare test accurati e raggiungere l’obiettivo di definire i parametri ottimali per il nostro VentolINO.

Inoltre: l’apertura delle pale suggerisce un possibile sistema per la frenatura dinamica della turbina: come da figura che segue, si potrebbe immaginare un sistema a molla, con molla non lineare, che intervenga solamente oltre un certo numero di giri: da pensare!

(image from an unknown turbine report)

As anyone can see in the above images we are getting on with tests. Unfortunately a wind gust dropped the VentolINO turbine down, so it took all the weekend to repair the damage: damn!

So we have some new data, but always lower than what we expected: since we works in geometric and fluid dynamics similarity, őĽ should reach a 1,4 – 1,5 value, like past summer. We noticed blades always pitch from 9 degrees outside, and than turbine comes to a smooth stop. So this could be the reason: it depends if it happens immediately, already at a low RPM. If so, a possible solution could be to add another one pin to prevent pitching.

This could also be a possible way to dynamically to slow down turbine RPM, may be with a non linear spring, just like the above image.

Datalogging is a hard work!

Stiamo svolgendo le simulazioni come preannunciato, e stiamo riscontrando qualche difficoltà: ottenere dei dati attendibili non è per nulla scontato, e nemmeno semplice!

VentolINO in partenza! – VentolINO ready to run!

Sistemare il VentolINO su una pedana nel cassone del pickup non è stato particolarmente arduo, e nemmeno sistemare sensori e la postazione di acquisizione a bordo macchina.

Potenti mezzi di acquisizione… – Hot hardware!

Per cominciare ci siamo dedicati all’analisi del funzionamento in condizioni di “fuga”, cio√® in assenza di carico. Qui cominciano i problemi.

Se da un lato infatti abbiamo raggiunto velocit√† di rotazione decisamente sostenute per una struttura tutto sommato semplice e realizzata in materiale plastico, con un picco di 480 giri/min, per contro l’analisi del rapporto di velocit√† lambda ci ha riservato una doccia fredda:

Insomma, ci aspettavamo un valore di lambda pari a 1,5, come nel modello in scala 1:1. E invece…

Pensa e ripensa, riteniamo che il posizionamento relativo di anemometro e carrozzeria e di VentolINO e carrozzeria generi una discrepanza nei dati.

Settaggi: si noti la posizione dell’anemometro rispetto alla vettura –take a look to the anemometer position!

 

La velocit√† del vento vista dalla turbina √® probabilmente inferiore a quella vista dall’anemometro, la quale √® probabilmente superiore a quella effettiva dell’automobile (di questo ci siamo effettivamente accorti in fase di acquisizione, imputando il fatto alla scarsa precisione del tachimetro dell’autovettura…).

Abbiamo perci√≤ provato a simulare numericamente come varierebbe la curva caratteristica nel caso si assuma come velocit√† effettiva l’80% di quella misurata, ottenendo i dati in verde sopra riportati, decisamente pi√Ļ in linea con le aspettative.

C’√® tuttavia un’altra possibilit√†: l’influenza delle turbolenze, che per un modellino in scala con similitudine fluidodinamica non perfetta possono assumere valori tali da inficiare le prestazioni.

Ci auguriamo di tratti solo di turbolenze sull’anemometro, e che la turbina abbia le prestazioni attese: per verificarlo ci baster√† posizionarlo meglio, vicino e in linea con la turbina, per ottenere conferma o smentita delle ipotesi.

We are getting on with tests on the turbine. Unfortunately first results are not as good as we expected, since turbine efficiency and speed factory are really lower than our bigger model.

As you can see in the upper graph, yellow dots are the ones coming from real data, speed factor around 1.00: bad! Green dots mean are virtual ones, coming from a numerical reduction to 80% of wind speed measured with the anemometer: these could be good!

The reason: as you can see in the above images, anemometer should be hardly disturbed by air turbulence coming from the car, and so the turbine, with higher speed for anemometer and lower one for turbine. If so, the turbine is under a lower energy current, so the bad results could be explained.

To verify this idea, we will mount the anemometer in front of the turbine, hoping to find a lower speed…and good performances for the turbine!

Anemometro e datalogger – datalogger and anemometer

In attesa di cominciare le sperimentazioni (domani) riportiamo di seguito lo schema elettrico dei sensori utilizzati per la misurazione della velocit√† del vento e della velocit√† di rotazione della turbina, sensori peraltro gi√† utilizzati questa estate e poi a Jambiani. Abbiamo previsto la possibilit√† di sfruttare un sensore reed (recuperato da un tachimetro da bicicletta) in luogo di un optoswitch (recuperato da una stampante) per limitare il consumo di corrente e permetterci di collegare l’alimentazione della scheda Arduino a una semplice batteria, ricaricata da un pannellino solare (in fututo, perch√® no, dalla turbina stessa).

vortex datalogger


Per completezza riportiamo anche il listato: in sostanza si utilizzano due interrupt e una scheda SD e si incrementano i relativi contatori associati. il codice è molto grezzo e migliorabile, i suggerimenti sono i benvenuti!

vortex anemometer

reed sensor: how it works

Waiting for testing the VentolINO turbine (tomorrow) this is the electric scheme with the sensors we use for measuring wind speed and turbine angular speed: we used these sensors this summer, too, and in Jambiani, and they works well. We just added a reed sensor instead of optoswitch to lower the power consuption and to be able to use a simple battery as power line for Arduino. Following the code, too: it is quite rough, but it works! Suggestions are welcomed!

// update: 11 gen 2012
#include <SD.h>
#include <Wire.h>
#include “RTClib.h”
// A simple data logger for the Arduino analog pins
// how many milliseconds between grabbing data and logging it. 1000 ms is once a second
#define LOG_INTERVAL  10000 // mills between entries (reduce to take more/faster data)
// how many milliseconds before writing the logged data permanently to disk
// set it to the LOG_INTERVAL to write each time (safest)
// set it to 10*LOG_INTERVAL to write all data every 10 datareads, you could lose up to
// the last 10 reads if power is lost but it uses less power and is much faster!
#define SYNC_INTERVAL 10000 // mills between calls to flush() Рto write data to the card  ***
uint32_t syncTime = 0; // time of last sync()

#define ECHO_TO_SERIAL   1 // echo data to serial port
#define WAIT_TO_START    0 // Wait for serial input in setup()

// the digital pins that connect to the LEDs
//- #define redLEDpin 2
//- #define greenLEDpin 3

// The analog pins that connect to the sensors
//- #define photocellPin 0           // analog 0
//- #define tempPin 1                // analog 1
//- #define BANDGAPREF 14            // special indicator that we want to measure the bandgap
//int ledPin = 13;                // il LED emettitore del sensore di presenza della stampante (sensore a forcella)   ***
¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† //¬† √® collegato al pin 13 (senza resistenza, perch√® l’uscita 13 √® gi√† limitata in corrente)
//int statusPin = 12;¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬†¬† // il LED di stato √® connesso al pin 12: cambia stato on/off a ogni passaggio delle linguette dell’albero della turbina
double rpmcount;  // rpmcount tiene conto dei passaggi delle linguette attraverso il sensore di posizione, per calcolare la velocità angolare della turbina
double rpmpass;¬† // rpmpass √® la variabile in cui si parcheggia il valore di rpmcount, quando si calcola la velocit√† angolare rpm (intanto la turbina continua a girare…!)
double rpm;¬† // rpm √® il valore della velocit√† angolare calcolata a partire da rpmcount –> rpmpass, in giri/min
double omega;  // rpm è il valore della velocità angolare, in rad/sec
//volatile int status;  ***
double count;¬† // count tiene conto dei passaggi sul sensore reed dentro l’anemometro Vortex, e serve a calcolare la velocit√† del vento
double pass;¬† // pass √® la variabile in cui si parcheggia il valore di count, quando si calcola la velocit√† del vento (intanto l’anemometro continua a girare…!)
unsigned long timePrevious;¬† // istante dell’ultimo polling di misura
unsigned long duration;¬† // tempo trascorso dall’ultimo polling di misura
double interval=LOG_INTERVAL;  // intervallo di polling
float windSpeed = 0;

//- #define aref_voltage 3.3         // we tie 3.3V to ARef and measure it with a multimeter!
//- #define bandgap_voltage 1.1      // this is not super guaranteed but its not -too- off

RTC_DS1307 RTC; // define the Real Time Clock object

// for the data logging shield, we use digital pin 10 for the SD cs line
const int chipSelect = 10;

// the logging file
File logfile;

void error(char *str)
{
¬† Serial.print(“error: “);
  Serial.println(str);

  // red LED indicates error
//-  digitalWrite(redLEDpin, HIGH);

  while(1);
}

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

#if WAIT_TO_START
¬† Serial.println(“Type any character to start”);
  while (!Serial.available());
#endif //WAIT_TO_START

  // initialize the SD card
¬† Serial.print(“Initializing SD card…”);
  // make sure that the default chip select pin is set to
¬† // output, even if you don’t use it:
  pinMode(10, OUTPUT);

  // see if the card is present and can be initialized:
  if (!SD.begin(chipSelect)) {
¬†¬†¬† error(“Card failed, or not present”);
  }
¬† Serial.println(“card initialized.”);

  // create a new file
¬† char filename[] = “LOGGER00.CSV”;
  for (uint8_t i = 0; i < 100; i++) {
¬†¬†¬† filename[6] = i/10 + ‘0’;
¬†¬†¬† filename[7] = i%10 + ‘0’;
    if (! SD.exists(filename)) {
¬†¬†¬†¬†¬† // only open a new file if it doesn’t exist
      logfile = SD.open(filename, FILE_WRITE);
      break;  // leave the loop!
    }
  }

  if (! logfile) {
¬†¬†¬† error(“couldnt create file”);
  }

¬† Serial.print(“Logging to: “);
  Serial.println(filename);

  // connect to RTC
  Wire.begin(); 
  if (!RTC.begin()) {
¬†¬†¬† logfile.println(“RTC failed”);
#if ECHO_TO_SERIAL
¬†¬†¬† Serial.println(“RTC failed”);
#endif  //ECHO_TO_SERIAL
  }
¬† logfile.println(“millis,datetime,delta_t,n_Vortex,numero_di_passaggi”);¬†¬†
#if ECHO_TO_SERIAL
¬† Serial.println(“millis,datetime,delta_t,n_Vortex,numero_di_passaggi”);
#endif //ECHO_TO_SERIAL

  // If you want to set the aref to something other than 5v
//  analogReference(EXTERNAL);

 duration = 0;
  count = 0;
  timePrevious = 0;
  rpmcount = 0;
  rpm = 0;

¬† attachInterrupt(1, arduino_anemometer, FALLING);¬† // l’interrupt dell’anemometro √® collegato al pin 1, attraverso la function arduino_anemometer
¬† attachInterrupt(0, rpm_fun, FALLING);¬† // l’interrupt del sensore a forcella √® collegato al pin 0, attraverso la function rpm_fun¬†¬†¬† ***

¬† //pinMode(ledPin, OUTPUT);¬† // pone in uscita il pin dell’emettitore del sensore a forcella¬† ***
¬† //digitalWrite(ledPin, HIGH);¬† // accende l’emettitore del sensore a forcella¬† ***

  //pinMode(statusPin, OUTPUT);    // pone in uscita il pin del LED di stato  *** 
  //status = LOW;  ***
  //digitalWrite(statusPin, status);  ***

  // use debugging LEDs
  //- pinMode(redLEDpin, OUTPUT);
  //- pinMode(greenLEDpin, OUTPUT);
}

void loop(void)
{
  DateTime now;
  duration = (millis() РtimePrevious);
  if (duration >= interval) {
//
//  // delay for the amount of time we want between readings
//  delay((LOG_INTERVAL -1) Р(millis() % LOG_INTERVAL));

  //- digitalWrite(greenLEDpin, HIGH);

  // log milliseconds since starting
  uint32_t m = millis();
  logfile.print(m);           // milliseconds since start
¬† logfile.print(“, “);¬†¬†¬†
#if ECHO_TO_SERIAL
  Serial.print(m);         // milliseconds since start
¬† Serial.print(“,”);¬†
#endif

  // fetch the time
  now = RTC.now();
  // log time
¬† logfile.print(‘”‘);
  logfile.print(now.year(), DEC);
¬† logfile.print(“/”);
  logfile.print(now.month(), DEC);
¬† logfile.print(“/”);
  logfile.print(now.day(), DEC);
¬† logfile.print(” “);
  logfile.print(now.hour(), DEC);
¬† logfile.print(“:”);
  logfile.print(now.minute(), DEC);
¬† logfile.print(“:”);
  logfile.print(now.second(), DEC);
¬† logfile.print(‘”‘);
#if ECHO_TO_SERIAL
¬† Serial.print(‘”‘);
  Serial.print(now.year(), DEC);
¬† Serial.print(“/”);
  Serial.print(now.month(), DEC);
¬† Serial.print(“/”);
  Serial.print(now.day(), DEC);
¬† Serial.print(‘ ‘);
  Serial.print(now.hour(), DEC);
¬† Serial.print(“:”);
  Serial.print(now.minute(), DEC);
¬† Serial.print(“:”);
  Serial.print(now.second(), DEC);
¬† Serial.print(‘”‘);
#endif //ECHO_TO_SERIAL

    pass=count;  // salva il valore presente di count in pass
    rpmpass=rpmcount;  // salva il valore presente di rpmcount in rpmpass
    duration = (millis() РtimePrevious);  // calcola il tempo trascorso
¬†¬†¬† timePrevious = millis();¬† // aggiorna timePrevious all’istante presente
    windSpeed = (pass/(duration/1000)*2.5);  // calcola la velocità del vento a partire dal numero di passaggi, dal tempo trascorso, con il coefficiente 2,5 (vedi Vortex + Caleb), in mph
¬†¬†¬† rpm = (rpmpass/4)/(duration/1000)*60;¬† // calcola la velocit√† angolare della turbina, tenendo conto di 4 linguette sull’albero, in giri/min
    omega=2*3.1416*rpmpass/duration*1000;  // converte la velocità angolare in rad/sec
#if ECHO_TO_SERIAL
¬†¬†¬† Serial.print(“,¬†¬†¬† “);
    Serial.print(duration);
¬†¬†¬† Serial.print(“,¬†¬†¬† “);
    Serial.print(pass);
¬†¬†¬† Serial.print(“,¬†¬†¬† “);
    //Serial.println(rpmpass);
    Serial.print(rpmpass);
¬†¬†¬† Serial.print(“,¬† –¬† “);
    Serial.print(windSpeed);
¬†¬†¬† Serial.print(“,¬†¬†¬† “);
    Serial.println(rpm);
    #endif //ECHO_TO_SERIAL
// azzera i contatori di misura
    count = 0;
    rpmcount = 0; 

¬†¬†¬† logfile.print(“, “);
    logfile.print(duration);
¬†¬†¬† logfile.print(“, “);
    logfile.print(pass);
¬†¬†¬† logfile.print(“, “);¬†¬†
    logfile.println(rpmpass);

¬† // Now we write data to disk! Don’t sync too often – requires 2048 bytes of I/O to SD card
  // which uses a bunch of power and takes time
  if ((millis() РsyncTime) < SYNC_INTERVAL) return;
  syncTime = millis();

  // blink LED to show we are syncing data to the card & updating FAT!
  //- digitalWrite(redLEDpin, HIGH);
  logfile.flush();
  //- digitalWrite(redLEDpin, LOW);

  }
  }
void arduino_anemometer()
{
  count++;
//if (status == LOW) {  // a ogni passaggio inverte lo stato del LED di stato, on/off
//    status = HIGH;
//  }
//  else {
//    status = LOW;
//  }
//digitalWrite(statusPin, status);
}

void rpm_fun()
{
  rpmcount++;  // incrementa il numero di passaggi delle linguette attraverso il sensore a forcella
//  if (status == LOW) {  // a ogni passaggio inverte lo stato del LED di stato, on/off
//    status = HIGH;
//  }
//  else {
//    status = LOW;
//  }
//  digitalWrite(statusPin, status);
}