Problema con potenciometro digital

Tengo conectado al Arduino mega el potenciometro digital x9c104
potDigital1.png
potDigital2.png

tengo conectado el INC al pin digital 30, el
U/D al pin digital 31, el CS al pin digital 32 ademas de la alimentacion a 5V

y el siguiente código

#include <DigiPotX9Cxxx.h>

DigiPot pot(30,31,32);
int input;
void setup() {
  Serial.begin(115200);
}
 
void loop() {
 
  if (Serial.available()>0){
    input=Serial.read();
    if (input=='1'){
      pot.increase(1);
    }
    else
    {
      pot.decrease(1);
    }
  }
}

El problema viene que al enviar algun input sin inportar el valor el potenciometro de incrementa subiendo asi su resistencia pero cuando quiero reducirla no lo consigo..
en teoria al enviar un 1 debería subir y al enviar un numero diferente debería bajar pero nada solo consigo que suba..
alguna idea ? :confused:

potDigital1.png

potDigital2.png

Moderador:
Modifiqué levemente tu hilo porque las imágenes de repositorios se caen al poco tiempo y la intención es preservar un hilo legible.

Probaste colocando un Serial.print(algo) para darte cuenta de lo que esta haciendo el código?

No comprendo que esta pasando... al añadir

  Serial.println(Serial.read());

en la ultima linea del void loop() con la intencion de visualizar el error de repente funciona pero si lo elimino deja de funcionar...

#include <DigiPotX9Cxxx.h>

DigiPot pot(30,31,32);
int input;
void setup() {
  Serial.begin(115200);
}
 
void loop() {
 
  if (Serial.available()>0){
    input=Serial.read();
    if (input=='1'){
      pot.increase(1);
    }
    else
    {
      pot.decrease(1);
    }
  }
Serial.println(Serial.read());
}

asi quedaria el codigo...

No puedes hacer eso porque te quitas la lectura del byte que esta llegando.

Solo se imprime cuando se lee algo, o sea de este modo

#include <DigiPotX9Cxxx.h>

DigiPot pot(30,31,32);
int input;
void setup() {
  Serial.begin(115200);
}
 
void loop() {
 
  if (Serial.available()>0){
    input = Serial.read();
    Serial.println(input);
    if (input=='1'){
      pot.increase(1);
    }
    else
    {
      pot.decrease(1);
    }
  }

Muchas gracias por la solucion

No se si te soluciono algo, solo te muestro como podes ir viendo que esta ocurriendo cuando crees que estas presionando para que suba y no lo hace.
Agregá Serial.println() en cada paso que avance o disminuya un paso el potenciómetro digital.

Ejecutaste este ejemplo?

#include <DigiPotX9Cxxx.h>

DigiPot pot(30,31,32);

void setup() {
  Serial.begin(115200);
}

void loop() {
  Serial.println("Starting");

  for (int i = 0; i < 100; i++) {
    Serial.print("Increasing, i = ");
    Serial.println(i, DEC);
    pot.increase(1);
    delay(200);
  }

  for (int i = 0; i < 100; i++) {
    Serial.print("Decreasing, i = ");
    Serial.println(i, DEC);
    pot.decrease(1);
    delay(200);
  }

}

Si esto funciona el tuyo debe funcionar tambien

Si gracias por el ejemplo, me funcionó correctamente.

Alguien uso este módulo en concreto? En la descripción veo que es de 0 - 100k pero solo me da de 0 - 10k ??

La imagen dice X9C104S y por lo tanto 104 y que yo sepa 10^4 = 10k siempre. 10^5 es 100k
Compraste mal.

Después de mirar otros modelos de 100k también me lo venden con el x9c104s y los de 10k con el x9c103s ???

No lo comprendo..

Alguien a usado algún potenciometro de 100k que me pueda recomendar ??

Gracias por la ayuda

Cuando respondí antes pensabe que en resistencias y como éstas tienen 3 bandas y comienzas por ejemplo
marrón negro naranja => 1 0 3 = 10k porque es 10 x 1000 = 10k
marrón negro amarillo => 1 0 4 = 100k porque es 10 x 10000 = 100k

Ahora en el potedigital veo que
104S corresponde a 100k asi que mi comentario anterior esta mal en el post#7

No se aplica la idea de resistencias a la nomenclatura del potenciómetro digital.