Go Down

Topic: da pwm a tensione analogica (Read 19 times) previous topic - next topic

boschi

Today at 02:35 pm Last Edit: Today at 02:50 pm by boschi
ho un pwm in uscita da un raspberry, e ho bisogno di renderlo leggibile da arduino.

pensavo di usare un filtro passa basso calcolato con una frequenza di taglio di 160hz (1uf e 1k) ma ottengo un ripple incredibile(la frequenza del pwm è di 300 hz).

non mi interessa della velocità di risposta (finche sta nell ordine di qualche secondo va benissimo).

preferirei rimanere su un filtro passivo se possibile.

è meglio abbassare o alzare la frequenza di taglio? cioe, in quale dei due casi avrei ripple minore?

astrobeed

ma ottengo un ripple incredibile(la frequenza del pwm è di 300 hz).
Se lo scopo è leggere il pwm sotto forma di tensione equivalente tramite un ADC la costante di tempo del filtro deve essere non maggiore a 1/100 del periodo della frequenza del PWM, nel tuo caso il filtro deve tagliare a 3 Hz, ovvero ~126 ms.
Realizzare un filtro passivo con questo valore di frequenza comporta l'uso di grandi capacità ed elevati valori resistivi che si sposano molto male con la massima impedenza d'uscita della sorgente di tensione ammessa dagli AVR, 10k, il che ti obbliga ad effettuare molte letture successive, da buttare via, prima di fare la reale lettura della tensione per dare tempo al condensatore del sample&hold di caricarsi/scaricarsi.
Sarebbe meglio se alzi la frequenza del PWM ad almeno 10 kHz, in modo da poter usare un filtro a 100 Hz.
Usare il GOTO in C è ammettere la propria sconfitta come programmatore

vbextreme

Quote
ho un pwm in uscita da un raspberry, e ho bisogno di renderlo leggibile da arduino.
se questa è la domanda
pulsein() è la risposta
Easy framework linguaggio C: https://github.com/vbextreme/EasyFramework
http://vbextreme.netai.net/

Warning: Causa assurde limitazioni di questo forum non potete cliccare sul link nella firma, vi toccherà un copia/incolla

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy