Uno и SureElectronics LED 16x32

Тема в разделе "Схемотехника, компоненты, модули", создана пользователем fox7812, 1 сен 2012.

  1. fox7812

    fox7812 Нерд

    Не могу никак разобраться с подключением светодиодной матрицы SureElectronics LED 16x32. На матрице 16 пиновый вход:
    1 cs 2 clk
    3 nc 4nc
    5 wr 6 nc
    7 Data 8 Gnd
    9 nc 10 nc
    Оставшиеся 6 5 вольт и gnd

    В драйвере : ht1632c.h следующее описание подключения:
    #define HT1632_DATA_PIN 10 /* Arduino digital pin connected to display DATA pin */
    #define HT1632_WRCLK_PIN 11 /* Arduino digital pin connected to display WRCLK pin */
    #define HT1632_CS_PIN 4 /* Arduino digital pin connected to display CS1 pin */

    wrclk на матрице нет, подключил так:
    pin 10 - data
    pin 11 - wr
    pin 4 - cs

    В драйвере ht1632c.h по умалчанию стоит матрица 16x24
    изменил:
    #define HT1632_GEOMETRY_X 24 /* display width */
    #define HT1632_GEOMETRY_Y 16 /* display height */
    на
    #define HT1632_GEOMETRY_X 32 /* display width */
    #define HT1632_GEOMETRY_Y 16 /* display height */

    byte _shadowram[384]; // our copy of the display's RAM
    на
    byte _shadowram[512]; // our copy of the display's RAM

    static const byte _fadedelay = 40;
    на
    static const byte _fadedelay = 48;

    вот программа:
    Код (Text):
    #include "ht1632c.h"
    #include <digitalWriteFast.h>
     
    // sure electronics 24x16 panel connected to pins
    // DATA - pin 10
    // WRCLK - pin 11
    // CS1 - pin 4
    ht1632c panel;
     
    void setup() {
      byte x1 = 0;
        byte y1 = 4;
        panel.fill(x1, y1, 1);
     
    }
     
    void loop() {
     
    }
     
    Я так понимаю, что должна зажигать точку. На деле происходит хаотичное неконтролируемое зажигание всех точек и всех цветов по всей матрице:

     
    <Lame> нравится это.
  2. Unixon

    Unixon Оракул Модератор

    Судя по имеющимся сигналам, не глядя в документацию, можно предположить, что

    (1) CS - chip select - разрешает общение с дисплеем;
    (2) CLK - clock - тактирует отдельные биты на последовательной шине;
    (5) WR - read/write - определяет направление передачи данных;
    (7) DATA - шина данных, гоняет биты в дисплей и обратно;

    Вам нужно WRCLK повесить на CLK, а WR подключить отдельно еще одним пином и контроллировать его независимо.
     
  3. fox7812

    fox7812 Нерд

    Судя по этому примеру http://www.arduino.cc/playground/Main/HT1632C вы правы. Плюс выяснилось, что я использовал библиотеку ht1632c.h переписанную специально под 16x24, сейчас пытаюсь использовать вот эту http://code.google.com/p/ht1632c/source/browse/ht1632c.h, но не могу найти схему подключения пинов arduino к матрице, какие куда. Получается, что должно идти 4 пина - CS, CLK, WR, DATA. Как можно из библиотеки узнать какие определены по умолчанию или как то переопределить?
     
  4. fox7812

    fox7812 Нерд

    Нашел в коде самой программы-примера определение портов:
    ht1632c ledMatrix = ht1632c(&PORTD, 7, 6, 4, 5, GEOM_32x16, 2);

    Перепробывал все комбинации, ни одна не сработала.
     
  5. fox7812

    fox7812 Нерд

    In you project include the library header, and instantiate HT1632C class with correct port and pin numbers.
    Arduino 1.0:
    #include<ht1632c.h>

    ht1632c ledMatrix = ht1632c(&PORTD,7,6,4,5, GEOM_32x16,2);
    Leaflab Maple, Chipkit Uno32, etc.:
    #include<ht1632c.h>

    ht1632c ledMatrix = ht1632c(7,6,4,5, GEOM_32x16,2);
    Note: pin numbers could be relative (0~7) to port or absolute Arduino style pin numer (0~14, A0-A5) with the last version of the library.

    Вот так написано в документации.

    //PORT, data, wr, clk, cs
    ht1632c dotmatrix = ht1632c(&PORTD, 7, 6, 4, 5, GEOM_32x16, 2);
    Вот такой пример расшифровки я нашел.
    Может быть это распиновка не Arduino, а самой матрицы?
    Потому что у меня на матрице распиновка:
    data - 7
    wr - 5
    clk - 2
    cs - 1
     
  6. Unixon

    Unixon Оракул Модератор

    А даташит на матрицу есть (pdf) ?
     
  7. fox7812

    fox7812 Нерд

    Все, разобрался. Работает. Спасибо.
     
  8. fox7812

    fox7812 Нерд

  9. <Lame>

    <Lame> Гик

    Круто:cool: Тоже хотелось бы такую матрицу. Где купили, если не секрет?
     
    Humiboy нравится это.
  10. fox7812

    fox7812 Нерд

    На ebay. Сейчас пишу для неё русский язык.
     
  11. Ricci

    Ricci Нуб

    Подробности можно?
    А то уже тоже весь мозг сломал.
     
  12. Ricci

    Ricci Нуб

    Ну вот и я тоже разобрался.
    Пришлось дописывать несколько строк скетча.
     
  13. LEDmatrix7219_Counter_Demo_16Wide.ino: In function 'void setup()':
    LEDmatrix7219_Counter_Demo_16Wide:28: error: no matching function for call to 'LEDmatrix7219::print(char)'
    LEDmatrix7219_Counter_Demo_16Wide.ino:28:24: note: candidates are:
    In file included from LEDmatrix7219_Counter_Demo_16Wide.ino:17:0:
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:103:8: note: void LEDmatrix7219::print(char*, int, int)
    void print(char *st, int x, int y = 0);
    ^
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:103:8: note: candidate expects 3 arguments, 1 provided
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:104:8: note: void LEDmatrix7219::print(String, int, int)
    void print(String st, int x, int y = 0);
    ^
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:104:8: note: candidate expects 3 arguments, 1 provided
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:105:8: note: void LEDmatrix7219::print(long int, int, int, int, char)
    void print(long num, int x, int y = 0, int length = 0, char filler = ' ');
    ^
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:105:8: note: candidate expects 5 arguments, 1 provided
    LEDmatrix7219_Counter_Demo_16Wide.ino: In function 'void loop()':
    LEDmatrix7219_Counter_Demo_16Wide:34: error: no matching function for call to 'LEDmatrix7219::print(char)'
    LEDmatrix7219_Counter_Demo_16Wide.ino:34:24: note: candidates are:
    In file included from LEDmatrix7219_Counter_Demo_16Wide.ino:17:0:
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:103:8: note: void LEDmatrix7219::print(char*, int, int)
    void print(char *st, int x, int y = 0);
    ^
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:103:8: note: candidate expects 3 arguments, 1 provided
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:104:8: note: void LEDmatrix7219::print(String, int, int)
    void print(String st, int x, int y = 0);
    ^

    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:104:8: note: candidate expects 3 arguments, 1 provided
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:105:8: note: void LEDmatrix7219::print(long int, int, int, int, char)
    void print(long num, int x, int y = 0, int length = 0, char filler = ' ');
    ^
    C:\Program Files (x86)\Arduino\libraries\LEDmatrix7219/LEDmatrix7219.h:105:8: note: candidate expects 5 arguments, 1 provided
    no matching function for call to 'LEDmatrix7219::print(char)'
    чё ему не нравится вот код
    // LEDmatrix7219_Counter_Demo_16Wide
    // Copyright (C)2015 Rinky-Dink Electronics, Henning Karlsen. All right reserved
    // web: http://www.RinkyDinkElectronics.com/
    //
    // A quick demo on displaying numbers
    //
    // This demo is designed for a 16x8 matrix (2 pcs 8x8 matrices)
    //
    // It is assumed that the first MAX7219 is connected to
    // the following pins using a levelshifter to get the
    // correct voltage to the module.
    // Data - Pin 5
    // Clock - Pin 6
    // Load - Pin 7
    //

    #include <LEDmatrix7219.h>

    LEDmatrix7219 myMatrix(5, 6, 7);

    extern uint8_t TextFont[];

    void setup()
    {
    myMatrix.begin(2);
    myMatrix.disableSleep();
    myMatrix.setFont(TextFont);
    myMatrix.print('5'); // If you want leading spaces instead of leading zeros you can replace '0' with ';'.
    delay(1000);
    }

    void loop()
    {
    myMatrix.print('5'); // If you want leading spaces instead of leading zeros you can replace '0' with ';'.
    delay(100);
    }
     
  14. смайлики сами появились
    это баг
     
  15. geher

    geher Гуру

    Это не баг, это фича. И еще много таких фокусов.
    например
    Код (Text):

    [I]что-то[/I]
     
    что-то будет наклонным шрифтом
    А для кода используйте обрамление
    Код (Text):

    [CODE]
    код
    [/ CODE]
     
    Только без пробела между слэшем и CODE
    Или пользуйте соответствующую кнопку
     
    Последнее редактирование: 23 июл 2015