Approfondimenti a Arduino da zero a maker FM
1 Partitore di tensione Il partitore di tensione è un circuito formato da due o più resistenze poste in serie 1, anche se per semplicità considereremo il caso di due soli componenti, come in figura. Il circuito è utile perché, applicando una tensione ai suoi capi, nel punto centrale (o nodo centrale) si legge sempre una tensione intermedia e proporzionale ai valori delle resistenze. V R up R up Tensione uscita I V Ciò può essere utile per due motivi: Figure 1: Il circuito partitore. per riportare una tensione elevata ad una più bassa (ad esempio passare da 5v a 3.3v); sostituendo un sensore resistivo ad una delle resistenze fisse la tensione di uscita sarà legata alla grandezza da misurare (si può fare così con una fotoresistenza o una termoresistenza). 1.1 Ricaviamo la formula Dalla prima Legge di Ohm è noto che la caduta di tensione su una resistenza è data dal prodotto della corrente che la attraversa per il valore della resistenza stessa. Quindi per la resistenza inferiore si ha che: V Rdown = I Dove I è la corrente che, provenendo dall alimentazione V CC, attraversa le resistenze e finisce a massa. Poiché V Rdown è la caduta di tensione su e il terminale inferiore è collegato a massa (0V) il terminale superiore si trova esattamente ad una tensione pari a V Rdown, che è quella cercata. Applicando invece la Legge di Ohm a tutto il circuito si può calcolare la corrente (la resistenza totale per cui dividere sarà la somma delle due): V CC I = R up + 1 Due componenti si dicono in serie quando la corrente proveniente dal primo fluisce interamente nel secondo. 1
La corrente appena trovata può essere quindi sostituita nella prima equazione: V Rdown = Che in forma più ordinata risulta: V Rdown = V CC R up + R up + V CC Regola mnemonica la tensione al centro di un partitore si calcola dividendo la resistenza sotto per la somma delle due, moltiplicando poi tutto per la tensione V CC. R up Tensione uscita Figure 2: Minori sono le resistenze, maggiori sono il peso (o il gas nel palloncino). 1.2 Esempi utili V Rdown = R up = = 1kΩ V CC = 1kΩ 1kΩ + 1kΩ = 1 2 = 2. In generale, mettendo due resistenze uguali in serie si ottiene una tensione ripartita pari alla metà di quella di alimentazione. R up = 1kΩ = 2kΩ V CC = V Rdown = 2kΩ 1kΩ + 2kΩ = 2 3 3.33V Questo è un metodo per ottenere una tensione di (circa) 3.3v a partire da 5v. 2
1.3 Relazione inversa Nel caso dei sensori la relazione che ci interessa è nella direzione contraria, ossia conoscendo la tensione di alimentazione, la tensione ripartita e una delle due resistenze si vuole ricavare il valore della seconda resistenza (per esempio R up. Rimettiamo mano alle equazioni: V Rdown = V CC + R up V Rdown ( + R up ) = V CC V Rdown + V Rdown R up = V CC V Rdown R up = V CC V Rdown V Rdown R up = (V CC V Rdown ) R up = V CC V Rdown V Rdown 1.4 Esempi utili R up = ( ) VCC 1 V Rdown L esempio migliore è la lettura di un sensore (ad esempio una termoresistenza), come illustrato anche nel libro. 1.5 Quando non funziona il partitore? Se vuoi usare il partitore per controllare un carico, ossia un componente che assorbe corrente, il partitore non funziona più: si era detto che sia in che in R up deve scorrere la stessa corrente! 2 Transistor Si ricorre ad un transistor quando si vuol controllare un oggetto con Arduino ma la corrente massima che i pin possono erogare non è sufficiente 2. Il circuito standard che si usa (illustrato anche nel libro) richiede un transistor di tipo bjt npn, una resistenza ed a seconda dei casi un diodo 3. Il modello utilizzato nel libro è il bc547, accettabile per un piccolo motore o una striscia led di qualche centimetro, ma meno adatto per carichi più rilevanti. Nel circuito il transistor funziona da interruttore elettronico: quando una corrente sufficiente scorre nella base il transistor è acceso e chiude il circuito fra collettore ed emettitore: il carico viene alimentato; quando non scorre corrente in base, il transistor è spento e apre il circuito; 2 Si ricorda che, per Arduino uno, Mega e Nano, ogni pin può erogare al massimo 40 ma. 3 Si ricorda che il diodo è necessario quando si usano componenti induttivi come motori o bobine di relé, inerziali rispetto alle variazioni di corrente. 3
Per accendere correttamente il transistor è necessario immettere in base almeno una porzione della corrente che scorre nel carico, secondo la relazione: I B h F E dove h F E è un parametro del transistor, detto guadagno, che nel caso del bc547 è almeno 200. Per un piccolo motore = 80mA, quindi I B deve essere maggiore di 0.4mA. La resistenza corretta si calcola sapendo che, visto dalla base, il transistor si comporta come un comune diodo con caduta di tensione 0.7V : + L - + L - I B Arduino Arduino I B Caveat: in realtà quando il transistor è acceso non chiude perfettamente il circuito ma si mangia circa 0.3V. Quindi: la tensione che spetta al motore è ridotta, ma spesso è un effetto trascurabile; il transistor scalda per effetto Joule: P = V I = 0.3V 80mA = 24mW. Questo transistor al massimo sopporta 500mW, quindi siamo in zona d uso corretta. 4