РЕШЕНО Переводим уровни энкодера ec11 на 3.3v

Тема в разделе "ESP8266, ESP32", создана пользователем WhiteFox, 8 окт 2021.

  1. WhiteFox

    WhiteFox Нерд

    Вообщем принимал сигналы с энкодера(3.3V) на 3 пина и ничего не получилось. Сначала думал дело в резисторном делителе, но нет. Решил проверить на чистом пине: подключил GPIO34 на вход и накидывал разные потенциалы. Вдруг случайно задел пин пальцем и в консоль вывело высокий сигнал. Получается, что высокий сигнал определяется с 0.1V+. Как это исправить? Пробовал подключать резистор к питанию и земле программно - не помогло.

    Код (C++):
    #define blink GPIO_NUM_23
    #define test GPIO_NUM_34

    void app_main(void)
    {
        printf("System true\n");
     
        gpio_reset_pin(blink);
        gpio_reset_pin(test);
        //gpio_pad_select_gpio(blink);
        //gpio_pad_select_gpio(test);
        gpio_set_direction(blink, GPIO_MODE_OUTPUT);
        gpio_set_direction(test, GPIO_MODE_INPUT);
        //gpio_pulldown_dis(test);
        //gpio_pullup_en(test);

        while(true){
          uint64_t level = gpio_get_level(test);
          if(level){
            gpio_set_level(blink, 1);
          } else {
            gpio_set_level(blink, 0);
          }
        printf("%llu\n", level);
        vTaskDelay(1000 / portTICK_PERIOD_MS);
      }
    }
     
  2. parovoZZ

    parovoZZ Гуру

    без схемы разговаривать не о чем.
    А по входу у этой микры стандартные ТТЛ сигналы для 3,3 вольт.
     
  3. WhiteFox

    WhiteFox Нерд

    Схема:
    схема.png
    Питание энкодера - 5V.
    С энкодера идут 3 сигнальных пина уровнем 5V.
    С помощью резисторных делителей я преобразую уровень 5V с энкодера в 3.3V и отдаю сигнал микроконтроллеру ESP32.

    Проверял выходы энкодера, все в норме (5V 0.2мА при высоком уровне, 0V при низком уровне)
    При полностью собранной схеме на входных пинах GPIO напряжение 1V(высокий уровень) и 0.2V(низкий уровень)
    Без микроконтроллера сопротивление между линией 5V и GND 5кОм, с микроконтроллером так же.
    Резисторный делитель потребляет 0.6мА (замерено амперметром)
    Пока делал замеры выше, заметил что, резисторные делители делят напряжение нормально если подать линию питания 5V, а не сигнал с энкодера.
    Позже покопался в чужих проектах, подсмотрел как принимать сигналы и разобрался.

    Проблема явно в резисторном делителе. Если я возьму резисторы больших номиналов, то потребление делителя должно уменьшиться, а значит проблема будет решена? Правильно мыслю?
    Еще вопрос: что будет, если подать на пин микроконтроллера 5V?
     
    Последнее редактирование: 9 окт 2021
  4. akl

    akl Гуру

    немного не понял - в висящий в аоздухе пин тыкнул пальцем? ну так там на пальце наводка может быть в несколько вольт, не надо куда ни попадя пальцем тыкать
     
    parovoZZ нравится это.
  5. WhiteFox

    WhiteFox Нерд

    Да, таким образом я понял, что пин определял 0.1V как высокий уровень сигнала.
    Не думаю, что на пальце может даже 1 вольт набраться. Мультиметр показывает 0.1-0.8V.
    Живу в сельской местности, тут наводки малы.
     
    Последнее редактирование: 9 окт 2021
  6. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Отключите от делителей входы процессора, и медленно вращая энкодер или нажимая его кнопку, мерьте напруги с делителей. Они должны меняться 0-3,1 вольт.
    ПС. Вы не забыли переключить пины проца в режим входов ?
    ППС. Напряжение на пальце в импульсе может быть и киловольт. Называется - "статика". Так что экспериментировать со входами микр не занулившись на общую шину устройства - не рекомендуется.
     
    Последнее редактирование: 9 окт 2021
  7. WhiteFox

    WhiteFox Нерд

    С делителей выход 0-1.6V, т.к сила тока с выходов энкодера = 0.2мА, а делитель потребляет 0.6мА.
     
    Последнее редактирование: 9 окт 2021
  8. WhiteFox

    WhiteFox Нерд

    Заменил резисторы на номинал 20 и 30 кОм, все так же на выходе 1.6V
     
  9. WhiteFox

    WhiteFox Нерд

    Вообщем разобрался, чет я совсем позабыл закон Ома...
    Все что я выше писал - полный бред.
    Достаточно 1 резистора на 30 кОм, т.к второй резистор уже стоит внутри энкодера...
    схема.png
     
  10. DetSimen

    DetSimen Гуру

    А если ты энкодер не на 5, а на 3.3 Вольта сразу подключишь, то и резисторов никаких не надо, и жрать он не будет ничего совсем.
     
  11. WhiteFox

    WhiteFox Нерд

    Только вот у меня других нету, а разрабатывать проект надо. Позже заменю.
     
  12. DetSimen

    DetSimen Гуру

    Других чего? Ты схему энкодера-то видел, разрабоччик хренов? Ему абсолютно по барабану, 1 Вольт ты туда подашь или 20, главное чтоб устройство узнало, покрутили энкодер или нет.
     
    WhiteFox и Andrey12 нравится это.
  13. WhiteFox

    WhiteFox Нерд

    Где ты раньше был? )
     
  14. parovoZZ

    parovoZZ Гуру

    надо не думать, а читать литературу. Устройства разрабатываются с расчётом, что на пальце будет разряд до 2кВ. А вот такие бездумные прикосновения могут и "убить" микросхему.
     
  15. parovoZZ

    parovoZZ Гуру

    а вдруг у него оптический энкодер, тогда что - тоже
    ?
     
  16. DetSimen

    DetSimen Гуру

    ты в буквах EC-11 чонить понимаешь?
     
  17. parovoZZ

    parovoZZ Гуру

    ну ты то про какой-то эфимерный энкодер говоришь. А эфимерный энкодер может быть с любыми потрохами, поэтому за все эфимерные говорить не надо.
     
  18. DetSimen

    DetSimen Гуру

    Andrey12 нравится это.
  19. parovoZZ

    parovoZZ Гуру

    я не знаю как выключить просто.