Divisore di tensione con resistenze da 12v a 9v per 2 amp di assorbimento

Ciao a tutti,

so che l'argomento è stato sicuramente trattato un paio di milioni di volte, però avrei una domanda molto specifico essendo ignorante in materia.

Premetto che per motivi di costi non posso usare un regolatore di tensione, altrimenti il problema non lo avrei a monte.

In pratica ho una situazione dove con un arduino mi ritrovo a controllare una serie di schede di controllo che ho disegnato io, la singola scheda è composta da uno shift register a 8 bit, un hex inverter e poi da un h-bridge per controllare fino a 4 motori bipolari.
Sulle stesse schede mi servono 2 diversi divisori di tensione fatti con resistenze.

Visto che non so a priori quante schede posso dover collegare ho pensato ad un banale sistema: con un divisore di tensione, su ogni scheda, tolgo N volt rispetto alla tensione in ingresso così da poter, con una serie di controlli, rilevare quante schede sono collegate in cascata. So che usarli in cascata non porta ad una riduzione lineare del voltaggio per vari motivi, ma a me non interessa perché una volta che faccio i rilevamenti e so che al primo passaggio la tensione sarà X, al secondo Y ed al terzo Z sto senza problemi.
Come alimentazione di questa linea elettrica sto utilizzando il 5v di arduino attualmente, ma dopo userò i +5v di un alimentatore ATX. L'uscita di questa linea ovviamente va a finire ad una porta dell'ADC su arduino.
Al massimo devo mettere 8 schede in cascata, non di più, tanto che voglio verificare se posso addirittura usare i 3.3v.

Il secondo divisore di tensione mi serve per fornire la tensione necessaria a delle elettrovalvole a 9v DC, fondamentalmente le alimento per 50ms quindi la cosa è molto rapida. il problema mio è che mentre con il primo divisore di tensione tolgo circa 0.21v a ogni passaggio (R1=100ohm, R2=2200ohm) con il secondo divisore di tensione devo passare da 12v a 9v (quindi Vout = 3/4 * Vin, devo ancora calcolare le resistenze).
Ora, però, visto che devo fondamentalmente erogare fino a 2 ampere per 50ms mi è sorto un dubbio importantissimo: che succede alle resistenze?

Premetto che il divisore di tensione sarà usato per 50ms tipo 2 volte al giorno, massimo 4, però comunque è una bella botta ogni volta!

Qualcuno mi può dare qualche indicazione? Come devo dimensionare le resistenze? Va bene nell'ordine del primo divisore di tensione? Oppure devo usare resistenze con impedenza superiore? Oppure ancora devo utilizzare resistenze più grosse tipo da 1/2w? In realtà facendo una semplice moltiplicazione tensione * amperaggio viene fuori 24watt ... esistono resistenze di questo tipo? Oppure il conto che ho fatto è completamente sballato?

Grazie a tutti!

Un partitore NON può essere usato come regolatore di tensione, se deve anche condurre corrente, specialmente quando è tanta, come nel tuo caso, in quanto questo parametro influisce direttamente sulla tensione stessa. Non so perché tu non possa usare un regolatore, ma ti sconsiglio fortemente di cimentarti in una situazione del genere.

Per avere una tensione abbastanza stabile si calcola che la corrente attraverso il partitore resistivo deve essere almeno 10 volte di piú di quella che si preleve. Prendendo come valore di corrente 2A devi avere 20A attraverso il partitore e percui 480W che devi disipare sul partitore.

Non puoi neppure usare una resistenza in serie per abbassare la tensione perché la perdita di tensione é proporzionale alla corrente e la corrente non é costante.

Se devi accendere solo per 50ms ogni 6 ore la valvola puoi alimentarla anche a 12V anziche 9V.

Non ho capito il discorso delle schede in cascata.

Comunque un stabilizzatore costa molto di meno che una resistenza da 25W o 500W. Non parliamo del alimentatore.

In generale: NON si possono usare dei partitori resistivi per abbassare la tensione di alimentazione.

