Есть nodeMCU v3, в данный момент работает тестовая программа ,которую я взял из открытых источников, подредактировал и провёл все тесты на железе - работает нормально: Спойлер #include <SPI.h> #define CS 15 // D8 byte val = 0; void setup() { Serial.begin(115200); SPI.begin(); pinMode (CS, OUTPUT); } void loop() { float voltage = (analogRead(A0) * 5.0)/ 1024.0; // читаем напряжение на входе А0 Serial.print("voltage = " ); // отправляем данные о напряжении в монитор порта Serial.print(voltage); Serial.print(" val = "); // значение которое пишем в потенциометр Serial.print(val, BIN); // бинарное Serial.print(" / "); Serial.println(val, DEC); // десятичное val++; // прибавляем к переменной 1 MCP4xxxxWrite(val); // пишем значение переменной в потенциометр delay(500); // ждем до следующего раза } void MCP4xxxxWrite(byte val) { // отправляет в потенциометр значение ползунка digitalWrite(CS, LOW); // включаем прием данных микросхемой SPI.transfer(0b00010001); // отправляем первый байт в регистр конфигурации SPI.transfer(val); // отправляем второй байт в "регистр ползунка" digitalWrite(CS,HIGH); // выключаем прием данных микросхемой } Что требуется - поднять на NodeMCU v3 web server, при обращении к которому по строке браузера я буду задавать значение val от 0 до 255 что то вроде: http://192.168.0.55/val=250 а он в ответ должен отвечать переменной Serial.print(voltage); желательно сделать так что бы void MCP4xxxxWrite(byte val) { // отправляет в потенциометр значение ползунка было только после ввода нового val, а не безостановочно, так как в текущей версии программы стоит цикл delay(500); // ждем до следующего раза