arduino и драйвер led

Тема в разделе "Arduino & Shields", создана пользователем Mike_k, 11 июл 2016.

  1. Mike_k

    Mike_k Нуб

    Добрый день. Сложилась ситуация. В уже готовой схеме хотелось бы доделать часть.
    Есть 2 драйвера led dm13c (даташит), хотелось бы ими управлять с arduino. Не могу понять большей части в даташите, можете подсказать в какую сторону идти и что с этим вообще делать? заранее спасибо
     
  2. DIYMan

    DIYMan Guest

    А что именно непонятно? Судя по беглому просмотру распиновки - там сдвиговый регистр шестнадцатибитный, рулится ардуиной на раз.
     
  3. Mike_k

    Mike_k Нуб

    если честно, нет опыта работы с регистрами. а где можно подробнее посмотреть?
     
  4. DIYMan

    DIYMan Guest

  5. Mike_k

    Mike_k Нуб

  6. DIYMan

    DIYMan Guest

    Да там не особо сложно. Почитайте ещё до кучи про функцию shiftOut - и станет ещё понятней. Если в двух словах, что такое сдвиговый регистр: это отражение последовательно входящих бит на параллельные ноги. Т.е. вы продвинули 8 бит, защёлкнули регистр, и на восьми выходах у вас одновременно появились нужные уровни. Если регистр шестнадцатибитный - соответственно, скормили два байта - получили уровни на 16 ногах. Регистры можно подключать каскадно, множа выходы практически до бесконечности (в разумных пределах, конечно).

    Управляется это с ардуины примерно так:
    Код (C++):


    // сначала разрешаем установить состояние на выходах
        digitalWrite(SHIFT_REGISTER_OE_PIN,LOW);
     
        // Отключаем вывод на регистре
        digitalWrite(SHIFT_REGISTER_LATCH_PIN, LOW);

        // проталкиваем все байты один за другим, начиная со старшего к младшему
          uint8_t i=shiftRegisterDataSize;
     
          do
          {  
            // проталкиваем байт в регистр
            shiftOut(SHIFT_REGISTER_DATA_PIN, SHIFT_REGISTER_CLOCK_PIN, MSBFIRST, shiftRegisterData[--i]);
          } while(i > 0);

          // "защелкиваем" регистр, чтобы байт появился на его выходах
          digitalWrite(SHIFT_REGISTER_LATCH_PIN, HIGH);
     
     
  7. Mike_k

    Mike_k Нуб

    Почитал, посмотрел. Вроде и правда не особо сложно. Проверил - к регистру подключился и хаотично поморгал сегментами. Спасибо большое) теперь осталось дело за малым