roboforum.ru

Технический форум по робототехнике.

Подключение драйвера max7219 и tlc5940

Подключение драйвера max7219 и tlc5940

Kirill999 » 06 апр 2016, 22:26

По отдельности всё работает, объединяю код и работает только tlc5940. Нашёл, что может быть проблема в библиотеке tlc5940 - не позволяют подключать к arduino одновременно с драйвером другие модули, использующие интерфейс SPI. Заменил интерфейс драйвера на «bitbang», ничего не изменилось.

Код: Выделить всёРазвернуть
#include "Tlc5940.h";
#include "LedControl.h" //  need the library
LedControl lc=LedControl(2,6,5,1); //
#define DELAY 45
unsigned long timer;
int row = 0;
byte st = 0;
int col = 0;
void setup()
{
   // the zero refers to the MAX7219 number, it is zero for 1 chip
  lc.shutdown(0,false);// turn off power saving, enables display
  lc.setIntensity(0,2);// sets brightness (0~15 possible values)
  lc.clearDisplay(0);// clear screen
  //Инициализируем драйвер
  Tlc.init();
}

void loop()
{
  if (millis()-timer > DELAY)
  {
    timer = millis();
    lc.setLed(0,1, row-2, st); // turns on/off LED at col, row
    lc.setLed(0,3, row, st); // turns on/off LED at col, row
     lc.setLed(0,5, row-1, st); // turns on/off LED at col, row
      lc.setLed(0,col, 0, st); // turns on/off LED at col, row
    lc.setLed(0,col, 1, st); // turns on/off LED at col, row
     lc.setLed(0,col-1, 2, st); // turns on/off LED at col, row
      lc.setLed(0,col-2, 3, st); // turns on/off LED at col, row
    lc.setLed(0,col, 4, st); // turns on/off LED at col, row
     lc.setLed(0,col-1, 5, st); // turns on/off LED at col, row
   /* lc.setLed(0,2, row-2, st); // turns on/off LED at col, row
    lc.setLed(0,0, row-2, st); // turns on/off LED at col, row */
    if ((++row > 6)&&(++col>6)) {row=0;col=0; st^=1;}
  }
   
  int direction = 1;
  //Обратите внимание, на использование переменной NUM_TLCS.
  //Если умножить её на 16, то мы получим число выводов
  //На всех драйверах подключённых цепочкой
  //Таким образом, OUT0 второго драйвера будет 16 каналом
  //OUT0 третьего будет 32 каналом и т.д.
  for (int channel = 0; channel < NUM_TLCS*16; channel += direction) {

    //Гасим выводы:
    Tlc.clear();
    //Устанавливаем яркость в зависимости от направления волны
    if (channel == 0) {
      direction = 1;
    } else {
      Tlc.set(channel - 1, 1000);
    }
    Tlc.set(channel, 4095);
    if (channel != NUM_TLCS * 16 - 1) {
      Tlc.set(channel + 1, 1000);
    } else {
      direction = -1;
    }
    //Применяем изменения
    Tlc.update();
   
    int OldTime=millis();
while((millis()-OldTime)<100);
  }
}

Re: Подключение драйвера max7219 и tlc5940

Angel71 » 06 апр 2016, 23:54

толку от этой простынки 0 по модулю - нет ни кода библиотек, ни описания как подключено. у них примитивный spi подобный интерфейс, напишите с 0 свои ф-и вывода данных на драйверы и не мучайтесь.


Rambler\'s Top100 Mail.ru counter