Go Down

Topic: ardu uno ce la fà? quanto è potente?? (Read 2507 times) previous topic - next topic

mflash

ciao a tutti , dopo alcune settimane a studiare arduino ho finito di "fritzingare"  il mio progetto, ma prima di procedere con l'acquisto del materiale ho il dubbio se riesce un solo arduino uno a fare tutte queste cose o se devo dividere il carico fra due ardu...

brevemente: si tratta del classico lettore di consumi di un'impianto fotovoltaico, dei consumi di casa, invio dei dati a 2 display e sul web.

le cose che deve fare sono:
- lettura analogica tramite sensore di corrente, della produzione del fotovoltaico, fare la media fra 1000 letture analogiche  e printare il risultato ogni uno o due secondi
- identico come sopra ma dal contatore enel per calcolare acquisto o vendita di energia, media di 1000 letture  e print.
- sensore per calcolare la tensione che mi serve per avere più precisione nel calcolo dei due punti precedenti.
- creazione di una serie di dati , tipo energia prodotta , consumata etc etc con i riferimenti orari ( rtc preso online ) ed invio di questi su un server web tramite lan rj45.
- gestire due display con gli stessi dati uno pilotato in digitale ed uno in seriale

riesce il processore come potenza a fare tutto questo secondo voi ??

grazie e buon anno a tutti

ratto93

Si, senza dubbio ma, a che ti servono 1000 o 500 letture analogiche al secondo su due canali ? voglio dire per controllare la produzione di corrente ti basta campionare a 20-30Hz che comunque sono 20-30 letture al secondo, io non salirei oltre questa velocità anche perchè dubito che sensori tipo quelli della serie ACS o similari a costi non esorbitanti possano avere un refresh rate superiore appunto a 20-30Hz...
Per gli schermi bisogna valutare, io ne metterei due seriali o due via I2C, la comunicazione tramite rj45 la fai attraverso una Eth shield o cosa ? se si tra memoria usata e i pin usati arduino uno forse ti diventa stretto...
questa cosa non la capisco però, che vuoi dire ?
Code: [Select]
- sensore per calcolare la tensione che mi serve per avere più precisione nel calcolo dei due punti precedenti.

ciaoo :)
Se corri veloce come un fulmine, ti schianterai come un tuono.

#2
Jan 04, 2013, 12:12 am Last Edit: Jan 04, 2013, 12:14 am by MauroTec Reason: 1
1000 letture al secondo significa leggere (1000/50Hz) 20 volte lo stesso contenuto e come dice ratto a che ti serve?

Se vuoi avere la media devi estendere il tempo fino ad esempio 10 secondi, cioè campioni ogni 10 secondi per 6 volte sommi i valori ottenuti e dividi per 6 e hai la media di consumo in quel minuto.

Comunque non c'è la fa, almeno la uno e la MEGA no, la DUE ha potenza da vendere.

Ciao.
AvrDudeQui front end per avrdude https://gitorious.org/avrdudequi/pages/Home

ratto93

Ciao Mauro :)
Perchè dici che non ce la fà ? secondo me ottimizzando un poco il codice e risicando con funzioni furbe forse ce la fa', oppure mettendo due micro in parallelo, uno fa le letture e gestisce gli LCD mentre l'altro gestisce le comunicazioni e la parte relativa alla matematica che gli serve....
Se corri veloce come un fulmine, ti schianterai come un tuono.

mflash

#4
Jan 04, 2013, 12:41 pm Last Edit: Jan 04, 2013, 12:47 pm by mflash Reason: 1
rispondo alle vostre domande ma scusatemi se non sono precisissimo perchè per me è tutto un mondo nuovo questo.:

1) i due sensori che utilizzerei per misurare la corrente sono il asc714  http://www.robot-italy.com/it/1187-acs714-current-sensor-carrier-30-to-30a.html
2)  ho detto un cosa sbagliata quando parlavo di 1000 letture AL SECONDO, in realta era la media di mille letture senza riferimenti temporali. Questo lo vedo fare in altri progetti simili dove però usano le pinze amperometriche e dicono che avendo la lettura su un segnale alternato non si sà dove avviene la lettura di preciso e quindi facendo la media di una numero alto di letture esempio 1000 - 3000 si ottiene un valore abbastanza veritiero.
3) mi chiedete perchè la lettura della tensione , serve per calcolare i watt precisi . qui un'esempio di come realizzare questa lettura http://openenergymonitor.org/emon/buildingblocks/measuring-voltage-with-an-acac-power-adapter
4) vorrei fare tutto con un arduino ethernet puro senza shiel
5) userò 2 lcd rgb i2c cosi risparmio pin e non dovrei aver problemi di pin


