Monitorare parametri impianto in auto

Ergo l'errore di 15mV viene triplicato. Sbaglio?

Sbagli perché quello che chiami "errore" (in realtà il valore minimo leggibile dall'ingresso analogico) è 5mV su 5V, che corrisponde ad valore di 15mV su 15V.

cyberhs: Sbagli perché quello che chiami "errore" (in realtà il valore minimo leggibile dall'ingresso analogico) è 5mV su 5V, che corrisponde ad valore di 15mV su 15V.

Grazie della preziosa precisazione. Adesso però vorrei sapere come fare, con un divisore a resistenze, a limitare la tensione in ingresso ad un massimo di 15V: questo per evitare che per motivi x la batteria vada in sovra-carica a valori superiori a 15V che anche se divisi per un fattore 3, andrebbero all'ingresso analogico dell'Arduino con valori ben sopra i 5V ammessi. Il problema della sovra-carica potrebbe essere causato dal collegamento, ad esempio, di un carica batterie solitamente impiegato durante le prove audio.

La tensione massima che genera un caricabatteria oppure l'alternatore dell'auto è 14.8V.

In qualsiasi caso, puoi inserire uno zener di protezione da 5.1V in parallelo all'ingresso di Arduino.

cyberhs: La tensione massima che genera un caricabatteria oppure l'alternatore dell'auto è 14.8V.

In qualsiasi caso, puoi inserire uno zener di protezione da 5.1V in parallelo all'ingresso di Arduino.

Grazie della dritta. Volendo poi separare le masse tra la sezione divisore e Arduino, posso tranquillamente prendere la tensione dalla batteria e controllare la tensione all'uscita del divisore riferita alla massa di Arduino? Certo, anche Arduino dovrà essere collegato a massa ma probabilmente avrà un suo circuito di alimentazione separato (ho una 'piccola' batteria al gel da 25Ah proprio per tale applicazione). Chiedo questo perchè i collegamenti di massa in un impianto audio sono sempre un problema e causa di rumori (per lo più in alta frequenza) udibili dagli altoparlanti.

Separare le masse con il partitore di tensione non è possibile, mentre è lecito separare l'alimentazione (anche se lo trovo inutile).

I disturbi sono dovuti probabilmente agli alimentatori switching non correttamente filtrati.

cyberhs: Separare le masse con il partitore di tensione non è possibile, mentre è lecito separare l'alimentazione (anche se lo trovo inutile).

I disturbi sono dovuti probabilmente agli alimentatori switching non correttamente filtrati.

Da quanto ho appreso sulla costruzione di un impianto audio in auto, il problema dei ronzii è dovuto (anche) a come vengono effettuate le connessioni elettriche di alimentazione. Per evitare l'aggiunta di problemi ad una situazione già di per sé critica, l'alimentazione del polo positivo deve avvenire da un unico punto: batteria servizi>cavo 50mmq (ca. 4mt)>morsetto>amplificatore 1/amplificatore 2/... . Idem per il polo negativo, amplificatore 1/amplificatore 2... >morsetto>cavo 50mmq (il più corto possibile, generalmente nell'ordine di 0,5mt)>massa.

Per quanto riguarda il filtraggio degli alimentatori degli amplificatori... vorrei evitare di anteporre filtri sull'alimentazione che dovrebbero essere dimensionati in base alla corrente assorbita, che nel mio caso può avere picchi di 130A su singola amplificazione.

Concordo.

L'accortezza da te indicata serve ad eliminare i cosiddetti "anelli di massa" che sono delle "antenne" per i disturbi elettrici.

Risolto il primo punto grazie alle indicazioni di cyberhs, inizio a prendere in considerazione i sensori di corrente della LEM (http://www.lem.com/hq/en/component/option,com_catalog/task,displaymodel/id,64.96.44.000.0/) che, da quanto riesco a capire, hanno bisogno delle seguenti connessioni elettriche: 1. Alimentazione (+5V) 2. Massa 3. Vref 4. Out Poichè tale sensore può misurare una corrente di ±300A, ma considerato il fatto che a me serve solamente la componente positiva della misura (misuro la corrente assorbita dall'amplificatore e non la corrente di scarica... che non è prevista), vorrei capire con il vostro aiuto a quale valore impostare Vref.

il Vref lo fornisce il sensore. Tu puoi variarlo, ma non ad esempio metterlo a Zero

Qui ad esempio, si che ci starebbe bene un amplificatore differenziale

Brunello:
il Vref lo fornisce il sensore. Tu puoi variarlo, ma non ad esempio metterlo a Zero

Qui ad esempio, si che ci starebbe bene un amplificatore differenziale

Parlo sempre in teoria: il sensore misura ±300A e come uscita fornisce 0-5V: con una Vref di 2.5V, ho -300÷0A = 0÷2.5V e 0÷+300A = 2.5÷5V.

E per quale scopo l’amplificatore differenziale?

non fornisce 0-5V su ±300A , ma Vout = Vref±(1.25 * Ip / Ipn). dove Ip e’ la corrente da misurare e Ipn il valore di 200A
Il che si traduce che a +300A hai una tensione di Vref + 1.875 ( 1.25*300/200 ) circa 4.375
e siccome il Vref è 1/2Uc ±0.025, tu a priori non sai esattamente quanto sia il valore esatto del Vref. Se però usi questa uscita come riferimento per un differenziale, quello che esce dallo stesso e’ il valore esatto della tensione rapportata alla corrente ( 1.875 V ).
Valore che puoi amplificare per avere una scala di misura più precisa

Brunello:
non fornisce 0-5V su ±300A , ma Vout = Vref±(1.25 * Ip / Ipn). dove Ip e’ la corrente da misurare e Ipn il valore di 200A
Il che si traduce che a +300A hai una tensione di Vref + 1.875 ( 1.25*300/200 ) circa 4.375
e siccome il Vref è 1/2Uc ±0.025, tu a priori non sai esattamente quanto sia il valore esatto del Vref. Se però usi questa uscita come riferimento per un differenziale, quello che esce dallo stesso e’ il valore esatto della tensione rapportata alla corrente ( 1.875 V ).
Valore che puoi amplificare per avere una scala di misura più precisa

Quindi mi stai dicendo che (perdonami ma sono un po duro nel capire): la Vref viene restituita dal sensore indipendentemente dalla corrente in ingresso nell’anello, questa la applico all’invertente di un opamp mentre al non invertente collego l’uscita Vout del sensore.
Se ho capito giusto, allora:
Vopamp=Vout-Vref
Vopamp=[Vref+(1.25 * Ip / Ipn)]-Vref
Vopamp=(1.25 * Ip / Ipn)
cioè:
Vopamp=1.25 * 300/200=1.875
che posso poi amplificare.

esatto.
E dala figura che ho messo, se non ho sbagliato i calcoli, se imposti:
R1 = 10K
R2 = 10K
R3 = 20K
R4 = 20K
Hai un raddoppio della tensione di uscita 3.75V su 300A

amp_diff.jpg

Brunello: esatto. E dala figura che ho messo, se non ho sbagliato i calcoli, se imposti: R1 = 10K R2 = 10K R3 = 20K R4 = 20K Hai un raddoppio della tensione di uscita 3.75V su 300A

Perfetto. E con questo posso anche modificare il primo post e dichiarare 'risolto' anche questo punto. Grazie Brunello.

Approfitto degli ultimi due punti 3 - verifica temperatura per ogni amplificatore +temperatura ambiente 4 - controllo dei due DSP per il volume master ed il volume subwoofer, con potenziometro digitale con pulsanti (??x uscite digitali)

per fare alcune domande:

Relativamente al punto tre [trattasi in questo caso delle sonde DS 1-wire], quale è la massima lunghezza dei cavetti per le sonde di temperatura?

Relativamente al punto quattro (domanda similare), quale è la massima lunghezza dei cavetti per il controllo digitale dei potenziometri? Ed è meglio: Arduino>Potenziometro elettronico>...cavetti...>DSP oppure Arduino>...cavetti...>Potenziometro elettronico>DSP?

3) con l'OneWire non ci sono problemi di distanza, visto che in un auto non credo che tu riesca a tirare cavi di centinaia di metri

4) Quale Pot. Digitale ? l' mcp41010 ? quello funziona al massimo a 5V

Brunello: 3) con l'OneWire non ci sono problemi di distanza, visto che in un auto non credo che tu riesca a tirare cavi di centinaia di metri

4) Quale Pot. Digitale ? l' mcp41010 ? quello funziona al massimo a 5V

