не могу снять показания с слайдера .
Написал код. Всё работает , но при изменении значения на слайдере не происходит изменение значения .
Вот код :
// система будет висеть на телефоне
#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()
Популярные вопросы
Можно ли напечатать покрышки для самоката?
А что забыл вот этот доктор на этом портале, раздающий диагнозы?
Программа для 3D проектирования
Пр...
Комментарии и вопросы
Прикольная ёлочка, а если пере...
Самым дорогим при создании так...
Нет, не акрил))
Принтер FlashForge Guider 2s....
Столкнулся с чертиками. Родная...
несколько месяцев назад у меня...
Реьята всем привет. у мен...