Цифровой потенциометр x9c104

Цифровой потенциометр x9c104

Новый код

#define UD  2                          // выходы к которым подключен модуль
#define INC 3
#define CS  4

void up(){                            // поднимает ползунок в верх на 1 ступень
  digitalWrite(UD, HIGH);             // на U/D подаем единицу
  digitalWrite(INC, HIGH);            // и на INC тоже
  digitalWrite(CS, LOW);              // включаем микросхему
  delayMicroseconds(1);               // ждем
  digitalWrite(INC, LOW);             // дергаем вход INC
  delayMicroseconds(1);
  digitalWrite(INC, HIGH);
  delayMicroseconds(1);
///digitalWrite(INC, LOW);                  // в этом случаи положение ползунка записано не будет
  digitalWrite(CS, HIGH);             // выключаем микросхему и записываем положение в EEPROM 
}

void down(){                          // опускаем ползунок в верх на 1 ступень
  digitalWrite(UD, LOW);
  digitalWrite(INC, HIGH);
  digitalWrite(CS, LOW);
  delayMicroseconds(1);
  digitalWrite(INC, LOW);
  delayMicroseconds(1);
  digitalWrite(INC, HIGH);
  delayMicroseconds(1);

  digitalWrite(CS, HIGH);
}

void setup() {
  Serial.begin(9600);

  pinMode(INC, OUTPUT);
  pinMode(UD, OUTPUT);
  pinMode(CS, OUTPUT);
  digitalWrite(CS, HIGH);                         // выключаем микросхему
}

void loop() {

  if (Serial.available()) {                       // проверяем пришло ли что в Serial
     if (Serial.read() == '0'){                   // если пришел 0
      down();                                     // опускаем ползунок
      Serial.print("-1");
     }
     else {                                       // иначе поднимаем
      up();
      Serial.print("+1");
     }
   
  }
 

}

Пульт

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
#define CE_PIN 9
#define CSN_PIN 10
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(CE_PIN, CSN_PIN);
int datos[3];
int val_x;
int val_y;

void setup(void)
{
  radio.begin();
  radio.openWritingPipe( pipe);
  Serial.begin(9600);
}
void loop() {
  datos[0] = analogRead(1);
  datos[1] = analogRead(0);
  bool ok = radio.write(datos, sizeof(datos));
  Serial.println(datos[0]);
}

Пульт. Джойстик подключается +5v --> 3v3; GND --> GND; VRx --> A0; VRy --> A1;

Цифровой потенциометр x9c104 Цифровой потенциометр x9c104

Приёмник

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
const uint64_t pipe = 0xE8E8F0F0E1LL;
#define CE_PIN 9
#define CSN_PIN 10
RF24 radio(CE_PIN, CSN_PIN);
int datos[3];
long time = 0;

byte IsConnect;

#include <DigiPotX9Cxxx.h>
DigiPot pot(3,5,6);
//INC -->3; U/D-->5; CS-->6; VCC --> 3v3; GND--> GND;

void setup()
{
  radio.begin();
  Serial.begin(9600);
  radio.openReadingPipe(1, pipe);
  radio.startListening();
}

int MotoL, MotoR;
int ValStickX, ValStickY;

void loop() {
  uint8_t numero_canal;
  if ( radio.available())
  {
    radio.read(datos, sizeof(datos));
    IsConnect = HIGH;
  }
  else{
    IsConnect = LOW;
  }
    int val_x = datos[0];
    int val_y = datos[1];

    ValStickX = map(val_x, 0, 1023, 100, -123);
    ValStickY = map(val_y, 0, 1023, 100, -123);
    Serial.print("X = ");
    Serial.println(ValStickX);
    Serial.print("Y = ");
    Serial.println(ValStickY);
    //delay(500);

    if (abs(ValStickX) < 5) {
      ValStickX = 0;
    }
    if (abs(ValStickY) < 5) {
      ValStickY = 0;
    }

   pot.increase(ValStickX);
    delay(10);
  
    pot.decrease(ValStickX);
    delay(10);
}

Цифровой потенциометр x9c104

12,00 б.р.
В наличии