Паяльник

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » Паяльник » Микроконтроллеры » Пишем свой текст на дисплее 8-digital 7-segment MAX7219


Пишем свой текст на дисплее 8-digital 7-segment MAX7219

Сообщений 1 страница 2 из 2

1

Доброго времени суток.

Мы уже рассмотрели дисплей-матрицу 8x8 на базе MAX7219, бегущую строку из несколько матриц Бегущая строка из N-Led матриц 8x8 на MAX7219 температура и влажность

Поговорим теперь о 8-разрядном 7-сегментном дисплее на том же драйвере MAX7219

http://s6.uploads.ru/t/EzJWF.png

Многие сталкиваются с вопросом как на подобном дисплее нарисовать свои слова и символы, например HELLO, Error, OPEn, ScrEEn, Good и прочие например значек градуса и другие символы

Штатно библиотека Ledcontrol.h позволяет выводить следующие символы при помощи функции void setChar(int addr, int digit, char value, boolean dp);

'0','1','2','3','4','5','6','7','8','9','0', 'A','b','c','d','E','F','H','L','P', '.','-','_',' '

Однако с помощью функции void setRow(int addr, int row, byte value); этой же библиотеки Ledcontrol.h мы можем задействовать любые сегменты этого индикатора.

Для примера

http://s9.uploads.ru/t/Pm5yd.jpg

    lc.setRow(0,7,B10000000); // 7   
    lc.setRow(0,6,B01000000); // 0
    lc.setRow(0,5,B00100000); // 1
    lc.setRow(0,4,B00010000); // 2
    lc.setRow(0,3,B00001000); // 3
    lc.setRow(0,2,B00000100); // 4   
    lc.setRow(0,1,B00000010); // 5
    lc.setRow(0,0,B00000001); // 6

//       0
//     -----
//  5 |     | 1
//    |  6  |
//     -----
//  4 |     | 2
//    |  3  |
//     -----  o
//            7

Чтобы нарисовать букву G, код будет таким B01011110  // G

Теперь Вы можете сами рисовать свои буквы.

+1

2

Небольшой скетч для примера

Код:
#include "LedControl.h"
#define MAX_DIN 9
#define MAX_CS 8
#define MAX_CLK 7
LedControl lc=LedControl(MAX_DIN,MAX_CLK,MAX_CS,1);
const byte CharTable[] = {
    B00000101,  // r
    B00011100,  // u
    B00010000,  // i
    B00010101,  // n
    B00011101,  // o
    B01001111   // E
};

void print_Hello ()  {
    lc.setChar(0,7,'H',false);    
    lc.setChar(0,6,'E',false);
    lc.setChar(0,5,'L',false);
    lc.setChar(0,4,'L',false);
    lc.setChar(0,3,'0',true);
    delay(3000);
}

void print_Arduino ()  {
    lc.clearDisplay(0);
    lc.setChar(0,7,'A',false); // A 
    lc.setRow(0,6,CharTable[0]); // r
    lc.setChar(0,5,'d',false); // d
    lc.setRow(0,4,CharTable[1]); // u
    lc.setRow(0,3,CharTable[2]); // i
    lc.setRow(0,2,CharTable[3]); // n   
    lc.setRow(0,1,CharTable[4]); // 0
    delay(3000);
}

void setup()  
{ 

  lc.shutdown(0,false); // Иниц дисплей 1
  lc.setIntensity(0,0); // яркость дисплея 1
  lc.clearDisplay(0);  // очистить дисплей 1
  print_Hello ();
  delay(3000);
  print_Arduino ();
  delay(3000);
}

void loop()
{


}

+1


Вы здесь » Паяльник » Микроконтроллеры » Пишем свой текст на дисплее 8-digital 7-segment MAX7219


создать форум