SoftPot e Arduino

by luca
0 comment

Ho trovato in vendita su Troniqa un potenziometro a membrana, chiamato SoftPot (datasheet):

softpot-1

Questo potenziometro, disponibile nelle lunghezze di 1020cm, modifica la sua resistenza in base al punto sul quale viene esercitata una pressione.

Il collegamento ad Arduino è molto semplice e non differisce da quanto spiegato nel tutorial ufficiale per un “normale” potenziometro: ho collegato al pin 1 (indicato dalla freccia) 5V, al pin centrale un ingresso analogico di Arduino e al pin 3 la massa.

Il valore letto nello sketch (tramite la funzione analogRead) varia da 0 a 1023, a seconda di dove viene premuta la membrana del potenziometro.

Per dimostrare un esempio pratico di utilizzo di SoftPot, ho preparato un semplice circuito utilizzando i led APA106 di cui vi ho parlato in un precedente articolo.

Ho collegato in cascata 4 led e il pin DIN del primo al pin 6 di Arduino. Ho quindi collegato SoftPot come descritto sopra, utilizzando il pin AN0 di Arduino:

softpot-2 softpot-3

Lo sketch (che potete trovare su Github) accende i led in base al valore letto dal potenziometro… per rendere l’effetto più simile ad un v-meter audio, i primi 3 led si accendono di colore rosso, mentre l’ultimo di colore verde.

Per fare questo, il valore letto viene diviso in 4 “zone”, ognuna di 256 valori. Ogni zona controlla uno dei led:

int potValue = analogRead(A0);
if(potValue < 256) {
 pixels.setPixelColor(0, pixels.Color(potValue, 0, 0));
 [...]
else if(potValue < 512) {
 pixels.setPixelColor(1, pixels.Color(potValue - 256, 0, 0));
 [...]
else if(potValue < 768) {
 pixels.setPixelColor(2, pixels.Color(potValue - 512, 0, 0));
 [...]
else {
 pixels.setPixelColor(3, pixels.Color(0, potValue - 768, 0));

Ecco un filmato che mostra il funzionamento:

[youtube id=”hJByXDOdzcQ” width=”600″ height=”350″]

 

 

Related Posts

Leave a Comment

11 + 13 =