Ciao Uwe

Capito, quindi non posso usare quel sistema per portare la tensione da 12v a 9v per le elettrovalvole, anche perché non ho intensione di comprare delle resistenze di quel tipo perché mi costeranno tipo 10 regolatori di tensione se non di più ... lol

Ora proverò ad alimentare le elettrovalvole con 12v nella speranza che non mi fumino :smiley:

Riguardo al discorso delle schede in serie, il discorso è questo: non so a priori quante elettrovalvole devo collegare, quindi ho predisposto delle schede che ne possano gestire 4 per volta e che possano essere collegate in cascata per "estendere" il numero di elettrovalvole gestibili usando uno shift register.
Per poter "calcolare" quante schede ho e quindi quanti shift register devo gestire, ho usato una serie di partitori di tensione in cascata. Visto che non ci devo alimentare nulla ma soltanto rilevare la tensione in uscita alla fine, va bene comunque? Il fatto che la riduzione della tensione non sia lineare non mi interessa, mi preoccupa soltanto se le resistenze mi lasciano dopo un po visto che comunque saranno alimentate in modo continuo.
Forse per evitare problemi mi conviene controllare un mosfet con un pin di arduino e alimentarlo poi tramite l'alimentazione dell'alimentatore ATX così evito il rischio di danneggiamenti di qualsiasi tipo, tanto questo check dovrò farlo soltanto prima di attivare le elettrovalvole (potrei farlo solo all'accensione, ma tanto un'aggiunta a caldo non dovrebbe creare alcun tipo di problema.

in pratica vorresti rilevare la tensione di uscita su un partitore composto per capire quante schede sono collegate

ma di quante schede Max parliamo ?

partitore.png

Ciao,

si, il principio che sto usando è quello, però l'ho fatto in modo diverso ed effettivamente facendolo così andrei a risparmiare 1 resistenza per scheda.
In pratica io ho messo la coppia di resistenze su ogni singola scheda (R1=100ohm, R2=2200ohm), non sapevo potessi far così :slight_smile:

Massimo mi interessa collegare 8 schede e dai conti che ho fatto con la combinazione di resistenze c'è la dovrei fare senza problemi (non arrivo a 0v prima di arrivare all'ottava scheda).

Prova soltanto ad immaginare come possa variare il rapporto su una serie di partitori in cascata...
Non vale piu' la formula Rb / (Ra+Rb), ma il valore sul punto X non e' piu' costante, ma legato a quanti partitori vi sono collegati.

Si, me ne ero accorto che il valore non era più lineare, ma non mi interessa più di tanto nel senso che basta che campiono i valori e do un minimo di range (non so, usura delle resistenze o dei circuiti) s sono apposto, tanto al massimo mi interessa campionare 8 valori.

Però mi domando: cosa succede se le resistenze vengono pedissequamente alimentate? Per esempio per 365 giorni non stop 24/24h? Visto che non c'è assorbimento e praticamente non riscaldano quasi niente (dopo un giorno di partitori in cascata accesi li toccavo con il dito ed erano alla temperatura del mio dito, non le sentivo ne più fredde ne più calde, quindi direi tra i 20° ed i 25°)

