Arduino come potenziometro digitale

Arduino come potenziometro digitale

Come usare

Con Arduino si intende una serie di schede a microprocessore. Un potenziometro digitale è un chip, che al suo interno, ha una serie di resistenze collegate come divisore di tensione.

arduino come potenziometro digitale - schema a blocchi
arduino come potenziometro digitale – schema a blocchi

Un potenziometro digitale possiede le seguenti caratteristiche:

  • è un potenziometro a tutti gli effetti, ma non si deteriora con l’utilizzo
  • per essere tarato non ha bisogno di un intervento manuale (girare il cacciavite)
  • si programma con un microcontrollore
  • può essere resinato e mantiene la possibilità di essere ri-tarato
  • è meno sensibile all’umidità
  • ha un profilo meno ingombrante di un tradizionale potenziometro
  • è meno sensibile alle vibrazioni

Utilizzi del potenziometro digitale

  • sostituzione dei potenziometri tradizionali
  • ritardi, filtri e costanti di tempo programmabili
  • controllo di volume e stereofonia
  • compensazione delle impedenze di linea
  • regolazioni negli alimentatori

    arduino come potenziometro digitale - scheda
    arduino come potenziometro digitale – scheda
arduino come potenziometro digitale - potenziometro
arduino come potenziometro digitale – potenziometro

 

Modelli di potenziometro digitale

I potenziometri tradizionali, diciamo analogici, si diversificano per almeno due caratteristiche principali:

  • valore resistivo
  • tipo di linearità: lineare/logaritmica

La progressione della resistenza tra il pin centrale e uno dei pin laterali è analogica, cioè procede in modo continuo tra 0 e il valore resistivo nominale massimo.

Nel potenziometro digitale la resistenza viene incrementata a scatti. Nel chip che compone il potenziometro digitale ci sono una serie di singole resistenze, collegate tra loro in serie. Il pin centrale viene collegato, tramite la programmazione, ai capi di un nodo tra due resistenze. Così si forma un partitore di tensione, che è l’utilizzo tipico di un potenziometro, detto anche reostato.

Il numero degli scatti/resistenze definisce la definizione che può avere il potenziometro digitale. Nei datasheet viene specificata in numero di bit.

Ci sono potenziometri con appena 6 bit, equivalenti a 64 scalini resistivi. Sono i componenti che costano meno. Altri modelli con 7, 8 o 10 bit (128, 256 0 1024 scalini resistivi).

Memorizzazione della programmazione

Un potenziometro digitale deve essere programmato. La programmazione può essere permanente o a memoria temporanea.

Permanente significa che il rapporto di partizione è memorizzato in una EEProm. Ogni volta che l’integrato viene spento, e poi riacceso, viene ripristinata la programmazione impostata in precedenza.

Memoria temporanea RAM significa che ogni volta che viene spento, e poi riacceso, l’integrato ripristina la programmazione di default. Solitamente coincide con una programmazione del partitore a metà corsa (pari resistenza tra il pin centrale e i pin laterali).

Tensione e corrente di lavoro

Un dato da valutare è la tensione applicabile al partitore. Normalmente la tensione massima applicabile è variabile da 2,7 a 5,5 Volt. Ci sono modelli con tensioni più elevate variabili dai 15 ai 30 Volt (sono anche più costosi).

La corrente di lavoro massima è quella che può scorrere all’interno del partitore resistivo interno all’integrato. E’ riportato in “Absolute Maximum Ratings” alla riga “Maximum current into A, W and B pins”. Può variare tra +/- 2,5mA fino a +/- 25mA.

Circuiti integrati potenziometro digitale

Nel modello MCP4018 e MCP4019 notate come il pin B è collegato insieme al pin dell’alimentazione negativa GND/Vss. Questo ne limita l’utilizzo solo ai circuiti partitori di tensione.

arduino come potenziometro digitale - MCP4017-18-19
arduino come potenziometro digitale – MCP4017-18-19
arduino come potenziometro digitale - MCP45x1
arduino come potenziometro digitale – MCP45x1

 

arduino come potenziometro digitale - MCP46xx
arduino come potenziometro digitale – MCP46xx
arduino come potenziometro digitale - MCP4011-12-13-14
arduino come potenziometro digitale – MCP4011-12-13-14
arduino come potenziometro digitale - AD840x
arduino come potenziometro digitale – AD840x

Programmare Arduino come potenziometro digitale

Un esempio lo trovate nella IDE di Arduino: File –> Esempi –> Wire –> digital_potentiometer

Questo programma utilizza il circuito integrato AD5171 potenziometro digitale. Viene utilizzato il metodo di scambio dati I2C.

// I2C Digital Potentiometer
// by Nicholas Zambetti <http://www.zambetti.com>
// and Shawn Bonkowski <http://people.interaction-ivrea.it/s.bonkowski/>
// Demonstrates use of the Wire library
// Controls AD5171 digital potentiometer via I2C/TWI
// Created 31 March 2006
// This example code is in the public domain.

#include <Wire.h>

void setup()
{
  Wire.begin(); // join i2c bus (address optional for master)
}

byte val = 0;

void loop()
{
  Wire.beginTransmission(44); // transmit to device #44 (0x2c)
                              // device address is specified in datasheet
  Wire.write(byte(0x00));            // sends instruction byte  
  Wire.write(val);             // sends potentiometer value byte  
  Wire.endTransmission();     // stop transmitting

  val++;        // increment value
  if(val == 64) // if reached 64th position (max)
  {
    val = 0;    // start over from lowest value
  }
  delay(500);
}

Datasheet potenziometro digitale

http://ww1.microchip.com/downloads/en/DeviceDoc/22096b.pdf

https://datasheet.lcsc.com/szlcsc/Microchip-Tech-MCP4018T-503E-LT_C145561.pdf

https://datasheet.lcsc.com/szlcsc/Microchip-Tech-MCP4011-503E-SN_C185531.pdf

https://www.tme.eu/en/Document/1c6d79496035ee640a410c41b872fd71/AD8400AR10-Analog-Devices.pdf

 

Autore dell'articolo: Lucio Sciamanna