lkosoj, Взял я в общем многооборотный подстроечник 10 кОм, повесил центральную ногу на А3 ардуины и залил на одну из ардуин адаптированный под свои нужды скетч от Gyver-а
// установка скорости потенциометром
#include <GyverStepper.h>
// Пины для шагового двигателя
#define STEPPER_STEP 3
#define STEPPER_DIR 4
#define STEPPER_EN 5
// Настройки для шагового двигателя
#define STEPPER_MS 2
#define STEPPER_STEPS (200 * STEPPER_MS) //количество шагов, 200 x MS
#define STEPPER_MAX_SPEED 6000
GStepper< STEPPER2WIRE> stepper(STEPPER_STEPS, STEPPER_STEP, STEPPER_DIR, STEPPER_EN);
void setup() {
stepper.setRunMode(KEEP_SPEED); // режим поддержания скорости
stepper.setSpeedDeg(50); // в градусах/сек
}
void loop() {
stepper.tick();
// сделаем таймер на 50 мс и будем опрашивать потенциометр
// менять скорость чаще нет смысла
static uint32_t tmr2;
if (millis() - tmr2 > 50) {
tmr2 = millis();
stepper.setSpeed((analogRead(A3))*8);
}
}
Поставил множитель 8, чтоб разогнать насос на максимум. Получается у меня ступенька 8 шагов.
При вращении подстроечника происходит довольно плавное увеличение и уменьшение частоты вращения насоса. На высоких оборотах как будто появляется некая ступенчатость одновременно с изменениями тона, но на глаз точно сказать невозможно, надо собирать тахометр для определения.
После вставил ардуину с I2CStepper, у него на высоких оборотах ступенчатость изменения скорости видна без тахометра просто на глаз. Ступеньки совпадают с изменением тона звука от двигателя. Думаю это как то связано с алгоритмами Gyver-a по плавному увеличению оборотов.
Поскольку я планирую использовать I2CStepper на НБК для подачи браги данная особенность всё портит, потому что брага подаётся в НБК довольно интенсивно и насос работает на высоких оборотах. А тут ступенчатость.
Еще есть просьба. При уменьшении энкодером вручную заданного объема перекачки при снижении ниже 0 сделайте переход на максимальную величину, допустим 9999999. Чтоб, если объем не важен не накручивать сотни литров энкодером.