roboforum.ru

Технический форум по робототехнике.
Текущее время: 27 ноя 2024, 01:03

Часовой пояс: UTC + 4 часа




Начать новую тему Ответить на тему  [ Сообщений: 2 ] 
Автор Сообщение
 Заголовок сообщения: Подключение драйвера max7219 и tlc5940
СообщениеДобавлено: 06 апр 2016, 22:26 
Не в сети

Зарегистрирован: 06 апр 2016, 21:39
Сообщения: 1
По отдельности всё работает, объединяю код и работает только 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
СообщениеДобавлено: 06 апр 2016, 23:54 
Не в сети
Аватара пользователя

Зарегистрирован: 18 апр 2009, 22:18
Сообщения: 10668
толку от этой простынки 0 по модулю - нет ни кода библиотек, ни описания как подключено. у них примитивный spi подобный интерфейс, напишите с 0 свои ф-и вывода данных на драйверы и не мучайтесь.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Часовой пояс: UTC + 4 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Русская поддержка phpBB
phpBB SEO