Un oscillatore con microbit
Le uscite analogiche di microbit forniscono tensioni ad onda quadra con durata variabile dell'impulso per modulare il valore medio delle tensione in uscita: è la tecnica PWM illustrata in questo altro articolo
.
Modulando il valore dell'uscita PWM si può ottenere una tensione variabile grazie aall'uso di un filtro RC.
In ciascun periodo T la durata dell'impulso ∆t dipende dal valore assegnato all'uscita analogica:
Nel progetto in esame si fa variare il numero da convertire con delle regole che permettono di ottenere forme d'onda a piacere purché si sviluppino a frequenze decisamente inferiori a quella dell'oscillatore.
Un dispositivo passa-basso (il circuito RC della figura) bloccherà la componente ad alta frequenza e rileverà il valore medio della tensione.
Il valore medio della tensione in ciascun periodo dell'oscillatore è dato da
Dove il rapporto
è detto "rapporto di intermittenza" o duty cycle.
Il codice
Microbit è stato caricato con questo codice
con i quale è stato possibile produrre tensioni in uscita di forma sinusoidale (A), a dente di sega (B), triangolare (A+B).
Un ne illustra funzionamento e risultati con l'aiuto di un oscilloscopio e di un voltmetro che misurano la tensione sul condensatore; con i parametri circuitali:
R= 1kΩ, C=100µF,
la costante di tempo è R*C=100ms, 10 volte maggiore del periodo dell'oscillatore PWM, quindi adatto a ridurne l'effetto degli impulsi sull'ondulazione della tensione in uscita.
Funzionamento
Per consentire la produzione di oscillazioni un po' più veloci è stato modificato il periodo del convertitore PWM portandolo a 10 ms (10.000 µs) ed ogni valore di impulso è stato trattenuto per una durata 10 ms.
Le forme d'onda sono state ottenute con la ripetizione ciclica di istruzioni che variano il valore con una regola.
La ripetizione è stata fatta per un numero limitato di periodi interi in modo da consentire la visualizzazione delle diverse forme.
La tensione in uscita misurata con oscilloscopio e voltmetro non è alternata in quanto il valore è sempre positivo; il valore medio è pari a metà della tensione Vcc di alimentazione.
Per tutte le curve si realizza il calcolo della funzione al variare della variabile alfa che viene incrementata di una quantità costante ad ogni ciclo.
A: sinusoide
La regola che permette di disegnare una sinusoide è:
con alfa che inizia da 0 e deve essere misurato in radianti.
Il valore del coseno varia tra -1 e +1 per cui viene amplificato moltiplicando il risultato di cos(alfa) per 500 a cui viene aggiunto 500 per spostare in zona positiva tutta la tensione.
La variabile numerica alfa deve essere tale da fare inziare la curva da 0 quando il valore di alfa è 0 e questo avviene per
cioè per un angolo iniziale alfa0 pari a π o -π.
Ad ogni iterazione si fa crescere il valore digitale di 0,01 rad e l'intera sinusoide viene costruita con 628 reiterazioni al termine dele quali alfa diventa 6,28 ovvero ha compiuto un giro.
Il tutto per 5 volte così da realizzare 5 periodi interi.
B: dente di sega
Si fa partire il valore da 0 e ad ogni iterazione lo si aumenta di 1 per 1023 volte; al termine della rampa positiva si azzera il valore della variabile alfa e si riprende incrementando di 1 la variabile alfa.
Quando al termine della rampa il valore viene annullato, la tensione non si annulla istantaneamente per la presenza del circuito RC che ha una sua costante di tempo necessariamente più lunga della durata dell'impulso.
Come illustrato nell'articolo , si può modificare il periodo dell'oscillatore e di conseguenza cambiare la costante di tempo del circuito RC.
A+B: triangolo
Si fa partire il valore da 0 ed ad ogni iterazione lo si aumenta di 1 per 1023 volte; al termine si ripete per 1023 volte facendo diminuire il valore si 1.
Si ottengono una rampa positiva ed una negativa che formano l'onda triangolare.