Seguendo il tuo schema (ovvero R2 collegato in fondo) cosa cambia? Ho una riduzione lineare della tensione? (credo di no visto che si tratta di una serie di resistenze in serie e, da quanto ho capito, l'uso di resistenze in serie non fornisce un impedenza pari alla somma delle impedenze)
In realtà è più semplice nel modo in cui hai fatto tu, quindi passerò a quella versione sicuramente.

Però mi domando: cosa succede se le resistenze vengono pedissequamente alimentate? Per esempio per 365 giorni non stop 24/24h? Visto che non c'è assorbimento e praticamente non riscaldano quasi niente (dopo un giorno di partitori in cascata accesi li toccavo con il dito ed erano alla temperatura del mio dito, non le sentivo ne più fredde ne più calde, quindi direi tra i 20° ed i 25°)

l'assorbimento c'e', dato che le resistenze sono un carico. Esiguo ( I=V/R) quindi possono essere sempre collegate

Seguendo il tuo schema (ovvero R2 collegato in fondo) cosa cambia? Ho una riduzione lineare della tensione? (credo di no visto che si tratta di una serie di resistenze in serie e, da quanto ho capito, l'uso di resistenze in serie non fornisce un impedenza pari alla somma delle impedenze)
In realtà è più semplice nel modo in cui hai fatto tu, quindi passerò a quella versione sicuramente.

Il secondo esempio che ho fatto, mi rendo conto che non c'entra niente, dato che devi comunque visualizzare una tensione sul ADC. E' nei vari nodi che la tensione cambia in rapporto al numero dei partitori.
Una caduta di tensione lineare non la ottieni mai con dei partitori resistivi, dovresti usare valori diversi per ogni scheda, ma poi non sarebbero piu' intercambiabili.
Per avere una caduta di tensione lineare dovresti usare ad esempio un diodo al posto della resistenza ( caduta 0,6-0,7 V ), meglio uno schottky ( 0,35V ).

Domanda: ma ti mancano delle porte per poter gestire il numero delle schede nel modo classico ( Decoder 3/8 in input ) ?

brunello:
l'assorbimento c'e', dato che le resistenze sono un carico. Esiguo ( I=V/R) quindi possono essere sempre collegate

ok, perfetto, questo mi risolve un problema :slight_smile:

brunello:
Il secondo esempio che ho fatto, mi rendo conto che non c'entra niente, dato che devi comunque visualizzare una tensione sul ADC. E' nei vari nodi che la tensione cambia in rapporto al numero dei partitori.
Una caduta di tensione lineare non la ottieni mai con dei partitori resistivi, dovresti usare valori diversi per ogni scheda, ma poi non sarebbero piu' intercambiabili.
Per avere una caduta di tensione lineare dovresti usare ad esempio un diodo al posto della resistenza ( caduta 0,6-0,7 V ), meglio uno schottky ( 0,35V ).

Domanda: ma ti mancano delle porte per poter gestire il numero delle schede nel modo classico ( Decoder 3/8 in input ) ?

EDIT

ho corretto la risposta perché non avevo letto il tra parentesi :slight_smile:

Beh, in realtà userei solo 3 porte per ogni 8 uscite quindi non sarebbe un problema particolare, anche se alla fine dovrei usare per forza una mega perché devo collegare svariate altre cose. In realtà il problema è che non sono molto competente in ambito di elettronica, per costruire un sistema di quel genere a livello logico userei una serie di porte NOT ed AND, ma a livelo elettronico non ne avrei idea :smiley:

Il fatto è che a me servono 3 * 32 uscite per controllare degli h-bridge che mi controllano le elettrovalvole, quindi vorrebbe dire usare 7 pin così da ottenere un decoder a 128 uscite (mi sta anche bene, magari ci sono future espansioni)

Il problema di fondo è che comunque non saprei come costruirlo a livello elettronico oltre al fatto che usando 7 pin probabilmente mi ritroverei stretto visto che allo stesso arduino devo collegare altri sensori (un termostato digitale ds18b20 che lavora tramite protocollo one-wire quindi sarebbero 8 pin, ed un barometro BMP085 ma è su I2C). Inoltre mi servono i due pin della porta seriale quindi arriviamo a 10 pin usati complessivamente. Il fatto è che vorrei tenermi largo per future espansioni e con soli 3 pin liberi c'è il rischio che mi ritrovi a cambiare sistema.

In realtà volendo potrei costruire un decoder 8/256 con un singolo shift register ed userei solo 3 porte e mi risolverei tutto il problema a monte ...... LOL

Come si costruiscono i decoder? :smiley: (nel frattempo guardo su google!)
O in alternativa di circuiti integrati già pronti almeno 7/128 (o 8/256) cosa mi consigli?

Sono riuscito a trovare dei decoder che hanno al massimo 4 ingressi e 16 uscite, ma per arrivare a quota 7/128 dovrei metterne parecchi in cascata ed avere una circuiteria iper incasinata, comunque continuo a cercare

Grazie per l'idea! :slight_smile:

Veramente pensavo che quando parlavi di Shift Register volessi usare quelli seriali

Ad esempi i 74HC595, personalmente ne ho collegati fino ad 8 in cascata senza nessun problema.
Usi solo 3 pin per pilotare fino a 64 uscite ( o piu' )

beh, si, sto usando dei registri seriali

ho fatto qualche esperimento per pilotare 4 led a 7 segmenti per la misurazione della temperatura ed è tutto andato perfettamente (in realtà mi sono fermato al secondo e mezzo perché mi ero stufato di collegare trilioni di fili sulle breadboard :D)

Mi sa che alla fine eviterò proprio di utilizzare il partitore di tensione con resistenze e collegherò l'uscita dati dell'ultimo shift register ad un pin di arduino così da rilevare digitalmente quanti shift register ci sono (invierò prima un bit a 1 e poi N bit a zero effettuando un conteggio, appena ricevo il bit a 1 sul pin allora potrò determinare il numero di shift register collegati in serie).

Grazie comunque per gli utilissimi consigli!!!

Bella idea.
Controllare il Serial data Out senza abilitare il latch.

Questa te la rubo.

mmm ... mmm ... ehm ... cos'è il latch? :DDDD

ti riferisci al fatto lo spostamento del bit senza che questo venga realmente applicato alle uscite?

mmm

effettivamente è una bella idea (la tua :smiley: non sapevo nemmeno cos'era il latch prima di leggerlo su wikipedia :D)

In pratica tengo in high RCLK mentre SRCLR lo utilizzo per far shiftare il bit (quindi dopo che invio il primo bit a 1 ne invio tanti a zero) e appena l'ingresso digitale su cui è collegata l'uscita della serie degli shift register su arduino lo rileva ad 1 metto LOW anche RCLK, tanto tutti i registri saranno a zero. Giusto?

L'unica domanda che mi pongo è: per quanto tempo sarà HIGH l'uscita dello shift register quando riceverò il bit a 1 sul pin di arduino? Appena metto LOW RCLK perderò il valore, giusto? Mi conviene fare il read mentre è HIGH RCLK credo

Prima che lo dimentichi ... il discorso di usare lo shift register me l'ha sugerita Arkham00, sul forum di robot-italy :slight_smile:

Facciamo finta che non ho detto nulla prima, mi sono accorto che c'è un pin chiamato OUTPUT ENABLE e serve a controllare le uscite finali, se è in HIGH non esce nulla dai QA/QH ma da QH' vengono normalmente shiftati i bit :slight_smile:

'unica domanda che mi pongo è: per quanto tempo sarà HIGH l'uscita dello shift register quando riceverò il bit a 1 sul pin di arduino? Appena metto LOW RCLK perderò il valore, giusto? Mi conviene fare il read mentre è HIGH RCLK credo

Il clock dello ShiftRegister ( Pin11 del 74hc595 ) lavora sul fronte di salita, quindi basta leggere il dato prima o dopo una transizione da Low ad High.

In genere l'OE non viene usato con arduino, serve per porre le uscite in Alta impedenza e quindi e' posto a massa.
Per passare il dato presente nello shift Register sulle sue uscite si manda un fronte di salita sul pin 12 ( stcp)
In pratica.
Pin 11 Clk =0

Pin 14 Datain = HIGH // Bit 1 da riconoscere alla fine dell'ultimo ShiftRegister
Pin 11 Clk =1 -Pin 11 Clk =0
Pin 14 Datain = LOW // d'ora in poi si inviano solo Zeri

Pin 11 Clk =1 - Pin 11 Clk =0 // Tante volte fino a che non si legge lo stato High su un pin di Arduino

poi nell'uso degli H Bridge ti conviene usare la Shiftout