При нажатии кнопок потенциал на пинах 5, 6 и 7 не меняется.

Модератор: Alex

Ответить
alexnik100
Сообщения: 16
Зарегистрирован: Вс фев 21, 2016 8:39 am
Благодарил (а): 5 раз
Поблагодарили: 0

При нажатии кнопок потенциал на пинах 5, 6 и 7 не меняется.

Сообщение alexnik100 » Чт мар 03, 2016 9:12 pm

При нажатии на кнопки потенциал на контактах 5, 6 и 7 не меняется.
Сегодня решил доработать кнопки на панели УПРАВЛЕНИЕ.
При нажатии кнопки "Управление светом" меняют подсветку, но изменение почти не видно, решил сделать кнопки поярче.
Кроме того, хотел изменить дизайн кнопок и увеличить количество кнопок для дистанционного управления приборами.

Ранее писали, что эти пины 5, 6 и 7 подключены к кнопкам Управление подсветкой.
При нажатии кнопки управления подсветкой не меняют подсветку.

Проверил 5, 6 и 7 контакты еще раз специально. При нажатии на кнопки Управление подсветкой на контактах 5, 6 и 7 потенциал не меняется.


Может кто-нибудь помочь?
Alex
Сообщения: 2357
Зарегистрирован: Пт апр 20, 2012 12:53 pm
Благодарил (а): 42 раза
Поблагодарили: 262 раза

Re: При нажатии кнопок потенциал на пинах 5, 6 и 7 не меняет

Сообщение Alex » Пт мар 04, 2016 12:50 pm

При нажатии на кнопки потенциал на контактах 5, 6 и 7 не меняется.
Цвета ленты устанавливаются в server_ajax

Код: Выделить всё

red(led1, 127); 
а эта функция в (модуле leds) использует analogWrite ШИМ модуляцию

Код: Выделить всё

void red (byte pins[], byte v) {
  analogWrite(pins[R], v); 
  analogWrite(pins[G], 0); 
 analogWrite(pins[B], 0);
} 
Так что потенциал пинов не должен повышаться до единицы.
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: При нажатии кнопок потенциал на пинах 5, 6 и 7 не меняется.

Сообщение serghei » Ср июл 25, 2018 12:38 am

alexnik100 писал(а):
Чт мар 03, 2016 9:12 pm
Сегодня решил доработать кнопки на панели УПРАВЛЕНИЕ....
Вот и я решил отделить мух от котлет и ПРАВИЛЬНО запустить страницу control.htm На плате Witty ( ESP8266 которая двухэтажная ) уже предустановлены RGB и фоторезистор на A0. Благодаря vladragor и его Коду для 5 реле удалось задействовать со страницы все 5 кнопок по прямому назначению для включения реле ( свет на кухне ). Осталось реализовать включение RGB ( " управление подсветкой").
Как не странно в AMS для ESP8266 практически всё было , кроме скрипта работы этих кнопок. Пришлось дописать по образу и подобию )). Саму вкладку Leds.ino не трогал , единственное назначил пины распаянного RGB.

Код: Выделить всё

//byte led1[] = {4, 5, 16}; // RGB pins
byte led1[] = {15, 12, 13}; // RGB pins для платы Witty
А дальше немного по колдовать в сервере ажакс
СпойлерПоказать

Код: Выделить всё

/* Control
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ */

byte light1 = 0;// для реле
byte light2 = 0;
byte light3 = 0;
byte light4 = 0;
byte light5 = 0;

byte rgb1 = 0; // для RGB ленты
byte rgb2 = 0;
byte rgb3 = 0;
byte rgb4 = 0;
byte rgb5 = 0;

