|
| | | | | Bolle
| Inviato il: 26/09/2017 12:47:43
|
Per avere un adc (virtuale) di 16 bit (10+6 di oversamplig)...dovremmo fare 64 letture in 10 millisecondi...cioè avere OCR1A = 2441; Non spacca il nanosecondo...e non è preciso ...ma non ci interessa molto . Quindi il codice Arduino diventa:
#define IngressoAnalogico A0
unsigned int ValoreLetto;
unsigned char START;
int timer1_counter;
int TT;
void setup()
{
TT=0;
ValoreLetto=0;
Serial.begin(115200); //Velocità seriale
noInterrupts(); // disable all interrupts
TCCR1A = 0;
TCNT1 = 0;
OCR1A =2441; // <<<<---------Valore di reset C
TCCR1B = 0;
TCCR1B |= (1 << WGM12); // Imposta il Timer1 in modalità CTC
TCCR1B |= (1 << CS10); // Abilita il Prescaler a frequenza diretta
TIMSK1 |= (1 << OCIE1A); // Abilita l'interrupt CTC su OCR1A
interrupts(); // enable all interrupts
}
ISR(TIMER1_COMPA_vect) // timer compare interrupt service routine
{
TT++;
ValoreLetto += analogRead(IngressoAnalogico);
if (TT==64)
{
Serial.write((char*)&START,1);
Serial.write((char*)&ValoreLetto,2);
ValoreLetto=0;
TT=0;
}
}
void loop()
{
START=22;
// your program here...
}
Modificato da Bolle - 26/09/2017, 18:22:00
--------------- Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Bolle
| Inviato il: 26/09/2017 19:53:05
|
Sembra che il 16 bit virtuale degradato stia andando bene...ho fatto qualche errore nel codice del PC ma ora è allineato.
Vediamo come si comporta al primo sisma...anche se quello di questa notte a 12 bit ha preso il telesisma a 17.000km ovviamente taroccato!
--------------- Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | qqcreafis
| Inviato il: 26/09/2017 20:15:00
|
non sarà un vero 16 bit comunque si recupera il recuperabile.. il più possibile e si mette alla catena l'arduino comunque
ocr1a dovrebbe valere 125000
per ottenere 128 letture al secondo , "letture" di 64 acquisizioni dell'adc
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
| | | | Bolle
| Inviato il: 26/09/2017 20:22:23
|
CITAZIONE (qqcreafis, 26/09/2017 20:15:00 )
ocr1a dovrebbe valere 125000
per ottenere 128 letture al secondo , "letture" di 64 acquisizioni dell'adc
--------------- Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Bolle
| Inviato il: 26/09/2017 21:03:07
|
Questi sono i risultati visibili sul WF di Frisby (Stazione Reggello (FI))...sembrano molto molto simili a quelli che si hanno con l'ADC a 16 bit...
Non vorrei che qua qualcuno mi stia prendendo in giro ed abbia rimesso l'ADC a 16 bit
Modificato da Bolle - 26/09/2017, 21:12:48
--------------- Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | | | | qqcreafis
| Inviato il: 26/09/2017 22:51:27
|
che se poi si "degrada" un 12 bit...veloce si va alla grandissima con spesa modica
la tecnica dell "over sampling" è da sempre che è stata usata
Modificato da qqcreafis - 26/09/2017, 22:55:56
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
| | | | | | | qqcreafis
| Inviato il: 26/09/2017 23:01:00
|
mmmmmmm... prima del segno a 10 bit e poi dopo il segno la somma (o media)di 64 acquisizioni
vero è così??
se è così l'over sampling ha portato ad una diminuizione ben visibile della "soglia di sensibilità" (aumento dei dettagli)
è così veeerooo????
azz è comparso un mondo nascosto... quindi con un arduino 2 (12 bit adc)e over sampling si dovrebbe surclassare un 16 bit...
Modificato da qqcreafis - 26/09/2017, 23:07:24
--------------- ODE AD UNO STUDENTE MERITEVOLE (Sermone) Allora Xyz è stato bravo! noi dobbiamo riconoscere che è stato molto bravo, bisogna dirlo ! In un mondo dove tutto SEMBRA uguale a tutto. In un mondo dove chi abbruttisce la dignità dell’intelligenza umana si arroga meriti. In un mondo in cui si dice che i giovani non hanno speranza perché “tanto non troveranno lavoro” perché tanto non “non avranno la pensione”. Xyz è stato bravo! ha capito tutto, ha fatto un compito perfetto. Xyz ci da una SPERANZA. Xyz non ha seguito le falsità che ci circondano. Xyz si è impegnato ed è riuscito nel suo intento.
| | | | Bolle
| Inviato il: 26/09/2017 23:04:49
|
Giornata molto movimentata...questo il sismogramma orizzontale della Sabina:
--------------- Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Bolle
| Inviato il: 26/09/2017 23:27:06
|
CITAZIONE
è così veeerooo????
Si, probabilmente siamo fortunati perchè tagliamo moltissimo con il filtro nella scheda...quindi il sengale non varia molto e si sfrutta al massimo l'oversampling...ci casca con tutte le scarpe!
CITAZIONE (qqcreafis, 26/09/2017 22:51:27 )
azz è comparso un mondo nascosto... quindi con un arduino 2 (12 bit adc)e over sampling si dovrebbe surclassare un 16 bit...
Che poi l'arduino due ha anche un quarzo a 84mHz ....ma ha il limite della tensione a 3.3V ...il problema è il costo che non è paragonabile ad un nano...che io ho pagato 2.5 Euri!
--------------- Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Bolle
| Inviato il: 26/09/2017 23:33:07
|
Arduino due... 18 Euri preso in Italia:LINK
Se po fa!!
Però:
CITAZIONE
The microcontroller mounted on the Arduino Due runs at 3.3V, this means that you can power your sensors and drive your actuartors only with 3.3V. Connecting higher voltages, like the 5V commonly used with the other Arduino boards will damage the Due.
--------------- Un risultato se non è ripetibile non esiste (by qqcreafis).
| | | | Bolle
| Inviato il: 26/09/2017 23:46:53
|
CITAZIONE (qqcreafis, 26/09/2017 23:01:00 )
mmmmmmm... prima del segno a 10 bit e poi dopo il segno la somma (o media)di 64 acquisizioni
Non ho capito il segno...abbiamo tutti i valori positivi...e non faccio medie o altro...l'arduino invia la somma delle 64 acquisizione...e nemmeno il pc fa la media o altro...prende il valore così com'è...tanto la catena SW si 'riadatta'...non faccio nulla..neanche una divisione...tanto per lui è un valore a 16 bit!
Faccio un esempio: ipotizziamo di leggere 1023 cioè tutti i 10 bit livelli alzati...e leggiamo sempre 1023 per 64 volte--> la somma viene 65535 cioè 16 bit tutti alzati...come diceva Toto è la somma che fa il totale...cioè mi trovo un 16 bit bello bello...di fatto mediato senza fare la media!
Prima invece che avevo un 10 bit e poi un 14bit...ho dovuto amplificare un valore e normalizzarlo ai 16 bit ...tant'è che ora il pc non ha più bisogno di sapere se si va in modalità degradata...non gli serve più...tutti i parametri tornano da soli.
Mi sono capito?
Modificato da Bolle - 27/09/2017, 09:02:18
--------------- Un risultato se non è ripetibile non esiste (by qqcreafis).
| |
| | |
|
Versione Mobile!
|
|
|
|
|
|
|
|
|
|
|
|
|
|