Ciao a tutti, ho delle difficoltà a realizzare un controllo sul circuito a cui sto lavorando.
Vi spiego dall'inizio:
devo effettuare una verifica per sapere lo stato di power del dispositivo in cui il mio circuito opererà (controllo remoto), gli stati sono 3:
power off, standby, power on.
Ho identificato 2 pin sul monitor a cui è collegato un led bicolore che segnala lo stato di acceso e standby.
Riporto le tensioni sui due pin nei 3 stati di power:
Power On (led colore bianco):
pin1 0.842 V,
pin2 2.729 V.
L'idea era quella di misurare queste tensioni con 2 analog in di arduino (anche se alla fine sarà su un PCB dedicato basato sempre su atmega328p) in modo da verificare lo stato di power nel momento opportuno.
Pensavo di collegare il pin 1 ad A0, il pin 2 ad A1, il GND con il GND di arduino.
E' corretto?
Altrimenti come fare?
Grazie dell'aiuto!
Non hai detto di che monitor si tratta: probabilmente con un giusto partitore resistivo applicato sul punto che varia di tensione, potresti utilizzare un solo ingresso analogico.
E' un monitor da computer Asus di cui purtroppo non ci sono service manual
Cos'è un partitore resistivo?
Collegando invece i due pin agli ingressi analog non ho bisogno di resistenze?
Il partitore resistivo (due resistori in serie collegati uno a massa e l'altro alla tensione da misurare) serve a ridurre la tensioni da misurare (ad esempio 12V) ad un livello accettabile per gli ingressi analogici di Arduino, cioè inferiore ai 5V di alimentazione.
Nel tuo caso, poiché le tensioni sono prelevate sui LED e sono certamente inferiori ai 5V, puoi farne a meno.
Tuttavia, per prudenza, inserisci un resistore da 1k tra ognuno degli ingressi ed i pin del LED.
Perfetto, adesso tutto mi è più chiaro!
Grazie mille dei consigli
Nel frattempo ho realizzato la breadboard di test e mi sono reso conto, printando su Serial, che i valori ritornati da analogRead hanno delle leggere oscillazioni, ho effettuato anche la conversione in Volt usando la semplice operazione V = value * (5.0 / 1023.0);
Allego un paste dal serial monitor riportante 5 esempi ad ogni attivazione di uno stato:
Sono normali queste leggere oscillazioni?
A primo acchito, per controllare se il monitor è già in uno stato acceso (standby o power on), userei un codice così fatto:
#define GET_ADC_VALUE( VOLT ) ((int)(((VOLT) * 1023.0F) / 5.0F))
Minime oscillazioni sono nella norma. Per esser più sicuro puoi fare una media su 10 letture consecutive sullo stesso pin e poi cambiare pin di ingresso.
Le oscillazioni che ottieni non sono normali, ma, come dice Leo, dovresti fare una media di 10 misure: è possibile che il condensatore dell'ADC non si carichi del tutto.
PaoloP:
Se devi fare una basetta stand-alone meglio usare una ATtiny85.
Trovi molte guide all'uso sul sito di Leo. http://www.leonardomiliani.com/
Ciao, conosco gli ATtiny, ma per il mio progetto sono troppo tiny
Dell'atmega 328P sto usando 7 output pin digitali e 3 input pin analogici!
Grazie comunque del consiglio!
Capisco che le oscillazioni minime possono rientrare, ma fosse un problema di condensatore che non carica del tutto?
Il condensatore imputato è interno all'IC oppure è il condensatore di disaccoppiamento sul pin AVCC che alimenta appunto il ADC del mC? (ho letto infatti che per realizzare una standalone board conviene mettere sulle alimentazioni di ogni IC un condensatore ceramico da 100 nF tra + e GND, aggiungendo anche un'impedenza da 10uH prima del condensatore di AVCC ed un altro condensatore ceramico da 100 nF tra AREF e GND).
Ho anche letto che per evitare oscillazioni e portare a 0 un ingresso analogico quando il carico è non alimentato si dovrebbe mettere un resistore da 10 KOhm tra il positivo in ingresso al pin analogico e GND.
Invece per quanto riguarda l'iterare la lettura del valore e farne una media, non potrei semplicemente risolvere usando i valori un pochino più bassi che ho inserito nel mio codice di esempio?
Alla fine se viene rilevata una tensione maggiore di quei valori è matematico che il pin sia alimentato, vedendo anche gli esempi in cui non lo è (valori ben più bassi).
Cosa ne dite?
Il circuito dell'ADC del ATmega328 è ottimizzato per ricevere un segnale analogico di impedenza non superiore a 10k, quindi, in teoria, i valori di tensione sui due pin dei LED del tuo monitor dovrebbero essere letti senza problemi.
Mi viene un dubbio: non è che il tuo monitor usa una sorta di risparmio energetico e pilota i due LED ad impulsi?
Per avere una conferma dovresti usare un oscilloscopio, ma puoi filtrare il segnale con un circuito RC oppure usare il metodo del resampling (fare la media su dieci campioni come ti è stato già detto).
cyberhs:
Il circuito dell'ADC del ATmega328 è ottimizzato per ricevere un segnale analogico di impedenza non superiore a 10k, quindi, in teoria, i valori di tensione sui due pin dei LED del tuo monitor dovrebbero essere letti senza problemi.
Mi viene un dubbio: non è che il tuo monitor usa una sorta di risparmio energetico e pilota i due LED ad impulsi?
Per avere una conferma dovresti usare un oscilloscopio, ma puoi filtrare il segnale con un circuito RC oppure usare il metodo del resampling (fare la media su dieci campioni come ti è stato già detto).
Dovrei procurarmi un oscilloscopio, approfitto delle difficoltà e dei dubbi di questo progetto per acculturarmi un po'!
Come oscilloscopio un 100MHz 2 canali analogici e 4 digitali è una buona scelta? (mi trovo un po' dubbioso su che prodotto acquistare)
Ho letto che un circuito RC dovrebbe consistere in una resistenza e un condensatore, quindi andrebbe collegato il pin che alimenta uno stato (colore) del led ad un polo del resistore, l'altro polo del resistore collegato al + del condensatore, il - del copndensatore collegato al pin di ingresso analogico dell'atmega328p, corretto?
Invece il metodo del resampling è perfettamente chiaro!
Scusa per le domande ma sto cercando di imparare il più possibile
Se hai soldi da spendere è sicuramente un'ottima scelta, ma fammi vedere le caratteristiche.
Ho letto che un circuito RC dovrebbe consistere in una resistenza e un condensatore, quindi andrebbe collegato il pin che alimenta uno stato (colore) del led ad un polo del resistore, l'altro polo del resistore collegato al + del condensatore, il - del copndensatore collegato al pin di ingresso analogico dell'atmega328p, corretto?
Sì è corretto, ma i valori di R e C vanno scelti in modo opportuno.
Guarda questa simulazione di un segnale 5V PWM 50% che con certi valori di R e C fornisce un valore che approssima i 2.5V cioè il valore efficace del segnale.
Aumentando il valore di R o C l'approssimazione migliora a scapito, però, della velocità di risposta.
Se hai soldi da spendere è sicuramente un'ottima scelta, ma fammi vedere le caratteristiche.
Sì è corretto, ma i valori di R e C vanno scelti in modo opportuno.
Guarda questa simulazione di un segnale 5V PWM 50% che con certi valori di R e C fornisce un valore che approssima i 2.5V cioè il valore efficace del segnale.
Aumentando il valore di R o C l'approssimazione migliora a scapito, però, della velocità di risposta.
Sì dalla simulazione si vede chiaramente.
Ho guardato ora gli oscilloscopi della Rigol ed opterei per questo modello: Rigol DS2102A Oscilloscope !!Special Offer!! (2Gs/2 ch contro 1Gs/4 ch del modello DS1104Z).
Però mi sembrano canali solo per segnali digitali, non ha canali analogici (oppure non ho capito qualcosa io, cosa probabile essendo niubbo :))?!
Che ne pensi?
EDIT: essenziale per me la possibilità di decodificare i2c, rs232 e SPI dal momento che li uso spesso per lavoro!
Mi sono documentato sulle basi e sulla classificazione degli oscilloscopi digitali, comprendendo così la differenza tra DSO e MSO.
Per cui la mia scelta ricade sul Rigol MSO2102A:
2 canali analogici 100 MHz, 2 GSa/s, 14 Mpts;
16 canali logici digitali 2 GSa/s, 14 Mpts per canale;
2 sonde 300 MHz;
cavo logico digitale a 16 sonde.
Poi, come giustamente detto, dovrei acquistare a parte il serial per l'attivazione software del decodificatore seriale Rigol SD-DS2 Serial Decoder.
Anche se non capisco la politica di dover sbloccare la funzione, manco fosse uno di quegli oscilloscopi in cui è necessario acquistare una scheda di espansione...
aarrdd:
Anche se non capisco la politica di dover sbloccare la funzione, manco fosse uno di quegli oscilloscopi in cui è necessario acquistare una scheda di espansione...
Non è una novità e non lo fa solo Rigol, è un modo per contenere il prezzo, se una funzione non ti serve non la paghi.
Comunque è molto meglio se prendi solo il DSO e un vero analizzatore di stati logici/protocolli esterno, molto più utile e efficiente, p.e. quelli di Zeroplus, consigliato il modello LAPC 16128, costa poco e offre molto.
astrobeed:
Non è una novità e non lo fa solo Rigol, è un modo per contenere il prezzo, se una funzione non ti serve non la paghi.
Comunque è molto meglio se prendi solo il DSO e un vero analizzatore di stati logici/protocolli esterno, molto più utile e efficiente, p.e. quelli di Zeroplus, consigliato il modello LAPC 16128, costa poco e offre molto.
Grazie del consiglio.
Del resto lesperienza è essenziale e non viene riportata in nessun testo
Ho appena acquistato il Rigol DS2102A.
Poi, col tempo, mi procurerò un analizzatore di stati logici/protocolli digitali ed un generatore di forme d'onda.
Adesso devo ordinarmi le stazioni saldanti (stilo ed aria calda) e dissaldanti.
Da tuoi posts precedenti sarei orientato su Aoyue.
Mi potresti consigliare tre soluzioni top per: stazione dissaldante (ad aria o a stilo?), stazione saldante a stilo e stazione saldante ad aria calda (per rework e saldatura smd)?
Grazie e scusate per l'OT!!!