Buongiorno a tutti.
La mia proverbiale ignoranza elettronica mi porta a porvi alcune banali domande prima di fare danni.
Domanda 1:
Ho un sensore di quota che mi da in uscita una tensione 0-10VCC.
Arduino accetta come ingresso analogico un segnale in tensione 0-5VCC.
Per collegarlo ad uno degli ingressi analogici di Arduino e far si d'ottenere un cambio scala lineare, è sufficiente un partitore di tensione con due resistenze delle stesse dimensioni?
Domanda 2:
Per fare l'inverso: ossia per trasformare la tensione in uscita da una porta analogica di Arduino (quindi tensione 0-5VCC) in una tensione compresa tra 0 e 10VCC, ho pensato di utilizzare un amplificatore operazionale in configurazione non invertente. Per prima cosa desidero capire se sono sulla strada giusta e poi mi propongo di entrare nei dettagli.
In passato mi pare d'aver letto qualcosa a tal riguardo su questo forum ma non sono riuscito a ritrovarlo. Scusatemi se ho ripetuto domande già fatte.
lupusimprobus:
Buongiorno a tutti.
La mia proverbiale ignoranza elettronica mi porta a porvi alcune banali domande prima di fare danni.
Domanda 1:
Ho un sensore di quota che mi da in uscita una tensione 0-10VCC.
Arduino accetta come ingresso analogico un segnale in tensione 0-5VCC.
Per collegarlo ad uno degli ingressi analogici di Arduino e far si d'ottenere un cambio scala lineare, è sufficiente un partitore di tensione con due resistenze delle stesse dimensioni?
Sì, due R da 10K in serie, al centro prelevi una tensione massima di 5V, al limite aggiungi un diodo zener di 5,1V per protezione dell'ingresso.
Domanda 2:
Per fare l'inverso: ossia per trasformare la tensione in uscita da una porta analogica di Arduino (quindi tensione 0-5VCC) in una tensione compresa tra 0 e 10VCC, ho pensato di utilizzare un amplificatore operazionale in configurazione non invertente. Per prima cosa desidero capire se sono sulla strada giusta e poi mi propongo di entrare nei dettagli.
le porte analogiche di Arduino possono generare solo segnali digitali: 0V o 5V.
Domanda 1:
Perfetto. Grazie per la dritta sullo Zener, non ci avrei pensato.
Domanda 2:
Hai ragione. Mi sono messo a leggere documentazione sugli amplificatori operazionali ed alla fine mi sono convinto che Arduino avesse uscite analogiche.
lupusimprobus:
Domanda 1:
Perfetto. Grazie per la dritta sullo Zener, non ci avrei pensato.
per scrupolo, ma immagino che la cosa ti sia già chiara: lo zener va collegato con il catodo sul pin e l'anodo a massa, se la tensione supera i 5,1V va in conduzione inversa e "scarica" verso massa "tagliando" la tensione in eccesso.
Domanda 2:
Hai ragione. Mi sono messo a leggere documentazione sugli amplificatori operazionali ed alla fine mi sono convinto che Arduino avesse uscite analogiche.
in realtà Arduino ha 6 uscite pwm (sui pin digitali) che, abbinate ad un opportuno filtro passa-basso, potrebbero anche generare una sorta di tensione variabile in uscita, ma non è proprio da considerare come un segnale analogico variabile, la cosa è abbastanza forzata, ma per sperimentare può andar bene.
le uscite "analogiche" di arduino sono uscite PWM. Puoi pilotare con quelli un transistore che porta il segnale a 10 V e far passare un filto passabasso. Cosí ottieni una tensione continua. l' ighippo é che le variazioni vanno abbastanza lente.
Alternativamente devi prendere un DAC e generare la tensione analogica con quello. Dipende dal DAC puoi avere un uscita 10V oppure devi amplificarla con un amplificatore operazionale.
Ciao Uwe
@ menniti
sotto i 2 minuti la sindrome calimero non esiste.
Domanda 1:
Perfetto. Grazie per la dritta sullo Zener, non ci avrei pensato.
per scrupolo, ma immagino che la cosa ti sia già chiara: lo zener va collegato con il catodo sul pin e l'anodo a massa, se la tensione supera i 5,1V va in conduzione inversa e "scarica" verso massa "tagliando" la tensione in eccesso.
uwefed:
le uscite "analogiche" di arduino sono uscite PWM. Puoi pilotare con quelli un transistore che porta il segnale a 10 V e far passare un filto passabasso. Cosí ottieni una tensione continua. l' ighippo é che le variazioni vanno abbastanza lente.
Alternativamente devi prendere un DAC e generare la tensione analogica con quello. Dipende dal DAC puoi avere un uscita 10V oppure devi amplificarla con un amplificatore operazionale.
+1
@ menniti
sotto i 2 minuti la sindrome calimero non esiste.
Stasera mi sta andando bene, sarà perché mi sono fatto il bagnetto nella lavatrice con "AVA COME LAVA!" XD
Ciao, lupusimprobus, ma di solito non è lupus in fabula.
Come l'ha messa Menniti anche se corretto sembrerebbe non ci sia possibilità di fare una conversione.
L'atmega328 ha 6 pin PWM, questi se si trova il modo di alzare la frequenza del PWM (possibilissimo manipolando i registri) si ottiene un segnale PWM ad alta frequenza che opportunamente filtrato con un OP approssima una tensione continua.
Leggi un pò sugli OP e cerca integratore (sono arruginito) non so darti info più dettagliate.
Ciao.
In extremis:
le uscite "analogiche" di arduino sono uscite PWM. Puoi pilotare con quelli un transistore che porta il segnale a 10 V e far passare un filto passabasso. Cosí ottieni una tensione continua. l' ighippo é che le variazioni vanno abbastanza lente.
Si la velocità di risposta dipende dalla frequenza del PWM, maggiore frequenza = maggiore velocità
Se non si hanno variazioni repenti ne che devono essere seguite anche frequenze del KHZ dovrebbero andare, con un filtro attivo del 1° ordine
centrato sotto i 1000 HZ -3db
No, io l'ho anche usata questa tecnica, infatti accennavo ad un filtro passa-basso: ho messo una banale coppia R+C ed ho ottenuto una tensione continua variabile; dicendo che è una forzatura mi riferivo al fatto che l'uscita pwm di per sé non può essere considerata "analogica". Onestamente non ho approfondito con le frequenze, mi sono limitato a giocherellare con la variazione di luminosità di un banalissimo LED, visto che il principio andava mi sono riservato la possibilità di approfondire all'occorrenza, poi invece non ho più avuto occasione di metterci mano.
Per esperienza diretta (ti ricordi ci provai sulla stazione meteo?) posso dire che ho provato a pilotare una ventolina tramite un transistor azionato da un segnale PWM per variarne la velocità ma, anche con filtro R-C, la ventolina "ronzava", segno che comunque il transistor "sente" che è un segnale PWM e non un analogico vero.
Apprezzo le risposte di tutti ma per il momento non necessito delle uscite analogiche, però mi fa piacere sapere d'avere una porta aperta in caso di necessità
La storia è che dovendo trasformare una tensione 0-10VCC in una 0-5VCC,mi era stato detto di utilizzare un amplificatore operazionale. Io non sapendo di che si trattava ho iniziato a documentarmi e man mano che andavo avanti ho perso di vista il motivo per cui lo stavo studiando. Alla fine mi sono un po' perso
E dire che alla fine sono tornato al buon, vecchio partitore di tensione, con l'aggiunta dello Zener che fa fine e non impegna
Per esperienza diretta (ti ricordi ci provai sulla stazione meteo?) posso dire che ho provato a pilotare una ventolina tramite un transistor azionato da un segnale PWM per variarne la velocità ma, anche con filtro R-C, la ventolina "ronzava", segno che comunque il transistor "sente" che è un segnale PWM e non un analogico vero.
Si ricordo l'episodio. Ma qui io intendevo un segnale analogico non uno di potenza. Se rifai la prova e filtri con un OP (ma anche il transistore potrebbe andare) e dopo un'altro transistor riesci a ricavare un segnale più robusto forse sufficiente da pilotare la ventola.
In realta il problema non è la corrente ma il fatto che il carico (ventola) non fa lavorare correttamente il filtro, per questo si usa filtrare con OP.
Un esempio di filtro passivo è quello usato negli amplificatori "digitali" dove il segnale di uscita è un PWM modulato dal segnale audio, il filtro qui serve solo a ridurre le armoniche generate dagli spigoli dell'onda quadra.