Quindi per i DS 1-Wire non ci sono problemi di lunghezza del cavo: ottimo.

Lo stesso principio vale anche per la connessione ad un display (2x16 almeno all'inizio) ed i pulsanti? Infatti è probabile che Arduino venga posizionato in bagagliaio vicino alle elettroniche ed ai componenti da monitorare, mentre la visualizzazione dei dati dovrà essere in plancia in sede 1-din sotto l'autoradio.

I potenziometri digitali (arrivati tramite la richiesta 'sample' dalla MicroChip e dalla AnalogDevices) sono: 2x MCP41010-I/P - 2 1x AD5207BRUZ10 Difatti il controllo dell'IC lo faccio da Arduino, mentre poi il potenziometro digitale va connesso ai DSP sui 3 pin: +3,3V / Signal / GND.

Piccolo recap degli ingressi analogici e digitali per valutare quale Arduino sia meglio per questo progetto. - verifica della tensione delle batterie: 2 ingressi analogici (0-5V) - verifica corrente: se voglio monitorare tutti gli amplificatori sono 5 ingressi analogici (0-5V), se voglio solo il totale, è 1 ingresso analogico (0-5V) - verifica temperatura: volendo monitorare gli amplificatori (5) e/o la temperatura ambiente interna (1), arrivo rispettivamente a 6 oppure 1 in/out digitali - potenziometro elettronico: per ogni potenziometro mi servono 3 in/out digitali, ma 2 sono comuni per ulteriori potenziometri, quindi in totale mi servono 6 in/out digitali

Ingressi analogici: 7 oppure 3 In/Out digitali: (12 oppure 7) + 4 (I2C)

Dalla pagina http://arduino.cc/en/Products.Compare ho che Arduino Uno è sufficiente per la minore quantità di controlli, oppure per i controlli completi e una buona espandibilità con Arduino Leonardo.

[MODIFICATO] ...certo è che poi devo anche collegare un display e qualche tasto... E qui mi sono perso: troppe alternative per troppe configurazioni possibili.

[RI-MODIFICATO] E' possibile impiegare il modulo LCM1602 per 'ridurre' il numero di in/out digitali di un display a LCD? Se si, quali LCD posso impiegare?

[DOMANDA] Arduino (Leonardo?) andrà posizionato in baule vicino alle elettroniche da controllare, mentre il display ed i pulsanti saranno in plancia: la distanza sarà nell'ordine di 3 metri. Per questa applicazione ci sono problemi di perdita di segnale verso il display e dai pulsanti?

[triste conclusione] Chiudo qui e mi sposto su un altro furum. Ringrazio chi mi ha aiutato fino ad ora: i vostri consigli verranno sfruttati al massimo. Grazie di cuore.

Domanda da principiante.
Ho bisogno di gestire un loop for…next su 5 sensori DS18B20, approfittando del fatto che al sensore 1 corrisponde il display 1 e così via. Il display è della 4D System.
Se non sbaglio, il ciclo dovrebbe essere qualcosa del genere:
Probe1 = (…); //Sensore 1 DS18B20 indirizzo hex
Probe2 = (…); //Sensore 2 DS18B20 indirizzo hex
Probe3 = (…); //Sensore 3 DS18B20 indirizzo hex
Probe4 = (…); //Sensore 4 DS18B20 indirizzo hex
Probe5 = (…); //Sensore 5 DS18B20 indirizzo hex

char* myProbes={“Probe1”, “Probe2”, “Probe3”, “Probe4”, “Probe5”};

void loop(){
for (int i=0; i < 6; i++) {
serial.println(myProbes’[‘i’]’); //Ho dovuto mettere gli apici che altrimenti prendeva la ‘i’ tra parentesi quadre come formattazione corsivo del testo
//lettura temperatura Sensore ‘i’ su tempC (occhio che dopo myProbes c’è parentesi quadra + i + parentesi quadra, ma non viene visualizzato!)
//scrittura seriale di tempC su Display ‘i’
delay(500) //da valutare se 500 o 50
}
}

E’ corretto?