Senseur haut de gamme : Potentiomètre ruban

Un "soft pot" (raccourci pour soft potentiometer - potentiomètre ruban en français) est comme un potentiomètre habituel dans le style que l'on vu dans l'exercice 8, à la différence qu'il est plat, vraiment mince et flexible et n'a pas de poignée. Un potentiomètre est aussi connu comme "résistance variable" et pour un soft pot la résistance fournie est déterminée par la pression qu'on lui applique. Cette pression peut être appliquée avec votre doigt, un stylet ou une lamelle en plastique dur. Quand on appuie sur différentes parties du ruban, la résistance varie de 100 à 10K ohms, permettant de calculer la position relative sur le ruban. On peut utiliser cela pour suivre un déplacement sur le softpot ou des appuis espacés "style bouton". Dans ce circuit on l'utilisera pour contrôler la couleur d'une LED RVB.

COMPOSANTS

SCHEMA DU CIRCUIT

Schéma du circuit

MONTAGE DU CIRCUIT

Diagramme d'assemblage

CODE

Vous pouvez trouver ce code dans CIRC-14-code-softpot.js

var five = require("johnny-five"),
    board, mySoftPot, myLed;

function getRGB(hue) {
  var colors = [];
  var r = five.Fn.constrain(five.Fn.map(hue, 0, 512, 255, 0), 0, 255);
  var g = five.Fn.constrain(
        five.Fn.map(hue, 0, 512, 0, 255), 0, 255) -
      five.Fn.constrain(five.Fn.map(hue, 512, 1023, 0, 255),0,255);
  var b = five.Fn.constrain(five.Fn.map(hue, 512, 1023, 0, 255), 0, 255);
  colors[0] = r;
  colors[1] = g;
  colors[2] = b;
  return colors;
}

board = new five.Board();

board.on("ready", function() {

  myLed = new five.Led.RGB([ 9, 10, 11 ]);

  mySoftPot = new five.Sensor({
    pin: "A0",
    freq: 250
  });

  mySoftPot.on("read", function( err, value ) {
    console.log("read value",value);
    var rgbColors = getRGB(value);
    myLed.color(rgbColors);
  });
});

DEPANNAGE

La LED reste noire ou présente une couleur incorrecte

Avec les quatre broches de la LED si près les unes des autres, il est quelquefois facile de mal en placer une. Essayez de vérifier que chaque broche est là où elle doit être.

Voir rouge

La diode rouge parmi les LEDs RVB peut être un peu plus brillante que les deux autres. Pour que leurs couleurs soient plus balancées, utiliser un transistor avec plus d'ohms, ou ajuster la valeur rouge dans le code.

Résultats bizarres

La cause la plus probable est que vous appuyez sur le potentiomètre sur plus d'une position à la fois. Cela est normal et peut en fait être utilisé pour créer quelques résultats originaux.

ETENDRE LE CODE

Simili boutons

Du fait de la façon dont fonctionne le potentiomètre ruban, il peut aussi s'utiliser pour réaliser des boutons personnalisés. Pour ce faire vous définissez une rangée de valeurs correspondant à un bouton discret. Utilisez la console pour déterminez les valeurs désirées, et ajoutez une condition pour tester l'intervalle de chaque "bouton" que vous voulez créer, comme:

if (value > minValue && value < maxValue) {
    button1Action();
} else if (value > minValue2 && value < maxValue2) {
    button2Action();
}

Ensuite recouvrez le ruban avec un schéma de bouton dessiné/imprimé.


Licence Common Creative. Traduction par Scriptol.fr du tutoriel en anglais d'Anna Gerber, sous la même licence. Copie et modification autorisées sous réserve de conserver cette notice y compris le lien sur la page originale.