Нужна помощь. 7сегментный 4хзначный дисплей на 2х 74hc595

Тема в разделе "Arduino & Shields", создана пользователем Лёхыч, 28 фев 2024.

  1. Лёхыч

    Лёхыч Нуб

    Всем привет. Я начинающий сразу прошу говном не кидаться. Собрал на макетке такую схему+мега 2560. Заливаю простейший скетч(где напрямую пересылают байты, high/low. все отлично работает. пытаюсь управлять через библиотеки, вылазит полная чушь. в частности пытаюсь работать с GyverSegment, ну ни в какую, чепуха вылазит.

    141-c-8-digit-7-segment-led-display-module-600x600.jpg
    пытал схему на эмуляторе wokwi, тоже не работало ни фига. но всё же заработала вот такая схема. отличие от стандартной: сигнал data приходит на 74hc595 на которой сидят 4 символа(на стандартной схеме сигнал data приходит на ту на которой 8 сегментов сидят. а так же выходы Q0 к dig4 .....Q3 к dig1( в стандартной схеме попорядку всё) и вот с ткой хренью заработала библиотека. но опять же такая схема на макетке не работает снова....
    wokwi.png

    Подскажите пожалуйста что не так... я прям в тупике

    Код (C++):
    #include <Arduino.h>

    #define DIO_PIN 2
    #define CLK_PIN 3
    #define LAT_PIN 4
    #include <GyverSegment.h>

    // объявление дисплеев. Выбери любой
    Disp595_4 disp(DIO_PIN, CLK_PIN, LAT_PIN);
    uint8_t digs[] = {2, 3, 4, 5, A2, A3, A4, A5};  // пины цифр
    uint8_t segs[] = {6, 7, 8, 9, 10, 11, 12, 13};  // пины сегментов


    void setup() {

    }
    void loop() {

      disp.setCursor(0);
      //disp.printRight(false);
      disp.print('t');
      disp.setCursor(1);
      //disp.printRight(true);
      disp.print(123, 1);
      disp.update();
      disp.delay(5000);

      disp.setCursorEnd();
      disp.printRight(true);
      disp.fillChar('P');
      disp.print(555, 1);
      disp.update();
      disp.delay(5000);
      disp.printRight(false);
      // нужен для дисплеев с динамической индикацией, но
      // для совместимости есть у всех дисплеев, даже если ничего не делает
      disp.tick();
    }
     
     
    Последнее редактирование: 28 фев 2024
  2. b707

    b707 Гуру

    Если через байты работает, зачем вам чужие библиотеки? - напишите свою да и все
     
  3. Asper Daffy

    Asper Daffy Иксперд

    Ни наш метад!
     
  4. Лёхыч

    Лёхыч Нуб

    В конкретный момент решаю достаточно объёмную сложную задачу связанную с работой(запихиваю щит автоматики вент установки в печатную плату), хочу дойти к ней кротчайшим путём используя максимум готового. Боюсь что если при каждой проблеме буду "писать свою библиотеку" то к концу я никогда не приду. Честно говоря не знаю как писать библиотеки, и не понимаю насколько это сложно и как следствие трудозатратно по времени. Не хочу туда соваться если честно... Другой дичи хватает с платой...((
     
  5. KindMan

    KindMan Гуру

    У вас такой индикатор?

    7seg.png
    Если да, то у меня он работает с этой библиотекой.
     
  6. Лёхыч

    Лёхыч Нуб

    Индикатор такой же(4 числа+4 точки без двоеточия) эту библиотеку тоже пробовал но не помогло((((

    даже написал Gyverу на почту)))))) мол что за странная библиотека.Что заработала на Эмуляторе только при "странном" подключении! Надо отдать должное он пару раз ответил на скорую руку)) Но внятного ответа не получил(и ответы беглые да и мои знания певерхостные). Суть ответов:
    1) ты используешь дурацкую схему!(хотя странно, сколько схем видел они именно такие) на вопрос мол а какая тогда правильная, получил ответ что в целом можно и мою схему использовать....
    2) можно оберннуть всё в класс и тд....(тут я ничего вообще не понял, знаний нет)
    3) Но можно собрать по ней и работать с библиотекой. Также на макетке может быть плохое подключение/слишком длинные провода, нужно понизить скорость вывода на дисплей, в доке написано как
    да читал инструкцию, ставил задержку, вообще ничего не меняется
     
    Последнее редактирование: 29 фев 2024
  7. Лёхыч

    Лёхыч Нуб

    постараюсь задать более конкретный вопрос. Вы ради интереса не прозванивали модуль? в нем подключение как на этой картинке? или в чём то иное? Уже заказал такой модуль с озона чтобы уже понять че не так.... думаю скорее всего проблема в плохих контактах и длинных проводах. Я так понимаю тут частота импульсов высокая... Некое сопротивление/емкость проводов играет роль некого RC фильтра??? или это я выдумываю? 27144-afa20b365bf0e44460be51864a996529.jpg
     
  8. KindMan

    KindMan Гуру

    Выложите схему, как вы соединили индикатор и плату. И программу перепишите правильно, как в примерах. Лучше, попробуйте эту инструкцию.
     
  9. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Я как всегда со своим занудством. - Ограничительные резисторы стоят в цепях сегментов ? А то не раз замечал - 595я дуркует при перегрузе током на выходах. На рисунке модуля их не видно вообще. Но возможно они скрыты под индикаторами ?!
     
    Последнее редактирование: 1 мар 2024
  10. Airbus

    Airbus Радиохулиган Модератор

    Лехыч выкинь Каку
    [​IMG]
    И купи индикатор на ТМ1637.
    [​IMG]
    С ними все легко и просто. Чунга Чанга
     
  11. KindMan

    KindMan Гуру

    Хренушки. Я тоже прифигел чутка.
     
  12. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Че-то сомнительно. Не может такого быть. Производители не мазохисты чтобы себе на ж*** проблемы создавать.Ток что-то должно ограничивать обязательно. Может китаезы уже в матрицы резисторы встраивают ? Или китайские 595-е как-то модернули ?!.

    Если уж занудствовать - то до конца : Светодиоды имеют полярности, то бишь анод (плюс) и катод(минус). А индикаторы практически фифти-фифти выпускаются с зеркальными полярностями. То бишь - в половине продукции сегменты аноды, а в половине - сегменты катоды. Более правильными являются сегменты - аноды (в этом случае говорят - индикаторы с общим минусом (катодом)). Объяснять не буду. Самой 595й пофигу - она потянет обе. Хотя греться будет слегка по-разному. Если библа не соответствует полярности - вместо цифр будет абракадабра. В библе должны быть настройки на полярность индикатора.
    ПС. Странная там надпись - BuiltLED Digital Tube Module - Цифровой Трубчатый модуль на встроенных светодиодах. ??????
    ППС. Понял - это разумеет транзитные линии. Вроде трубы - вход и выход.
     
    Последнее редактирование: 5 мар 2024
  13. Лёхыч

    Лёхыч Нуб

    отчитываюсь: купил готовый китайский модуль на 74hc595, и всё заработало с полпинка. Единственное да пришлось в библиотеке покапалться. цивны в обратном порядке выводились( на wokwi решалось обратным подключением проводов цифр). Модуль прозвонил, подключение точь в точь как я делал. Короче я грешу только на плохие контакты...

    просто вопрос был не запустить готовый китайский дисплей. а опробовать реальную рассыпуху. Чтобы когда в готовую плату впаяю неожиданностей не было. вот теперь есть вопрос...
     
  14. Лёхыч

    Лёхыч Нуб

    резистры ставил. И в устройстве применил. Хотя я хз, в готовых модулях их почти нигде нет.. Ктсати кто-то знает почему?? по теории ведь нужны, я верно понимаю?
     
  15. parovoZZ

    parovoZZ Гуру

    полупроводниковые приборы имеют разные предельные параметры при работе на постоянном токе и на импульсном. Поэтому надо смотреть даташит на конкретный дисплей и сравнивать с теми условиями, в которые мы его загоняем.
     
  16. Лёхыч

    Лёхыч Нуб

    простыми словами ввиду коротких инпульсов светодиоды сегментов просто не успевают сгореть? по тупой логике одна цифра выводится не более 1/4 времени. это типа как ШИМ получается с результирующим напряжением 1/4 от 5 в =1,25в что отлично подходит для светодиода. я верно рассуждаю?
     
  17. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Но вы не должны забывать, что сгореть может сам выход микры. Ему-то тяжелее приходится. Могу только предположить - при "правильном" индикаторе сегмент запитывается - через "верхний" транзистор выхода микросхемы (тот, который с плюса питания). См. "полу-мост выход". Он или плохо открывается, или там резистор стоит. Короче - при питании 5В - ток ограничивается на небольших значениях. Но их часто достаточно чтобы микра начала дурковать. Не все, но одна из десяти - точно.
    ПС. Делал приемники ФМ с дин. индикацией. Насмотрелся дуркующих 595х и наслушался помех от энтой индикации.
     
    Последнее редактирование: 11 мар 2024
  18. parovoZZ

    parovoZZ Гуру

    всё из-за неправильного питания.
     
  19. parovoZZ

    parovoZZ Гуру

    нет
     
    Asper Daffy нравится это.
  20. Ariadna-on-Line

    Ariadna-on-Line Гуру

    Не верно. Мощность рассеиваемая индикатором действительно становится 1/4 . А мощность пропорциональна U^2 (квадрату напряжения). Следовательно напряжение равно корню квадратному от 1/4 = 1/2. То есть напряжение = 5/2 вольт. Это чисто тупо математически. Не считая ваших изначально не правильных рассуждений ))))))