quindi ricapitolando:
- lettura volt
- lettura ampere fotovoltaico
- calcolo watt prodotti
- lettura ampere enel
- calcolo watt consumati
- calcolo watt venduti
- printo sui 2 display lsd rgb un pò dei numeri appena calcolati con un refresh ogni 3 sec e qualche cambio colore lcd in base a determinati valori
- leggo rtc sul web
- preparo dati dei vari watt prodotti/venduti/consumati in un file tipo csv da spedite su un server
- invio questi dati ogni 5 minuti ? al server su internet
( in alternativa agli ultimi due passaggi posso far salvare i dati su sd e poi far fare una rischiesta dal server web ogni 5 minuti di inviare questi  dati)

ci riuscirà la arduino ethernet come potenza ?

mflash


Ciao Mauro :)
Perchè dici che non ce la fà ? secondo me ottimizzando un poco il codice e risicando con funzioni furbe forse ce la fa', oppure mettendo due micro in parallelo, uno fa le letture e gestisce gli LCD mentre l'altro gestisce le comunicazioni e la parte relativa alla matematica che gli serve....


scusa cosa intendi con " due micro in parallelo" ?? dividere il tutto su due arduini ?

ratto93



Ciao Mauro :)
Perchè dici che non ce la fà ? secondo me ottimizzando un poco il codice e risicando con funzioni furbe forse ce la fa', oppure mettendo due micro in parallelo, uno fa le letture e gestisce gli LCD mentre l'altro gestisce le comunicazioni e la parte relativa alla matematica che gli serve....


scusa cosa intendi con " due micro in parallelo" ?? dividere il tutto su due arduini ?

Esattamente, solo che si usa un Arduino e un micro identico a quello dell'arduino programmato con lo stesso linguaggio ma montato in una scheda custom fatta da te..
Se corri veloce come un fulmine, ti schianterai come un tuono.

lesto

quello che dici è possibile, l'unico problema è che non c'è memoria per 1000 letture su una UNO, e forse nemmeno sulla MEGA. Ma puoi ovviare salvando i dati su SD, o facendo una "media" che non tenga conto di tutti i valori.

Per esempio se fai

lettura = (lettura + nuovaLettura)/2

stai facendo una media pesata, dando a tutte le letture precedenti un peso uguale pari al peso dell'ultima lettura, quindi una lettura abbastanza sensibile alle variazioni (notare che la prima lettura non va divisa per due, oppure si inizializza lettura = valoreMedioAtteso)
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lupo95

oppure potresti fare una cosa così :)

lettura=lettura+nuovaLettura;
Nlettura=Nlettuda+1;
media=lettura/Nlettura;


lesto

sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

lupo95

per ovviare a questo problema si potrebbe fare una cosa così

void setup()
{
int N2lettura=0;
}

void loop()
{
if(Nlettura<10000)   // ho messo un numero a caso nn ho idea di quando vada in overflow
{
lettura=lettura+nuovaLettura;
Nlettura=Nlettuda+1;
media=lettura/Nlettura;
}
if(Nlettura>=10000)   // ho messo un numero a caso nn ho idea di quando vada in overflow
{
lettura=lettura+nuovaLettura;
N2lettura=N2lettura+1;
media=lettura/(Nlettura+N2lettura);
}
}

può essere una soluzione?

AlessioZ

Ciao mflash,
sto cercando di fare una cosa simile alla tua (controllo produzione/consumi fotovoltaico) e sono alla scelta dei sensori di corrente.
Ho letto che tu, dopo qualche ricerca, sei indirizzato verso gli ACS714. Quello che mi chiedo è: quale è la lunghezza massima tra il Sensore e Arduino?

Inoltre mi permetto di portare alla tua attenzione Questo Topic. In pratica ho risolto il problema della Energia Generata leggendola direttamente dall'Inverter via LAN. Può esserti utile?

Alessio.

Testato

visto che l'unico possibile problema e' il discorso delle letture necessarie a fare la media, io andrei verso un discorso hw invece che sw, o trovi un sensore che ti da gia' di per se in uscita un segnale continuo che e' rappresentante di cio' che appare in ingresso, oppure lo rendi continuo tu a livello hw.
In questo modo il micro non avra' veramente nulla da fare e potra' eseguire in tranquillita' tutti gli altri compiti
- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

hal3000

secondo me siete fuori strada.
l'unità di misura dell'energia elettrica è il wattora. per misurarlo devi fare la sommatoria di ( VxI ) / la frequenza di campionamento (50-100Hz) a questo punto hai i watt al secondo (e la potenza istantanea).
ogni 3600 watt secondo hai 1 watt ora.
ora questo valore lo sommi e lo salvi ogni tot minuti a seconda di quanti valori vuoi avere sul grafico.

pablos

Quote
quello che dici è possibile, l'unico problema è che non c'è memoria per 1000 letture su una UNO, e forse nemmeno sulla MEGA. Ma puoi ovviare salvando i dati su SD, o facendo una "media" che non tenga conto di tutti i valori.

Non credo sia la scelta migliore usare una sd per fare il campionamento
no comment

Go Up