Per via del numero di ingressi e uscite (per il display) sicuramente devi prendere un Arduino Mega.
Per visualizzare gli rpm di 16 fan ti serve un 40x4 , servono 10 caratteri per ogni fan, "FANx 1234 ", pertanto ci vanno solo quattro fan per ogni riga e su quattro righe sono sedici esatte.
In alternativa puoi usare un 4x20 visualizzando otto fan per volta a schermate alternate.
quella delle schermate alternate non è un ' idea malvagia!
devo verdere quanti bay da 5.25" avrò disponibili..
e un lcd come lo vedresti?troppo caro e troppo complicato?
per l'interfaccia con Xp via usb è fattibile?
grazie
max
p.s. mi dimenticavo di precisare che le ventole sono alimentate/controllate da un rheobus esterno, il Coolermaster Pwm wind rider, -un aggeggino utilissimo- che a sua volta butta fuori 6 cavi di monitoria aventi solo il terzo pin cablato (quello tachimetrico appunto)
quindi non ho bisogno, e non devo pilotare, le ventole con l'arduino, al quale arriverebbero già soltanto i cavi tachimetrici -già disaccoppiati- con il loro bel valore degli rpm...
Il 20x4 o 40x4 e' prorprio un lcd, e non e' molto caro. Va capito in che modo esce il segnale delle ventole, e' digitale o analogico? Il programma e' fattibilissimo, basta scriverlo...
Vado a memoria, l'uscita tachimetrica delle ventole per PC è di tipo open drain, serve una resistenza di pull up, e fornisce due impulsi per ogni rotazione della ventola.
Leggendo la frequenza, in Hertz, degli impulsi e moltiplicandola per 30 (x 60 / 2) è possibile risalire agli RPM.
Federico:
Il 20x4 o 40x4 e' prorprio un lcd, e non e' molto caro. Va capito in che modo esce il segnale delle ventole, e' digitale o analogico? Il programma e' fattibilissimo, basta scriverlo...
scusa, intendevo di usare o un VFD o appunto un LCD...
il segnale tachimetrico della ventola è di tipo open collector, da due impulsi ogni giro...
puoi darmi una mano nella realizzazione? (ovviamente non gratis..)
astrobeed:
Vado a memoria, l'uscita tachimetrica delle ventole per PC è di tipo open drain, serve una resistenza di pull up, e fornisce due impulsi per ogni rotazione della ventola.
Leggendo la frequenza, in Hertz, degli impulsi e moltiplicandola per 30 (x 60 / 2) è possibile risalire agli RPM.
mi sembra di capire che quello che serve , di base , è che l' arduino funzioni come un multi-frequenzimetro, giusto?
In linea di massima si, devi realizzare un frequenzimetro multicanale.
Facciamo due conti di massima, ipotizzando per eccesso che le ventole arrivano fino a 10000 rpm la frequenza massima degli impulsi è circa 10000/60*2 = 333 Hz, valore tranquillamente gestibile da Arduino.
C'è da lavorare abbastanza sul software perché gestire 16 canali in real time non è semplicissimo.
astrobeed:
In linea di massima si, devi realizzare un frequenzimetro multicanale.
Facciamo due conti di massima, ipotizzando per eccesso che le ventole arrivano fino a 10000 rpm la frequenza massima degli impulsi è circa 10000/60*2 = 333 Hz, valore tranquillamente gestibile da Arduino.
C'è da lavorare abbastanza sul software perché gestire 16 canali in real time non è semplicissimo.
le ventole al massimo arriveranno a 2200 rpm quella più spinta,le altre sono sotto i 1800..
quindi il circuito si dividerà in tre sezioni: ingessi ventole/frequenzimetro - gestione display - gestione interfaccia usb..
Ciao maxmax80
2200 Upm sono con 2 segnali per giro 72Hz oppure un periodo di ca 13,6mSec
Visto che non é critico di monitorare secondo per secondo i giri delle ventole basta controllare una dopo l' altra con las semplicissima funzione pulseIn()
pulseIn blocca l' esecuzione del programma ma visto i tempi non é un problema. Non credo che un aggiornamento ogni 1-2 secondi sia un problema. http://arduino.cc/en/Reference/PulseIn
Se usi anche le entrate analogiche come Pin Digitali e piloti il display con 4 bit Ti basta un Arduino con un Atmega328 (2 pin per seriale, 8 per gli 8 segnali delle ventole e 7 per il Display; Ti restano ancora 3 per 3 pulsanti).
uwefed:
Ciao maxmax80
2200 Upm sono con 2 segnali per giro 72Hz oppure un periodo di ca 13,6mSec
Visto che non é critico di monitorare secondo per secondo i giri delle ventole basta controllare una dopo l' altra con las semplicissima funzione pulseIn()
pulseIn blocca l' esecuzione del programma ma visto i tempi non é un problema. Non credo che un aggiornamento ogni 1-2 secondi sia un problema. http://arduino.cc/en/Reference/PulseIn
Se usi anche le entrate analogiche come Pin Digitali e piloti il display con 4 bit Ti basta un Arduino con un Atmega328 (2 pin per seriale, 8 per gli 8 segnali delle ventole e 7 per il Display; Ti restano ancora 3 per 3 pulsanti).
Ciao Uwe
sì sì anche se con il pulseIn l'aggiornamento non è immediato non importa..
però da quello che mi dici mi sembra che tu abbia calcolato 8 ventole, invece le ventole sono 16..
per usare le entrate analogiche come digitali bisogna fare qualcosa di particolare come programmazione?(perchè usare dei convertitori A7D non so se convenga economicamente..)
per il display dici che bastano 4 bit?
i pulsanti non li ho bisogno..al massimo l' on/off del display..
ho visto le dimensioni dell' arduino mega: dovrebbero essere 10x5.5 cm circa, giusto?
poi ovvimante devo aggiungere altri componeti , quindi le dimensioni aumentano, giusto?
dite che in un bay da 3.5" per hdd ci sta tutto o dovrò usare un bay da 5.25"?
uwefed:
ups
Hai ragione, mi sono sbaglaito. Se hai 16 ventole Ti serve un arduino piú grande oppure aggiungi un multiplexer
Ciao Uwe
calcolando che -per tagliare la testa al toro- userò un arduino mega, in un bay da 3.5" per hdd ci sta tutto o dovrò usare un bay da 5.25"?
o addirittura più bay da 5.25"?
maxmax80:
p.s. mi dimenticavo di precisare che le ventole sono alimentate/controllate da un rheobus esterno, il Coolermaster Pwm wind rider, -un aggeggino utilissimo- che a sua volta butta fuori 6 cavi di monitoria aventi solo il terzo pin cablato (quello tachimetrico appunto)
quindi non ho bisogno, e non devo pilotare, le ventole con l'arduino, al quale arriverebbero già soltanto i cavi tachimetrici -già disaccoppiati- con il loro bel valore degli rpm...
Non ho ben capito: devi collegare ogni ventola singolarmente ad Arduino o no? Da quanto dici sopra sembra di no, poi pero' dopo discutete su come collegare le ventole ad Arduino...
wow, il display per 3310 è un' ottima soluzione, però mi sa che non ci sono abbastanza caratteri:
In realtà il calcolo dei caratteri fatti precedentemente non è esatto
calcola ipotizzando i giri ed il nome incolonnati, quello che occupa più caratteri è proprio il nome con la decina, quindi ad esempio FAN13 saranno -con lo spazio per il nome sucessivo- 6 caratteri.
le opzioni sono 3:
in linea su 6 righe:
FAN01 FAN02 FAN03 FAN04 FAN05
RPM RPM RPM RPM RPM
FAN06 FAN07 FAN08 FAN09 FAN10
RPM RPM RPM RPM RPM
FAN11 FAN12 FAN13 FAN14 FAN15
RPM RPM RPM RPM RPM
29 caratteri, 6 righe (ma sacrifico una ventola)
per il collegamento usb non so come scrivere il programma, devo ancora recuperare informazioni (e possibilmente un utente di milano che mi dia una mano.. )
I caratteri "FAN" sono inutili (in gergo si dice che "non contengono informazione"), e con l'idea di Astrobeed di usare schermate alternate, puoi usare comodamente il display 3310:
Col vantaggio non indifferente che volendo puoi anche mostrare i valori graficamente, come barre verticali: l'occhio umano legge molto piu' facilmente e velocemente i grafici che non i numeri: una barra troppo corta salterebbe subito all'occhio!
16 barre verticali larghe 3 pixel e spaziate di 1 occupano 64 pixel.
Boh, alfanumericamente sono riuscito a usarlo in 30 secondi con un rapido copia-incolla, senza aver mai usato un display LCD in vita mia. Immagino che graficamente non sia troppo diverso: se hai una funzione per accendere e spegnere un punto, a scrivere una funzione che disegna un rettangolo ci vuole un attimo.
Avendo le librerie non è difficile, ma resta comunque il fatto che il display non è agevole da gestire, ha dei limiti.
Io ho lo shield di Nuelectronics e ci ho fatto anche dei giochini usando la sola modalità testuale però resta il fatto che alle volte ti verrebbe da batterlo nel muro XD
Ad esempio, se scrivi in fondo alla riga, i caratteri poi passano di sotto scorsi in basso di 1 pixel, perché anche se è "spacciato" per testuale, in realtà quel display è completamente e solo grafico, tant'è che i caratteri sono scritti usando array di bit (come i vecchi font dei computer ad 8 bit). Non hai un modo per "leggere" un carattere perché non hai un buffer video: devi costruirtelo tu usando un array altrimenti non puoi sapere che cosa c'è sullo schermo in una determinata posizione ecc....
Questi son tutti problemi che sono venuti fuori scrivendo i giochi ed avendo la necessità di usare il display in maniera testuale un po' "avanzata".