Buonasera a tutti.
Dovrei realizzare un driver con arduino capace di leggere un segnale PWM per poi generare un segnale DMX (su specifici canali) proporzionale al segnale PWM in ingresso.
Vi spiego meglio: ho una centralina che gestisce N canali su cui fa delle dissolvenze. Questi canali hanno una uscita di 12V e permettono di pilotare direttamente delle strisce led. Presumo che l'alimentazione in uscita sia in PWM (dico presumo perché la centralina non ancora è in mio possesso...). Siccome devo espandere le potenzialità di questa centralina, avevo pensato di interfacciarmi con arduino e generare un segnale DMX proporzionale.
Cercando qualcosa di simile a quello che serve a me avevo trovato un post con cui qualcuno chiedeva come fare a leggere tensioni con range 40-47V con una tolleranza di 0.01V e suggerivano l'uso di un MCP3421 per fare la conversione. Ora non so se nel mio caso va bene lo stesso oppure devo utilizzare altri approcci.
Grazie
Leggere valore PWM
5 messaggi
• Pagina 1 di 1
0
voti
Direi filtro passa basso sul segnale PWM in modo da ricavarne il valore medio, acquisizione con l'A/D del micro poi fai cosa vuoi. Bisogna vedere i livelli di tensione del PWM e verificare se sono stabili.
Qui e qui le spiegazioni sul filtro passa basso per trasformare il PWM in una tensione continua.
Qui e qui le spiegazioni sul filtro passa basso per trasformare il PWM in una tensione continua.
Per usare proficuamente un simulatore, bisogna sapere molta più elettronica di lui
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
Plug it in - it works better!
Il 555 sta all'elettronica come Arduino all'informatica! (entrambi loro malgrado)
Se volete risposte rispondete a tutte le mie domande
0
voti
Beh, per quanto riguarda il filtraggio del segnale,
IsidoroKZ ti ha gia illustrato quello chè è all' incirca lo stato dell' arte, e visto che a questo punto molti avranno paura ad aggiungere altro per paura di fare delle figuracce, io che a fare delle figuracce sono abituato
provo a dirti quel poco che credo di aver capito.
Arduino integra un ADC a 10 bit, suddetto convertitore permette quindi di acquisire la tensione presente sugli ingressi analogici con una risoluzione di 1024 (2^10) "intervalli", utilizzando normalmente una tensione di riferimento di 5 V si possono quindi ottenere degli step di circa 0,005 V (5/1024).
Per tensioni piu basse di 5 V si possono usare altri riferimenti di tensione ottenendo valori minimi di risoluzione piu piccoli, ad esempio, utilizzando il riferimento interno di 1,1 V teroicamente si dovrebbero poter apprezzare gli 0.0011 V (1,1/1024).
Il tuo "problema" è che hai una tensione media che, se ho ben capito, varia tra 0 e 12 V, quindi dovrai usare un partitore di tensione 2,4:1 per adattarla ai valori massimi ammissibili dal micro, di conseguenza anche la variazione minima apprezzabile passerà a circa 0,012 V.
Bisogna capire se ti basta.
Infine, avendo una tensione da misurare potenzialmente pericolosa per arduino, penso sarebbe opportuno proteggere l' ingresso in questione in qualche modo e personalmente finora l' ho fatto sol o con uno Zener da 5,1 V, ma immagino ci siano metodi piu corretti che però dovrà spiegarti qualcun' altro.
Arduino integra un ADC a 10 bit, suddetto convertitore permette quindi di acquisire la tensione presente sugli ingressi analogici con una risoluzione di 1024 (2^10) "intervalli", utilizzando normalmente una tensione di riferimento di 5 V si possono quindi ottenere degli step di circa 0,005 V (5/1024).
Per tensioni piu basse di 5 V si possono usare altri riferimenti di tensione ottenendo valori minimi di risoluzione piu piccoli, ad esempio, utilizzando il riferimento interno di 1,1 V teroicamente si dovrebbero poter apprezzare gli 0.0011 V (1,1/1024).
Il tuo "problema" è che hai una tensione media che, se ho ben capito, varia tra 0 e 12 V, quindi dovrai usare un partitore di tensione 2,4:1 per adattarla ai valori massimi ammissibili dal micro, di conseguenza anche la variazione minima apprezzabile passerà a circa 0,012 V.
Bisogna capire se ti basta.
Infine, avendo una tensione da misurare potenzialmente pericolosa per arduino, penso sarebbe opportuno proteggere l' ingresso in questione in qualche modo e personalmente finora l' ho fatto sol o con uno Zener da 5,1 V, ma immagino ci siano metodi piu corretti che però dovrà spiegarti qualcun' altro.
0
voti
https://create.arduino.cc/projecthub/ye ... o-c-7502ea
Se usi il comparatore analogico interno al processore, puoi far partire un timer ogni volta che il segnale ha un fronte di salita e fermare il timer sul fronte di discesa così hai un valore di tempo in cui il PWM è alto senza usare né filtri né l ADC.
Il comparatore può lanciare una interrupt, nella routine di interrupt puoi lanciare e fermare il contatore al bisogno e salvare il valore temporale, in questo modo senza aggiungere paccottiglia analogica
IsidoroKZ
e senza neanche sporcare il main del codice puoi risolvere.
Certo dipende dalla frequenza del PWM, ma per dei led non mi aspetto sia altissima
Se usi il comparatore analogico interno al processore, puoi far partire un timer ogni volta che il segnale ha un fronte di salita e fermare il timer sul fronte di discesa così hai un valore di tempo in cui il PWM è alto senza usare né filtri né l ADC.
Il comparatore può lanciare una interrupt, nella routine di interrupt puoi lanciare e fermare il contatore al bisogno e salvare il valore temporale, in questo modo senza aggiungere paccottiglia analogica
Certo dipende dalla frequenza del PWM, ma per dei led non mi aspetto sia altissima
0
voti
ùPartendo da un segnale digitale, anche io seguirei la strada di leggere i tempi del PWM.
saluti.
saluti.
-

lelerelele
4.899 3 7 9 - Master

- Messaggi: 5505
- Iscritto il: 8 giu 2011, 8:57
- Località: Reggio Emilia
5 messaggi
• Pagina 1 di 1
Chi c’è in linea
Visitano il forum: Nessuno e 3 ospiti

Elettrotecnica e non solo (admin)
Un gatto tra gli elettroni (IsidoroKZ)
Esperienza e simulazioni (g.schgor)
Moleskine di un idraulico (RenzoDF)
Il Blog di ElectroYou (webmaster)
Idee microcontrollate (TardoFreak)
PICcoli grandi PICMicro (Paolino)
Il blog elettrico di carloc (carloc)
DirtEYblooog (dirtydeeds)
Di tutto... un po' (jordan20)
AK47 (lillo)
Esperienze elettroniche (marco438)
Telecomunicazioni musicali (clavicordo)
Automazione ed Elettronica (gustavo)
Direttive per la sicurezza (ErnestoCappelletti)
EYnfo dall'Alaska (mir)
Apriamo il quadro! (attilio)
H7-25 (asdf)
Passione Elettrica (massimob)
Elettroni a spasso (guidob)
Bloguerra (guerra)






