Go Down

Topic: Ventole PC lettura giri con Arduino (Read 960 times) previous topic - next topic

amario57

Da quanto leggo in questo topic:
http://www.pcsilenzioso.it/forum/showthread.php?t=19526
le ventole per pc hanno varie caratteristiche, tra le quali la possibilità di ricavare dal filo giallo ( quelle a 3 fili ) la velocità di rotazione, ma con Arduino come posso "leggerla" ??

astrobeed


le ventole per pc hanno varie caratteristiche, tra le quali la possibilità di ricavare dal filo giallo ( quelle a 3 fili ) la velocità di rotazione, ma con Arduino come posso "leggerla" ??


Sul terzo filo è presente un impulso, in alcuni modelli di ventola due, per ogni rotazione della ventola, in pratica un semplice encoder monocanale, puoi calcolare la velocità di rotazione sia contando il numero di impulsi ogni secondo oppure dall'inverso del periodo di rotazione.
Attenzione che a seconda del modello di ventola, e della tensione di alimentazione, la tensione degli impulsi può essere sia 5V che 12V, nel secondo caso è indispensabile abbassarla a 5V prime di collegarla ad un pin di Arduino.

amario57


Sul terzo filo è presente un impulso, in alcuni modelli di ventola due, per ogni rotazione della ventola, in pratica un semplice encoder monocanale, puoi calcolare la velocità di rotazione sia contando il numero di impulsi ogni secondo oppure dall'inverso del periodo di rotazione.

Grazie per il suggerimemnto astrobeed ma :
encoder monocanale ????
Scusa la mia ignoranza ma in che senso ??

astrobeed


encoder monocanale ????
Scusa la mia ignoranza ma in che senso ??


Gli encoder possono avere più canali, quelli più semplici ne possiedono solo uno da dove escono tot impulsi per ogni rotazione, un esempio classico sono gli encoder low cost di tipo magnetico presenti su alcuni motori.

amario57

Quindi solo software non è possibile?

astrobeed


Quindi solo software non è possibile?


Cosa intendi con "solo software", è abbastanza ovvio che per rilevare un qualunque grandezza fisica hai sempre e comunque bisogno di un qualche tipo di sensore, nel caso della ventolina è l'encoder integrato.

BrainBooster

Come diceva astro,in quelle ventoline ci sono dei sensori ad effetto di hall che ad ogni giro ti danno un impulso del quale puoi leggere il periodo con pulsein.

amario57


alex27riva

Ho provato proprio oggi a misurare la velocità di una ventola a 3 pin, lo sketch completo lo trovate a questo link:
http://alessandro-riva-elettronica.blogspot.it/2014/04/misurare-la-velocita-di-una-ventola-per.html
Ho preso spunto da un sito inglese e ho semplificato molto lo sketch, il programma è interamente commentato.
Spero che il mio lavoro sia utile a qualcuno...
Arduino UNO starter kit.

gpb01


...
Spero che il mio lavoro sia utile a qualcuno...


Bel lavoro, però, affinché sia utile ... è bene che venga corretto ;)

Tu dichiari :

Code: [Select]
int Giri;        //memorizza il numero di giri al secondo

... ma giri è una variabile ch usi sia da dentro la ISR che da fuori e, per evitare problemi ... DEVE essere dichiarata volatile ;)

Code: [Select]
volatile int Giri;       //memorizza il numero di giri al secondo

Correggi il codice così da non indurre nello stesso errore i lettori :)

Guglielmo
Search is Your friend ... or I am Your enemy !

alex27riva



...
Spero che il mio lavoro sia utile a qualcuno...


Bel lavoro, però, affinché sia utile ... è bene che venga corretto ;)

Tu dichiari :

Code: [Select]
int Giri;        //memorizza il numero di giri al secondo

... ma giri è una variabile ch usi sia da dentro la ISR che da fuori e, per evitare problemi ... DEVE essere dichiarata volatile ;)

Code: [Select]
volatile int Giri;       //memorizza il numero di giri al secondo

Correggi il codice così da non indurre nello stesso errore i lettori :)

Guglielmo

Ok, grazie per la correzione, ma che problemi può causare una variabile non volatile?
Arduino UNO starter kit.

gpb01

#11
Apr 29, 2014, 10:42 pm Last Edit: Apr 29, 2014, 10:47 pm by gpb01 Reason: 1

Ok, grazie per la correzione, ma che problemi può causare una variabile non volatile?


Hai letto attentamente il link che ti ho messo per la parola chiave "volatile" ???  :smiley-eek: :smiley-eek: :smiley-eek:

E' chiaramente spiegato ...

Guglielmo

P.S. Comunque evita che ottimizzazioni effettuate dal compilatore vadano ad impattare in modo errato con il tuo programma.
P.P.S. ... QUI trovi una spiegazione un po' più dettagliata
Search is Your friend ... or I am Your enemy !

pablos

ma la ventola è  a 12v e alimenti tutto con una piletta da 9v? quanto dura 5 minuti? :)
no comment

alex27riva

Ok, grazie ho capito a cosa serve una variabile "volatile"

ma la ventola è  a 12v e alimenti tutto con una piletta da 9v? quanto dura 5 minuti? :)

La ventola alimentata 9V consuma 50mA, la batteria è da 400mah quindi dura teoricamente 8 ore! altro che 5 minuti..
Arduino UNO starter kit.

pablos

#14
May 02, 2014, 10:49 pm Last Edit: May 02, 2014, 10:58 pm by pablos Reason: 1
hai ragione, quasi quasi alimento il mio condizionatore a 125 :) .... tanto funziona lo stesso
Comunque ho scritto "tutto" compreso arduino.
8 ore? se ci riesci mi mangio una me..rendina  XD
no comment

Go Up