#define UD 2 // выходы к которым подключен модуль #define INC 3 #define CS 4 #define BTN_UP 5 //пины, к которым подключены кнопки. Один конец кнопки - к пину, второй - на землю напрямую. Резисторы никакие не нужны. #define BTN_DOWN 6 int pause = 300;//пауза между переключениями ползунка при удержании кнопки void setup() { pinMode(BTN_UP, INPUT_PULLUP); //настроил пины с кнопками на ввод информации с кнопок pinMode(BTN_DOWN, INPUT_PULLUP); pinMode(INC, OUTPUT); pinMode(UD, OUTPUT); pinMode(CS, OUTPUT); digitalWrite(CS, HIGH); // выключаем микросхему } void loop() { if (!digitalRead(BTN_UP))//если нажата кнопка "вверх" { delay(20);//антидребезг up();//переместили ползунок на единицу вверх delay(pause);//антидребезг } if (!digitalRead(BTN_DOWN)) { delay(20);//антидребезг down();//переместили ползунок на единицу вниз delay(pause);//антидребезг } } void up()// поднимает ползунок в верх на 1 ступень { digitalWrite(UD, HIGH); // на U/D подаем единицу digitalWrite(INC, HIGH); // и на INC тоже digitalWrite(CS, LOW); // включаем микросхему delayMicroseconds(4); // ждем digitalWrite(INC, LOW); // дергаем вход INC delayMicroseconds(4); digitalWrite(INC, HIGH); delayMicroseconds(4); ///digitalWrite(INC, LOW); // в этом случаи положение ползунка записано не будет digitalWrite(CS, HIGH); // выключаем микросхему и записываем положение в EEPROM } void down()// опускаем ползунок в вниз на 1 ступень { digitalWrite(UD, LOW); digitalWrite(INC, HIGH); digitalWrite(CS, LOW); delayMicroseconds(4); digitalWrite(INC, LOW); delayMicroseconds(4); digitalWrite(INC, HIGH); delayMicroseconds(4); digitalWrite(CS, HIGH); }