Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Domanda da 1000€ su analogRead()

Progetti, interfacciamento, discussioni varie su questa piattaforma.

Moderatori: Foto UtenteMassimoB, Foto Utentexyz, Foto UtenteWALTERmwp

0
voti

[1] Domanda da 1000€ su analogRead()

Messaggioda Foto Utentefrancicoma » 9 gen 2018, 23:28

E' possibile sfruttare la frazione di tempo in cui arduino aspetta che l'adc gli dia i dati?

da quanto mi ricordo con i PIC la lettura analogica nei microcontrollori viene gestita impostando HIGH un bit del registro del ADC il quale a sua volta alzerà un altro bit a lettura ultimata.
arduino dissipa completamente il tempo che intercorre tra questi due momenti, nel moi progetto mi sarebbe essenziale riuscire a recuperare tale tempo per far girare il programma principale, Come potrei Fare?

Grazie mille in anticipo
Avatar utente
Foto Utentefrancicoma
60 1 6
Frequentatore
Frequentatore
 
Messaggi: 151
Iscritto il: 5 lug 2013, 1:23

0
voti

[2] Re: Domanda da 1000€ su analogRead()

Messaggioda Foto Utentealdofad » 9 gen 2018, 23:51

Non so risponderti ma forse posso favorire una deduzione.
Ricordo bene che nelle prime versioni di Arduino (0.22 circa), se non si inseriva almeno un delay(10) nel loop, le letture analogiche risultavano molto inesatte. Nelle versioni successive questo obbligo venne meno.
Avatar utente
Foto Utentealdofad
783 4 5
Sostenitore
Sostenitore
 
Messaggi: 650
Iscritto il: 21 gen 2014, 1:07
Località: Treviso

0
voti

[3] Re: Domanda da 1000€ su analogRead()

Messaggioda Foto Utentefrancicoma » 9 gen 2018, 23:59

il web non delude mai!
dopo 20min di ricerca ho trovato un sito molto carino!
consiglio la lettura!!! ;-)
https://www.gammon.com.au/adc
Avatar utente
Foto Utentefrancicoma
60 1 6
Frequentatore
Frequentatore
 
Messaggi: 151
Iscritto il: 5 lug 2013, 1:23

1
voti

[4] Re: Domanda da 1000€ su analogRead()

Messaggioda Foto UtenteMarcoD » 10 gen 2018, 0:03

Quanto tempo stimi che duri l'esecuzione dell' analogread ?
Forse puoi gestire la la lettura della conversione A/D con un interrupt. Ma non so come fare .
Avatar utente
Foto UtenteMarcoD
5.066 2 6 13
Master EY
Master EY
 
Messaggi: 1701
Iscritto il: 9 lug 2015, 16:58
Località: Torino

0
voti

[5] Re: Domanda da 1000€ su analogRead()

Messaggioda Foto Utentefrancicoma » 10 gen 2018, 20:09

sicuramente poco, nel progetto sto facendo misurazoni true RMS di tensione e corrente a 230V quindi mi serve un campionamento continuo , avevo provato anche eseguire la misura di 10 periodi e dopo eseguire il resto del codice ma è troppo lento, devo comandare anche un triac e dargli continuamente gli impulsi... non posso permettermi funzioni con loop a vuoto
Avatar utente
Foto Utentefrancicoma
60 1 6
Frequentatore
Frequentatore
 
Messaggi: 151
Iscritto il: 5 lug 2013, 1:23

1
voti

[6] Re: Domanda da 1000€ su analogRead()

Messaggioda Foto UtenteSandroCalligaro » 10 gen 2018, 23:02

Se devi misurare il valore RMS, dovrai (immagino) avere un campionamento regolare...
In linea di principio sarebbe meglio non farlo con dei delay o letture continue, ma con interrupt.
Avatar utente
Foto UtenteSandroCalligaro
1.503 4 4
Expert EY
Expert EY
 
Messaggi: 651
Iscritto il: 6 ago 2015, 19:25

0
voti

[7] Re: Domanda da 1000€ su analogRead()

Messaggioda Foto Utentedadduni » 11 gen 2018, 18:16

Non so con l interfaccia arduinica come si fa ma sull' atmega una volta impostato il prescaler dell' ADC si può impostare il free running mode in cui fa continue letture e generata un interrupt a fine si ogni singola lettura. Per l RMS dentro la routine di interrupt si può semplicemente fare la moltiplicazione e l accumulo poi il resto lo gestisce il main
Avatar utente
Foto Utentedadduni
1.046 1 6 10
Expert EY
Expert EY
 
Messaggi: 774
Iscritto il: 23 mag 2014, 16:26

1
voti

[8] Re: Domanda da 1000€ su analogRead()

Messaggioda Foto UtentePietroBaima » 11 gen 2018, 18:33

Non è una buona idea fare moltiplicazioni in un service di interrupt.
Generatore codice per articoli:
nomi
emoticon
citazioni
formule latex
Avatar utente
Foto UtentePietroBaima
72,1k 6 12 13
G.Master EY
G.Master EY
 
Messaggi: 8424
Iscritto il: 12 ago 2012, 1:20
Località: Londra

0
voti

[9] Re: Domanda da 1000€ su analogRead()

Messaggioda Foto UtenteMarcoD » 11 gen 2018, 18:44

Dovresti impostare il progetto da un punto di vista matematico-sistemistico:
Quale è la frequenza massima del segnale pseudo sinusoidale da acquisire,
quale è il valore massimo di distorsione,
quale è il massimo errore di misura che puoi tollerare ?
Da cui forse ricavi la minima frequenza di campionamento e il numero di campioni che ti servono per i calcoli.
Forse puoi fare dei calcoli di simulazione off-line ( in C++, basic, processing, mathcad, quello che preferisci ); cerco di spiegarmi: supponi di avere la sinusoide spezzettata in 1000 campioni, calcoli il valore efficace, poi prendi solo un campione ogni 10 (hai ora solo 100 campioni) ricalcoli il valore efficace, di quanto cambia rispetto a quello calcolato precedentemente?
E se la sinusoide è distorta, cosa capita?
devi prendere i campioni per un periodo esatto ? Se no. quale errore commetti?
...
dopo vedi se l'hardware è in grado a soddisfare quello che vuoi fare.
O_/
Avatar utente
Foto UtenteMarcoD
5.066 2 6 13
Master EY
Master EY
 
Messaggi: 1701
Iscritto il: 9 lug 2015, 16:58
Località: Torino

0
voti

[10] Re: Domanda da 1000€ su analogRead()

Messaggioda Foto Utentedadduni » 11 gen 2018, 19:14

Non è una buona idea fare moltiplicazioni in un service di interrupt.

Questo è certamente vero ma ho pensato che l'OP volesse monitorare la tensione di rete a 50Hz per calcolare l'RMS e pilotare un triac.
Senza conoscere l'applicazione direi che il triac non venga pilotato a più di 100Hz ossia ogni volta che la tensione di rete passa per lo 0 e che, per campionare 50Hz una frequenza di campionamento di 1ksps sia più che sufficiente. A questi rate di frequenze c'è tutto il tempo necessario per far fare al micro una moltiplicazione e una somma senza doversi impelagare in soluzioni più complesse (credo)

Però sono deduzioni tirate un po' a caso, probabilmente sbaglio #-o
Davide
Avatar utente
Foto Utentedadduni
1.046 1 6 10
Expert EY
Expert EY
 
Messaggi: 774
Iscritto il: 23 mag 2014, 16:26

Prossimo

Torna a Arduino

Chi c’è in linea

Visitano il forum: Nessuno e 1 ospite