void setControl() {
  if (StrContains(HTTP_req, "light1=1")) {
    light1 = 1;
    //red(led1, 127); // убрать и перенести в другое место ))
  } 
  else if (StrContains(HTTP_req, "light1=0")) {
    light1 = 0;
   // black(led1);
  }

  if (StrContains(HTTP_req, "light2=1")) {
    light2 = 1;
    //blue(led1, 127);
  } 
  else if (StrContains(HTTP_req, "light2=0")) {
    light2 = 0;
    //black(led1);
  }

  if (StrContains(HTTP_req, "light3=1")) {
    light3 = 1;
    //green(led1, 127);
  } 
  else if (StrContains(HTTP_req, "light3=0")) {
    light3 = 0;
   // black(led1);
  }

  if (StrContains(HTTP_req, "light4=1")) {
    light4 = 1;
    //magenta(led1, 127);
  } 
  else if (StrContains(HTTP_req, "light4=0")) {
    light4 = 0;
   // black(led1);
  }

  if (StrContains(HTTP_req, "light5=1")) {
    light5 = 1;
   // yellow(led1, 127);
  } 
  else if (StrContains(HTTP_req, "light5=0")) {
    light5 = 0;
   // black(led1);
  } 

      if (StrContains(HTTP_req, "rgb1=1")) { // вот сюда 
        rgb1 = 1;
        white(led1, 127);
      }
      else if (StrContains(HTTP_req, "rgb1=0")) {
        rgb1 = 0;
        black(led1);
      }
      if (StrContains(HTTP_req, "rgb2=1")) {
        rgb2 = 1;
        red(led1, 127);
      }
      else if (StrContains(HTTP_req, "rgb2=0")) {
        rgb2 = 0;
        black(led1);
      }

      if (StrContains(HTTP_req, "rgb3=1")) {
        rgb3 = 1;
        blue(led1, 127);
      }
      else if (StrContains(HTTP_req, "rgb3=0")) {
        rgb3 = 0;
        black(led1);
      }

       if (StrContains(HTTP_req, "rgb4=1")) {
        rgb4 = 1;
        green(led1, 127);
      }
      else if (StrContains(HTTP_req, "rgb4=0")) {
        rgb4 = 0;
        black(led1);
      } 
        if (StrContains(HTTP_req, "rgb5=1")) {
        rgb5 = 1;
        yellow(led1, 127);
      }
      else if (StrContains(HTTP_req, "rgb5=0")) {
        rgb5 = 0;
        black(led1);
      }                           
      
} // setControl()


void responseControl(WiFiClient cl) {
  String s = tagXmlVersion();
  s += "\n<inputs>\n";
    s += makeTag("lite1", "", String(light1));
    s += makeTag("lite2", "", String(light2));
    s += makeTag("lite3", "", String(light3));
    s += makeTag("lite4", "", String(light4));
    s += makeTag("lite5", "", String(light5));

    s += makeTag("rgbs1", "", String(rgb1)); // для ажакса задействовать кнопки
    s += makeTag("rgbs2", "", String(rgb2));
    s += makeTag("rgbs3", "", String(rgb3));
    s += makeTag("rgbs4", "", String(rgb4));
    s += makeTag("rgbs5", "", String(rgb5));    
  s += "</inputs>\n";
  cl.print(s);
}
Самое сложное было дописать обработку кнопок на странице
control.zip
Управление подсветкой (RGB)
(2.3 КБ) 196 скачиваний
Наверное подойдет для всех платформ. Проверял на ESP8266. В 017 версии многое изменилось. Может не сработать.
В результате получил интересный эффект - при нажатии на первую кнопку ("Светодиодная лента") включается белый цвет. При нажатии на остальные кнопки - соответствующий цвет. Лента горит последним нажатым цветом. Для выключения - повторно нажать на первую кнопку.

PS/ Идеально было бы замутить слайдер для плавного переключения. Говорят, даже есть для этого соответствующая библиотека. Я пока находил как крутить серву слайдером со страницы. Но используется библиотека на стороннем сервере. Локально сохранить не удалось.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
serghei
Сообщения: 2575
Зарегистрирован: Пт ноя 06, 2015 10:22 am
Откуда: Кишинёв
Благодарил (а): 303 раза
Поблагодарили: 282 раза

Re: При нажатии кнопок потенциал на пинах 5, 6 и 7 не меняется.

Сообщение serghei » Ср июл 25, 2018 12:43 am

Боюсь форум опять поломает сообщение . Картина что получилось в итоге
СпойлерПоказать
УправлениеRGB.jpg
УправлениеRGB.jpg (53.72 КБ) 3670 просмотров
Немного не корректно , но работает. В идеале хотелось бы при нажатии на какой нибудь цвет , чтобы остальные кнопки выключались.

PS. На странице НооЛайта во втором блоке вроде правильно реализовано переключение . Надо разобраться и адаптировать переключение RGB.
AMS : ESP32 + NRF24 + 1Wire-I2C мост DS2482 + счетчик DS2423 + сеть MySensors + редактирование страниц в браузере + Upload по воздуху + SPIFFS
Ответить