Newsgroup: it.hobby.elettronica.digitale
Titolo: ADXL202

Per chi ha usato questi sensori acquisendo il segnale analogico: è normale
ottenere in uscita valori che vanno sotto 1.25 e sopra 3.75v?
(rispettivamente il 25 e il 75% di 5v). Avete usato un OpAmp oppure
campionato direttamente il segnale dalle uscite?
Olivier.

 campionato direttamente il segnale dalle uscite?
Ho usato un OpAmp, ma per filtrare un po'
il segnale prodotto.
Ciao

 il segnale prodotto.
Sarebbe opportuno usare un OpAmp a guadagno unitario come buffer
(sfruttandone l'alta impedenza in ingresso)?
Olivier.

Ciao,
Hi ragione, mi sono confuso.
Io ho usato gli ADXL105 che hanno una
uscita analogica.
Gli ADXL202 hanno invece un'uscita digitale.
Puoi usare anche la loro uscita anlogica,
ma devi bufferizzarla (XFILT, YFILT).
Come hai misurato i valori 0 - 5V?
Ciao

 Come hai misurato i valori 0 - 5V?
Li ho letti dalle uscite digitali (XFILT, YFILT) sia con un voltmetro sia
con l'ADC di un PicMicro, senza perň passare per l'OpAmp, ho campionato il
segnale cosě com'č...
Olivier.

 Misuri così in DUTY-CICLE e ricavi l'accelerazione.
Non uso l'uscita digitale perchè ho due sensori e non saprei come gestire
con un unico timer 4 assi contemporaneamente. Su due si riesce a sfruttare
il fatto che sono "in fase", su 4 non avrei idea. Non nego che si possa, ma
le mie scarse doti di programmatore della domenica mattina non me lo
consentono, meglio le uscite analogiche!
Olivier.

 Per chi ha usato questi sensori [...]
Qua c'è uno che ne parla:
http://www.dprg.org/projects/2003-01a/
Sapreste mica dove recuperare gli accelerometri AD?
Mai beccati come samples io... porc...

 Mai beccati come samples io... porc...
Io sto facendo diverse prove con due samples.
Ocio al package però: devi essere il saldatore più veloce del west
per non avere problemi a usarli su millefori!
Olivier.

 per non avere problemi a usarli su millefori!
Porcocane mi son sbagliato, non gli accelerometri ma i giroscopi.
Gli accelerometri li avevo richiesti anni fa quando erano ancora in package
SOP e quindi sono una monata da saldare! :)
Mi pare che di un modello mandino ancora samples col package vecchio
comunque...
Mi piacerebbe provare a fare un robot su 2 ruote autobilanciato, ma col solo
accelerometro credo non sia semplice la gestione...

 accelerometro credo non sia semplice la gestione...
In questo sito (di Edmondo Di Tucci che spesso è presente su questo NG)
c'è qualcosa riguardo all'acceleremetro in questione:
http://www.powernetsi.it/edmondo/
-- 
questo articolo e` stato inviato via web dal servizio gratuito 
http://www.newsland.it/news
 segnala gli abusi ad 
ab...@newsland.it

 consentono, meglio le uscite analogiche!
Trimmer? Per fare lo Zero? Un solo trimmer per 4 assi? Ho capito bene?
Se č cosě, per piacere, puoi spiegarmi come funziona? Due assi sono comunque
ortognoali, come fai a tararli con un solo trimmer?
Ciao

 ortognoali, come fai a tararli con un solo trimmer?
*TIMER*, parlo dei timer dei uC per acquisire il segnale nell'uscita PWM.
E cmq per 4 assi *NON* sono capace di usare un solo timer.  =)
Olivier.

 E cmq per 4 assi *NON* sono capace di usare un solo timer.  =)
Scusa, ho letto male :-)
Ti serve un solo Timer! Hai bisogno di 4 ingressi in grado di scatenare un
INTRPT quando avviene un cambio di stato logico. Funziona così:
Il Timer lo lasci correre sempre.
1) Scatta l'INTRPT es. AccX1
    Metti via il valore del Timer (es 0x12CC)-> Timer_AccX1_A = 0x12CC
2) Scatta ancora l'INTRPT dell'AccX1
    Metti via il valore del Timer (es 0x13DE)-> Timer_AccX1_B = 0x13DE
3) Scatta ancora l'INTRPT dell'AccX1
    Metti via il valore del Timer (es 0x14E7)-> Timer_AccX1_C = 0x14E7
A questo punto ti calcoli:
Tempo L = Timer_AccX1_B - Timer_AccX1_A (es = 0x112)
Tempo Totale = Timer_AccX1_C - Timer_AccX1_A (es. = 0x21B)
Il DutyCicle è 0x112 / 0x21B = 50,8%
Poi fai Timer_AccX1_A = Timer_AccX1_C e ricominci dal punto 2...
Se hai 4 accelerometri ti basta riconoscere quale è scattato e mettere via
il tempo
nella variabile opportuna. La routine di gestione dell'INTRPT sarà tipo:
    if (IN_ACCX1_INT_FLAG) { TimerACCX1 = FreeTimer; IN_ACCX1_INT_FLAG = 0;}
    if (IN_ACCX2_INT_FLAG) { TimerACCX2 = FreeTimer; IN_ACCX2_INT_FLAG = 0;}
    if (IN_ACCY1_INT_FLAG) { TimerACCY1 = FreeTimer; IN_ACCY1_INT_FLAG = 0;}
    if (IN_ACCY2_INT_FLAG) { TimerACCY2 = FreeTimer; IN_ACCY2_INT_FLAG = 0;}
Ciao