не могу снять показания с слайдера .
Написал код. Всё работает , но при изменении значения на слайдере не происходит изменение значения .
Вот код :
// система будет висеть на телефоне
#define AP_SSID "TECNO CAMON 17P"
#define AP_PASS "огурчик"
#include // подключаем библиотеку Wi-Fi
#include //библиотека веб интерфейса
// Создаем объект GyverPortal
GyverPortal portal;
// переменные
int PWM_CHANNEL = 0; // ESP32 has 16 channels which can generate 16 independent waveforms
int PWM_FREQ = 20000; // частота 20 к Герц
int PWM_RESOLUTION = 16; // есп32 16 бит
int PWM_SKVAJ = 256; // скважность (256 половина от 512)
int PWM_SKVAJ1 = 0; // скважность (датчик измененния)
int PWM_FREQ1 = 0; // частота 20 к Герц (датчик измененния)
int PWM_START = 0; // датчик запуска генератора (датчик измененния)
int sliderValue_SKVAJ = 0; // снимаем данные с слайсера скважность
int sliderValue_FREQ = 0; // снимаем данные с слайсера частота
const int LED_OUTPUT_PIN = 25;
bool valSwitchKV =0; // волна прямоугольная
bool valSwitchSin = 0; // волна синусоидальная
// конструктор страницы ( вид Ок !! )
void build() {
GP.BUILD_BEGIN(GP_DARK);
GP.TITLE(" Генератор ", "t1");
GP.HR();
GP.LABEL("Квадратная волна: ");
GP.BREAK();// перевод строки
// туту плот
GP.LABEL("включение: ");
GP.SWITCH("sw", valSwitchKV); GP.BREAK();
GP.BREAK(); // перевод строки
GP.LABEL("Синусоидальная волна: ");
GP.BREAK(); // перевод строки
GP.LABEL("включение: ");
GP.SWITCH("sw", valSwitchSin); GP.BREAK();
GP.BREAK(); // перевод строки
GP.LABEL("Частота");
GP.SLIDER("sld", PWM_FREQ, 1000, 400000);
GP.BREAK();
GP.LABEL("Скважность ");
GP.SLIDER("sld1", PWM_SKVAJ, 52, 460); // 10 и 90 процентов
GP.BREAK();
GP.BUILD_END();
}
void setup() {
// вот моё добавил канал (многое скважность регулируют через канал).
ledcAttachChannel(LED_OUTPUT_PIN, PWM_FREQ, PWM_RESOLUTION, PWM_CHANNEL);
//тут будет изменения скважности и частоты
PWM_SKVAJ1 = PWM_SKVAJ;
PWM_FREQ1 = PWM_FREQ;
Serial.begin(115200);
// Подключаемся к Wi-Fi
WiFi.mode(WIFI_STA);
WiFi.begin(AP_SSID, AP_PASS);
while (WiFi.status() != WL_CONNECTED) {
delay(500);
Serial.print(".");
}
Serial.println();
Serial.print("Подключено! IP адрес: ");
Serial.println(WiFi.localIP());
// Инициализация GyverPortal
portal.attachBuild(build);
portal.start();
}
void loop() {
// запускаю светодиод
//ledcWrite(LED_OUTPUT_PIN, PWM_CHANNEL);
// моё
// проверка первичного запуска
if(PWM_START == 0 )
{
ledcWrite(PWM_CHANNEL, PWM_SKVAJ);
PWM_START = 1;
Serial.println("старт");
}
// изменинение скважности
if(PWM_SKVAJ1 != PWM_SKVAJ )
{
ledcWrite(PWM_CHANNEL, PWM_SKVAJ);
Serial.print("скважность: ");
Serial.println(PWM_SKVAJ );
PWM_SKVAJ1 = PWM_SKVAJ;
}
// измениение частоты
if(PWM_FREQ1 != PWM_FREQ)
{
ledcChangeFrequency(LED_OUTPUT_PIN, PWM_FREQ, PWM_RESOLUTION);
Serial.print("частота: ");
Serial.println(PWM_FREQ );
PWM_FREQ1 = PWM_FREQ;
}
portal.tick(); // Обработка веб-интерфейса
// Получаем значение слайдера при изменении
if (portal.update()) {
sliderValue_SKVAJ = portal.getInt("sld1"); // Ключ должен совпадать с именем слайдера
sliderValue_FREQ = portal.getInt("sld"); // Ключ должен совпадать с именем слайдера
Serial.println("1");
if(sliderValue_SKVAJ != PWM_SKVAJ)
{
PWM_SKVAJ = sliderValue_SKVAJ;
Serial.println("скважность");
}
if(sliderValue_FREQ != PWM_FREQ)
{
PWM_FREQ = sliderValue_FREQ;
Serial.println("частота");
}
}
}
Вывод :
..
Подключено! IP адрес: 192.168.80.79
старт
Вот не знаю почему не заходит в portal.update()
Популярные вопросы
Какие создать рёбра жесткости на плоской стенке, чтоб её не погнула усадка?
Стенка плоская, тонкая, достаточно высокая и длинная....
Посоветуйте самый прочный нейлон
В частности, куда лучше смотреть - в сторону угле- или в сторону стеклонаполненн...
Комментарии и вопросы
Потребители для швейцарской фи...
Вот такие привезли в магнит ко...
Да, забыл добавить, если испол...
Купил этот принтер б у. начал...
Нужен чертеж дефлектора сопло...
Товарищи, поделитесь пожалуйст...
Если конечно он не стоит больш...