LED-матрица + MAX7219 + MaxMatrix.lib

Kshyshtov
Offline
Зарегистрирован: 02.09.2013

Друзья, уперся в проблему и не знаю куда дальше копать.
Есть светодиодная матрица , управляемая MAX7219. Под это чудо написана замечательная библиотека http://code.google.com/p/arudino-maxmatrix-library/ 
Все бы ничего, но при использовании примера с этого сайта нет возможности вывода русских букв.

Есть возможность указывать необходимый для вывода текст либо через порт, либо считывать его из строки. При вводе кириллицы из порта - на дисплее появляется необходимый символ и в мониторе порта указыватся его правильный номер.

А вот из стринга

char string1[] = "Привет";

считать правильно кириллицу не получается. 

/*
################################################################################
# File Name:             MAX7219_5.ino                                             
# Board:                 Arduino UNO         
# Programming Language:	 Wiring / C /Processing /Fritzing / Arduino IDE          
#						
# Objective:             Scrolling LED dot Matrix
#										  
# Operation:	         Scrolls a message over a 16x8 LED dot matrix
#			
# Author:                Marcelo Moraes 
# Date:                  July 9th, 2013	
# Place:                 Sorocaba - SP - Brazil	
#					
################################################################################
 
 This code is a public example.
 */



//******************************************************************************
// visit this web page for further information about MaxMatrix library
// https://code.google.com/p/arudino-maxmatrix-library/
//******************************************************************************


#include <MaxMatrix.h>
#include <avr/pgmspace.h>

PROGMEM unsigned char CH[] = {
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space		0
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !		1
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "		2
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #		3
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $		4
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %		5
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &		6
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '		7
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (		8
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )		9
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *		10
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +		11
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,		12
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -		13
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .		14
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /		15
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0		16
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1		17
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2		18
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3		19
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4		20
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5		21
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6		22
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7		23
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8		24
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9		25
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :		26
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;		27
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <		28
3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =		29
3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >		30
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?		31
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @		32
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A		33
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B		34
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C		35
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D		36
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E		37
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F		38
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G		39
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H		40
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I		41
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J		42
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K		43
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L		44
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M		45
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N		46
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O		47
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P		48
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q		49
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R		50
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S		51
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T		52
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U		53
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V		54
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W		55
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X		56
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y		57
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z		58
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [		59
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash		60
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]		61
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat		62
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _		63
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `		64
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a		65
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b		66
3, 8, B00111000, B01000100, B01000100, B00000000, B00000000, // c		67
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d		68
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e		69
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f		70
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g		71
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h		72
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i		73
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j		74
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k		75
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l		76
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m		77
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n		78
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o		79
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p		80
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q		81
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r		82
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s		83
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t		84
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u		85
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v		86
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w		87
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x		88
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y		89
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z		90
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {		91
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |		92
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }		93
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~		94
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space		95
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		96
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		97
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		98
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		99
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		100
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		101
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		102
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		103
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		104
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		105
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		106
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		107
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		108
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		109
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		110
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		111
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		112
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		113
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		114
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		115
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		116
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		117
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		118
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		119
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		120
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		121
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		122
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		123
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		124
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		125
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		126
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		127
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		128
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		129
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		130
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		131
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		132
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		133
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		134
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		135
4, 8, B01111100, B01010101, B01010101, B01010100, B00000000, // Ё	Ё	136
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		137
4, 8, B00111110, B01001001, B01001001, B00100010, B00000000, // Є	Є	138
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		139
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		140
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		141
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		142
3, 8, B00000001, B11111110, B00000001, B00000000, B00000000, // ?	Ї	143
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		144
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		145
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // І	І	146
1, 8, B01111010, B00000000, B00000000, B00000000, B00000000, // і	і	147
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		148
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		149
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		150
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		151
4, 8, B00111000, B01010101, B01010101, B00001000, B00000000, // ё	ё	152
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		153
4, 8, B00111000, B01010100, B01010100, B01010100, B00000000, // є	є	154
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		155
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		156
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		157
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		158
3, 8, B00000010, B01111000, B00000010, B00000000, B00000000, // ?	ї	159
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A	А	160
4, 8, B01111111, B01001001, B01001001, B00110001, B00000000, // Б	Б	161
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B	В	162
4, 8, B01111111, B00000001, B00000001, B00000001, B00000000, // Г	Г	163
5, 8, B01100000, B00111111, B00100001, B00111111, B01100000, // Д	Д	164
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E	Е	165
5, 8, B01100011, B00010100, B01111111, B00010100, B01100011, // Ж	Ж	166
4, 8, B01100011, B01000001, B01001001, B00110110, B00000000, // З	З	167
5, 8, B01111111, B00010000, B00001000, B00000100, B01111111, // И	И	168
5, 8, B01111111, B00100000, B00010001, B00001000, B01111100, // Й	Й	169
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // К	К	170
4, 8, B01111110, B00000001, B00000001, B01111111, B00000000, // Л	Л	171
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M	М	172
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H	Н	173
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O	О	174
4, 8, B01111111, B00000001, B00000001, B01111111, B00000000, // П	П	175
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P	Р	176
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C	С	177
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T	Т	178
4, 8, B01000111, B01001000, B01001000, B00111111, B00000000, // У	У	179
5, 8, B00001110, B00010001, B01111111, B00010001, B00001110, // Ф	Ф	180
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X	Х	181
5, 8, B01111111, B01000000, B01000000, B01111111, B11000000, // Ц	Ц	182
4, 8, B00000111, B00001000, B00001000, B01111111, B00000000, // Ч	Ч	183
5, 8, B01111111, B01000000, B01111111, B01000000, B01111111, // Ш	Ш	184
6, 8, B01111111, B01000000, B01111111, B01000000, B11111111, // Щ	Щ	185
5, 8, B00001001, B01111111, B01001000, B01001000, B00110000, // Ъ	Ъ	186
5, 8, B01111111, B01001000, B01001000, B00110000, B01111111, // Ы	Ы	187
4, 8, B01111111, B01001000, B01001000, B00110000, B00000000, // Ь	Ь	188
4, 8, B01001001, B01001001, B01001001, B00111110, B00000000, // Э	Э	189
5, 8, B01111111, B00001000, B00111110, B01000001, B00111110, // Ю	Ю	190
4, 8, B01000110, B00101001, B00011001, B01111111, B00000000, // Я	Я	191
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a	а	192
4, 8, B00111100, B01001010, B01001010, B00110000, B00000000, // б	б	193
4, 8, B01111100, B01010100, B01010100, B00101000, B00000000, // в	в	194
4, 8, B01111110, B00000100, B00000100, B00000100, B00000000, // г	г	195
5, 8, B11000000, B01111000, B01000100, B01111100, B11000000, // д	д	196
4, 8, B00111000, B01010100, B01010100, B01001000, B00000000, // е	е	197
5, 8, B01000100, B00101000, B01111100, B00101000, B01000100, // ж	ж	198
4, 8, B00000000, B01000100, B01010100, B00101000, B00000000, // з	з	199
4, 8, B01111100, B00010000, B00001000, B01111100, B00000000, // и	и	200
4, 8, B01111100, B00010001, B00001001, B01111100, B00000000, // й	й	201
4, 8, B01111100, B00010000, B00101000, B01000100, B00000000, // к	к	202
4, 8, B01000000, B01111000, B00000100, B01111100, B00000000, // л	л	203
5, 8, B01111100, B00001000, B00010000, B00001000, B01111100, // м	м	204
4, 8, B01111100, B00010000, B00010000, B01111100, B00000000, // н	н	205
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // о	о	206
4, 8, B01111100, B00000100, B00000100, B01111100, B00000000, // п	п	207
4, 8, B01111100, B00010100, B00010100, B00001000, B00000000, // р	р	208
3, 8, B00111000, B01000100, B01000100, B00000000, B00000000, // c	с	209
5, 8, B00000100, B00000100, B01111100, B00000100, B00000100, // т	т	210
4, 8, B01001100, B01010000, B01010000, B00111100, B00000000, // у	у	211
5, 8, B00011000, B00100100, B01111100, B00100100, B00011000, // ф	ф	212
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x	х	213
5, 8, B01111100, B01000000, B01000000, B01111100, B11000000, // ц	ц	214
4, 8, B00001100, B00010000, B00010000, B01111100, B00000000, // ч	ч	215
5, 8, B01111100, B01000000, B01111100, B01000000, B01111100, // ш	ш	216
5, 8, B01111100, B01000000, B01111100, B01000000, B11111100, // щ	щ	217
5, 8, B00000100, B01111100, B01001000, B01001000, B00110000, // ъ	ъ	218
5, 8, B01111100, B01010000, B00100000, B00000000, B01111100, // ы	ы	219
4, 8, B01111100, B01010000, B01010000, B00100000, B00000000, // ь	ь	220
4, 8, B01000100, B01010100, B01010100, B00111000, B00000000, // э	э	221
5, 8, B01111100, B00010000, B00111000, B01000100, B00111000, // ю	ю	222
4, 8, B01001000, B00110100, B00010100, B01111100, B00000000, // я	я	223


};

int data = 8;    // DIN pin of MAX7219 module
int load = 9;    // CS pin of MAX7219 module
int clock = 10;  // CLK pin of MAX7219 module

int maxInUse = 4;    //change this variable to set how many MAX7219's you'll use

MaxMatrix m(data, load, clock, maxInUse); // define module

byte buffer[10];

// active sentenses
char string1[] = "Привет";
char string2[] = " I am glad to show you my Arduino scrolling dot Matrix        ";
char string3[] = " using MAX7219 IC     ";
char string4[] = " Visit my blog at:     http://arduinobymyself.blogspot.com.br     ";
char string5[] = " There you will find a lot of projects with Arduino.   ";
char string6[] = " Thanks for watching =)          ";


// just for tests
char string7[] = " A B C D E F G H I J K L M N O P Q R S T U V X W Y Z ";
char string8[] = " a b c d e f g h i j k l m n o p q r s t u v x w y z ";
char string9[] = " 1 2 3 4 5 6 7 8 9 0 - = ";
char string10[] = " ! @ # $ % ¨ & * ( ) _ + ";
char string11[] = " ' , . ; ~ ] ´ [ | < > : ^ } ` { / ?  ";

char string12[] = " Hello ! ";


void setup(){
  m.init(); // module initialize
  m.setIntensity(5); // dot matix intensity 0-15
  Serial.begin(9600); // serial communication initialize
}

void loop(){
 
  // this is the code if you want to entering a message via serial console
  while (Serial.available() > 0){
    byte c = Serial.read();
    Serial.println(c, DEC);
    printCharWithShift(c, 100);
  }
  delay(100);
  m.shiftLeft(false, true);
  
  // print the active sentences
 printStringWithShift(string1, 100);
  }

void printCharWithShift(unsigned char c, int shift_speed){
 if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7*c, 7);
  m.writeSprite(32, 0, buffer);
  m.setColumn(32 + buffer[0], 0);
// Serial.println(c, DEC);
 
  
  for (int i=0; i<buffer[0]+1; i++) 
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}

void printStringWithShift(char* s, int shift_speed){
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  Serial.println(*s, DEC);
  }
}

void printString(char* s)
{
  int col = 0;
  while (*s != 0)
  {
    if (*s < 32) continue;
    char c = *s - 32;
    memcpy_P(buffer, CH + 7*c, 7);
    m.writeSprite(col, 0, buffer);
    m.setColumn(col + buffer[0], 0);
    col += buffer[0] + 1;
    s++;
    Serial.println(c, DEC);
  }
}

За вывод отдельного символа отвечает:

void printCharWithShift(unsigned char c, int shift_speed){
 if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7*c, 7);
  m.writeSprite(32, 0, buffer);
  m.setColumn(32 + buffer[0], 0);
// Serial.println(c, DEC);
 
  
  for (int i=0; i<buffer[0]+1; i++) 
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}

За вывод номера символа из строки отвечает кусок кода:
 

void printStringWithShift(char* s, int shift_speed){
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  Serial.println(*s, DEC);
  }
}

 

Yur0k
Offline
Зарегистрирован: 20.09.2013

Приветствую!.. 

Насчет кирилицы, ИМХО компилятор кодировку не понимает... :(

У меня при использовании дпнного скетча появляются "паразитные" точки.. некоторые буквы/цифры в составе слов(идущие друг за другом) отображаются некорректно. никто не сталкивался с подобным?

vov4ik
Offline
Зарегистрирован: 10.09.2013
Я уже эту задачу решал бегущая сторка на двух матрицах руским текстом, правдо творение свое потерял при переустановке компа, там весь фокус заключается в переписывании шрифта английского на русский и вводится к примеру такая обра-кодабра "Jlyf;ls d cneltye. pbvyb. gjhe z bpktce dsitk ,sk cbkmysq vjhjp" что в бегущей строке будет "Однажды в студеную зимнию пору я из лесу вышел был сильный мороз" , то есть шрифт переделывается так что ставится англиканская раскладка но тыкаем по русским буквам.
Если заинтересует поищу исходник но там всё ручками придется, весь шрифт переделывать.
Хотя вы можете и сами переписать вашу библиотеку, копируйте кодироку русской буквы и подставляйте тому что соответсвует англиской на клавиатуре.
murdered85
murdered85 аватар
Offline
Зарегистрирован: 28.07.2014

vov4ik пишет:

Я уже эту задачу решал бегущая сторка на двух матрицах руским текстом, правдо творение свое потерял при переустановке компа, там весь фокус заключается в переписывании шрифта английского на русский и вводится к примеру такая обра-кодабра "Jlyf;ls d cneltye. pbvyb. gjhe z bpktce dsitk ,sk cbkmysq vjhjp" что в бегущей строке будет "Однажды в студеную зимнию пору я из лесу вышел был сильный мороз" , то есть шрифт переделывается так что ставится англиканская раскладка но тыкаем по русским буквам.
Если заинтересует поищу исходник но там всё ручками придется, весь шрифт переделывать.
Хотя вы можете и сами переписать вашу библиотеку, копируйте кодироку русской буквы и подставляйте тому что соответсвует англиской на клавиатуре.

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

SLOM
Offline
Зарегистрирован: 06.11.2014

купил вот такую китайскую мартицу 

http://ru.aliexpress.com/item/1pcs-MAX7219-dot-matrix-module-microcontro...

 

залил данный скетч, с одной стороны вроде как работает, надпись "Hello" ползен, но вот сдвиг идет неправильно. 

поидее бегущая строка должна двигаться вдоль длинны модуля, тоесть каждый символ должен приходить по каждому из 4х модулей образуя бегущее слово. 

у меня же бегущая строка идет поперек модуля. тоесть получаеться сразу 4 бегущих строки каждая состоит из 1го модуля. при этом чтоб читать нужно перевернуть модуль, поставив его не горизхонтально а вертикально. 

целый день ищу ответ на вопрос, как же перевернуть это безобразие в коде. но так и не смог найти ответ. 

может кто сталкивался с такой проблемой? по сути нужно бегущую строку повернуть на 90 градусов...

 

vov4ik
Offline
Зарегистрирован: 10.09.2013

Перепайка.

В вашем случае надо переписать шрифт повернув его на 90 град, и заменить команду     m.shiftLeft(falsefalse); на     m.shiftUp(falsefalse); или     m.shiftDown(falsefalse);

хотя точно не уверен.

SLOM
Offline
Зарегистрирован: 06.11.2014

перепайка увы не вариант, т.к. там все модули спаянв на одной плате, это нужно их резать, поворачивать и сново спаивать проводами. 

поидее должен быть способ повернуть их программно. 

ваш вариант я уже пробовал самостоятельно, до того как написать в этой теме, увы не помогло, точнее даже выдало ошибку. 

почемуто m.shiftUp(falsefalse); или     m.shiftDown(falsefalse);

выдает ошибку 

Tablo.ino: In function 'void printCharWithShift(unsigned char, int)':

Tablo:322: error: no matching function for call to 'MaxMatrix::shiftUp(int, int)'
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\MaxMatrix/MaxMatrix.h:52: note: candidates are: void MaxMatrix::shiftUp(bool)
Tablo:323: error: expected `;' before '}' token
 
еще пробовал почемуто m.shiftRight(falsefalse) - компилит но ничего нет. 
vov4ik
Offline
Зарегистрирован: 10.09.2013

Попробуйте другую юиюлеотеку ledcontrol

SLOM
Offline
Зарегистрирован: 06.11.2014

для этой библиотеки нашел только один пример, их родной, там тоже буквы набок лежат. 

блин нерадует меня перспектива пилить плату и переворачивать блоки, из за несовершенства кода (((

SLOM
Offline
Зарегистрирован: 06.11.2014

нашел видео с такой же проблемой 

https://www.youtube.com/watch?v=9VgecVPoQOw но там хотябы сегменты разделяемые, у меня монолитная плата. 

 

vov4ik
Offline
Зарегистрирован: 10.09.2013

Ваша панелька работает под SPI под библиотекой Adafruit-GFX  

int pinCS = 10; // Attach CS to this pin, DIN 11 and CLK 13 (cf http://arduino.cc/en/Reference/SPI )
int numberOfHorizontalDisplays = 1;
int numberOfVerticalDisplays = 4;
Но тут ещё надо в сетапе произвести поворот экрана 
Поворот есть но чтото мне лень его искать.
vov4ik
Offline
Зарегистрирован: 10.09.2013

matrix.setRotation(matrix.getRotation()+1); //1 - 90  2 - 180   3 - 270 

SLOM
Offline
Зарегистрирован: 06.11.2014

спасибо! vov4ik увы для этих библиотек не смог найти рабочий скетч :( какието ошибки выдает. у вас случаем нет тестового скетча? 

 

SLOM
Offline
Зарегистрирован: 06.11.2014

вот такое ругает 

C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp: In constructor 'RobotControl::RobotControl()':
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp:8: error: 'LCD_CS' was not declared in this scope
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp:8: error: 'DC_LCD' was not declared in this scope
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp:8: error: 'RST_LCD' was not declared in this scope
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp: In member function 'void RobotControl::begin()':
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp:18: error: 'MUXA' was not declared in this scope
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp:18: error: 'MUXB' was not declared in this scope
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp:18: error: 'MUXC' was not declared in this scope
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp:18: error: 'MUXD' was not declared in this scope
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp:19: error: 'MUX_IN' was not declared in this scope
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp:22: error: 'BUZZ' was not declared in this scope
C:\Users\SLOM\Desktop\arduino-1.0.5-r2\libraries\Robot_Control\ArduinoRobot.cpp:25: error: 'Serial1' was not declared in this scope

 

vov4ik
Offline
Зарегистрирован: 10.09.2013

Странно если вы скачали и правильно установили всё должно работать, у меня на 2 матрицах нормально.

 

vov4ik
Offline
Зарегистрирован: 10.09.2013
SLOM
Offline
Зарегистрирован: 06.11.2014

Спасибо, действительно после обновления стало компилить скетч. 

вот только какойто странный код, нашел где вбивать int pinCS = 9; /   а где искать еще 2 других? )))

по догадкам чтото гдето попробовал поминять но вроде не то и не так ))

vov4ik
Offline
Зарегистрирован: 10.09.2013

Какие догадки всё уже разжевал см сообщение №10

int pinCS = 10; //   DIN 11   CLK 13 
int numberOfHorizontalDisplays = 1;
int numberOfVerticalDisplays = 4; // было 1 поменять на 4
в сетап закинуть 
matrix.setRotation(matrix.getRotation()+1); //1 - 90  2 - 180   3 - 270 
+1 или +3 незнаю сам подбереш.
Для вывода текста скеч Ticker
SLOM
Offline
Зарегистрирован: 06.11.2014

vov4ik - Большое спасибо за помощь! все заработало, теперь строка выводит текст как нужно! 

жаль библиотека русский не поддерживает (

 

vov4ik
Offline
Зарегистрирован: 10.09.2013

Так в чем поблема поддержите его, обычный шриф Standard ASCII 5x7 font содержится в файле glcdfont.c вроде как

Как менять уже выше писал англиские по клаве заменяются на руские, в скече пишется абракодабра на англиском, а бегунок русском.

SLOM
Offline
Зарегистрирован: 06.11.2014

тогда как я понимаю исчезнет английский шрифт? :)

если не секрет что вы делали на этих матрицах? какой проект? 

vov4ik
Offline
Зарегистрирован: 10.09.2013

Да англиский не будет 

ничего поигрался с двумя матрицами и отложил.

 

SLOM
Offline
Зарегистрирован: 06.11.2014

тоесть вы както подсоеденили мыш от пк к ардуине и двигая ее точка двигалать по матрице? :) круто! 

 

vov4ik
Offline
Зарегистрирован: 10.09.2013

В вашем случае можно сделать круче подключить картридер-SD  и выводить картинки на дисплей библиотека Adafruit-GFX позволяет это сделать

SLOM
Offline
Зарегистрирован: 06.11.2014

хм, интересно, но както сложно? а есть примеры как это сделать? какиен картинки нужны и каким скетчем их выводить? 

 

vov4ik
Offline
Зарегистрирован: 10.09.2013

Примеров нету, в этом и есть крутизна когда сам ручками.

Тут вроде не сложно подключить картридер-SD  pin 11 = MOSI, pin 12 = MISO, pin 13 = SCK 

#define SD_CS    4  // Chip select line for SD card

иницилизировать библиотеку 

и вывети картинку bmpDraw("kartinka.bmp", 0, 0);

на карточке должен лежать фаил kartinka.bmp  точечный рисунок формата 32х4

SLOM
Offline
Зарегистрирован: 06.11.2014

интересно а гиф можно сделать или подобие гифа :) из нескольких сменяющихся картинок. 

а почему вы сами такое не делали, у вас же 2 матрицы! это 16х8 точек, можно какието глаза для робота сделать, могрвющие )

vlaks
Offline
Зарегистрирован: 16.06.2015

vov4ik пишет:

Какие догадки всё уже разжевал см сообщение №10

int pinCS = 10; //   DIN 11   CLK 13 
int numberOfHorizontalDisplays = 1;
int numberOfVerticalDisplays = 4; // было 1 поменять на 4
в сетап закинуть 
matrix.setRotation(matrix.getRotation()+1); //1 - 90  2 - 180   3 - 270 
+1 или +3 незнаю сам подбереш.
Для вывода текста скеч Ticker

matrix.setRotation(matrix.getRotation()+1); //1 - 90  2 - 180   3 - 270 

не работает.

Вот что помогает развернуть матрицы

matrix.setRotation(0, 1);    
 matrix.setRotation(1, 1);   
 matrix.setRotation(2, 1);   
 matrix.setRotation(3, 1);  
vov4ik
Offline
Зарегистрирован: 10.09.2013

vlaks пишет:

 

matrix.setRotation(matrix.getRotation()+1); //1 - 90  2 - 180   3 - 270 

не работает.

Вот что помогает развернуть матрицы

matrix.setRotation(0, 1);    
 matrix.setRotation(1, 1);   
 matrix.setRotation(2, 1);   
 matrix.setRotation(3, 1);  

У меня работает, у SLOM  как я понял тоже работает, поискал по библиотеке что крутит матрицу попробывал отписал.

SLOM
Offline
Зарегистрирован: 06.11.2014

у меня работает

pingWin4er
Offline
Зарегистрирован: 05.08.2015

Друзья всем привет, помогите пожалуйста разобраться с кодом.

Arduino NANO

есть два датчика BMP180 (выдаёт значение: давление; температура; высоту), Анимометр (выдаёт импульсы +5В, 100 имп./оборот)

и матрица, озвученная SLOMом выше 8*32, которая правильно работает по SPI c библиотекой  Adafruit_GFX.h.

подскажите каким массивом заменить и как лучше поместить данные с датчиков, что бы это выводилось на матрицу и отбражалось в реальном времени при опросе датчиков раз в 1 сек.

вывод в таком виде: Wind 2 m/s    Temp 25°C    Pressure 760mmHg

 



#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>


int pinCS = 10; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf http://arduino.cc/en/Reference/SPI )
int numberOfHorizontalDisplays = 1;
int numberOfVerticalDisplays = 4;

Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);

String tape = "Hello World";
int wait = 200; // In milliseconds

int spacer = 1;
int width = 5 + spacer; // The font width is 5 pixels

void setup() {
  
  matrix.setIntensity(0); // Use a value between 0 and 15 for brightness
  matrix.setRotation(matrix.getRotation()+1); //1 - 90  2 - 180   3 - 270

}
void loop() {
  for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) 
       {
    matrix.fillScreen(LOW);

    int letter = i / width;
    int x = (matrix.width() - 1) - i % width;
    int y = (matrix.height() - 8) / 2; // center the text vertically

    while ( x + width - spacer >= 0 && letter >= 0 ) {
      if ( letter < tape.length() ) {
        matrix.drawChar(x, y, tape[letter], HIGH, LOW,1);
      }
      letter--;
      x -= width;
    }
    matrix.write(); // Send bitmap to display
    delay(wait);
  }
}

 

SLOM
Offline
Зарегистрирован: 06.11.2014

чтото так и не получилось русифицировать Adafruit_GFX.h

может у когото получилось? 

DenKis
Offline
Зарегистрирован: 20.05.2015

Ардуино ИДЕ предпожительно в WIN1251.

Русификация (к первуму сообщению)

void printStringWithShiftWIN1251(unsigned char* s, int shift_speed){
  while (*s != 0){
    if ((uint8_t)*s == 208 && *s+1 != 0) {
      s++;
      if (*s == 129) printCharWithShift(*s+39, shift_speed); //Ё
      else printCharWithShift(*s+48, shift_speed);
      s++;
    } else if ((uint8_t)*s == 209 && *s+1 != 0) {
      s++;
      if (*s == 145) printCharWithShift(*s+39, shift_speed); //ё
      if (*s > 127 && *s <= 143) printCharWithShift(*s+112, shift_speed);
      s++;
    } else {
      printCharWithShift(*s, shift_speed);
      s++;
    }
  }
}
arduinec
Offline
Зарегистрирован: 01.09.2015

SLOM пишет:

чтото так и не получилось русифицировать Adafruit_GFX.h

может у когото получилось? 

http://arduino.ru/forum/programmirovanie/rusifikatsiya-biblioteki-adafru...
 

SLOM
Offline
Зарегистрирован: 06.11.2014

DenKis пишет:

Ардуино ИДЕ предпожительно в WIN1251.

Русификация (к первуму сообщению)

void printStringWithShiftWIN1251(unsigned char* s, int shift_speed){
  while (*s != 0){
    if ((uint8_t)*s == 208 && *s+1 != 0) {
      s++;
      if (*s == 129) printCharWithShift(*s+39, shift_speed); //Ё
      else printCharWithShift(*s+48, shift_speed);
      s++;
    } else if ((uint8_t)*s == 209 && *s+1 != 0) {
      s++;
      if (*s == 145) printCharWithShift(*s+39, shift_speed); //ё
      if (*s > 127 && *s <= 143) printCharWithShift(*s+112, shift_speed);
      s++;
    } else {
      printCharWithShift(*s, shift_speed);
      s++;
    }
  }
}

 

к сожалению неработает или неправильно вставил 

 

/*
################################################################################
# File Name:             MAX7219_5.ino                                             
# Board:                 Arduino UNO         
# Programming Language:	 Wiring / C /Processing /Fritzing / Arduino IDE          
#						
# Objective:             Scrolling LED dot Matrix
#										  
# Operation:	         Scrolls a message over a 16x8 LED dot matrix
#			
# Author:                Marcelo Moraes 
# Date:                  July 9th, 2013	
# Place:                 Sorocaba - SP - Brazil	
#					
################################################################################
 
 This code is a public example.
 */



//******************************************************************************
// visit this web page for further information about MaxMatrix library
// <a href="https://code.google.com/p/arudino-maxmatrix-library/" title="https://code.google.com/p/arudino-maxmatrix-library/" rel="nofollow">https://code.google.com/p/arudino-maxmatrix-library/</a>
//******************************************************************************


#include <MaxMatrix.h>
#include <avr/pgmspace.h>



PROGMEM unsigned char CH[] = {
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space		0
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !		1
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "		2
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #		3
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $		4
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %		5
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &		6
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '		7
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (		8
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )		9
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *		10
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +		11
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,		12
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -		13
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .		14
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /		15
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0		16
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1		17
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2		18
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3		19
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4		20
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5		21
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6		22
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7		23
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8		24
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9		25
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :		26
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;		27
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <		28
3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =		29
3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >		30
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?		31
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @		32
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A		33
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B		34
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C		35
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D		36
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E		37
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F		38
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G		39
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H		40
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I		41
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J		42
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K		43
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L		44
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M		45
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N		46
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O		47
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P		48
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q		49
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R		50
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S		51
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T		52
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U		53
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V		54
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W		55
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X		56
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y		57
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z		58
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [		59
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash		60
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]		61
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat		62
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _		63
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `		64
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a		65
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b		66
3, 8, B00111000, B01000100, B01000100, B00000000, B00000000, // c		67
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d		68
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e		69
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f		70
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g		71
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h		72
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i		73
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j		74
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k		75
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l		76
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m		77
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n		78
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o		79
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p		80
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q		81
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r		82
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s		83
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t		84
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u		85
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v		86
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w		87
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x		88
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y		89
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z		90
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {		91
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |		92
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }		93
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~		94
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space		95
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		96
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		97
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		98
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		99
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		100
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		101
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		102
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		103
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		104
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		105
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		106
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		107
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		108
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		109
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		110
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		111
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		112
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		113
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		114
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		115
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		116
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		117
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		118
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		119
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		120
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		121
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		122
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		123
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		124
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		125
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		126
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		127
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		128
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		129
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		130
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		131
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		132
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		133
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		134
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		135
4, 8, B01111100, B01010101, B01010101, B01010100, B00000000, // Ё	Ё	136
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		137
4, 8, B00111110, B01001001, B01001001, B00100010, B00000000, // Є	Є	138
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		139
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		140
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		141
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		142
3, 8, B00000001, B11111110, B00000001, B00000000, B00000000, // ?	Ї	143
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		144
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		145
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // І	І	146
1, 8, B01111010, B00000000, B00000000, B00000000, B00000000, // і	і	147
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		148
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		149
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		150
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		151
4, 8, B00111000, B01010101, B01010101, B00001000, B00000000, // ё	ё	152
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		153
4, 8, B00111000, B01010100, B01010100, B01010100, B00000000, // є	є	154
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		155
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		156
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		157
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		158
3, 8, B00000010, B01111000, B00000010, B00000000, B00000000, // ?	ї	159
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A	А	160
4, 8, B01111111, B01001001, B01001001, B00110001, B00000000, // Б	Б	161
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B	В	162
4, 8, B01111111, B00000001, B00000001, B00000001, B00000000, // Г	Г	163
5, 8, B01100000, B00111111, B00100001, B00111111, B01100000, // Д	Д	164
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E	Е	165
5, 8, B01100011, B00010100, B01111111, B00010100, B01100011, // Ж	Ж	166
4, 8, B01100011, B01000001, B01001001, B00110110, B00000000, // З	З	167
5, 8, B01111111, B00010000, B00001000, B00000100, B01111111, // И	И	168
5, 8, B01111111, B00100000, B00010001, B00001000, B01111100, // Й	Й	169
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // К	К	170
4, 8, B01111110, B00000001, B00000001, B01111111, B00000000, // Л	Л	171
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M	М	172
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H	Н	173
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O	О	174
4, 8, B01111111, B00000001, B00000001, B01111111, B00000000, // П	П	175
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P	Р	176
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C	С	177
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T	Т	178
4, 8, B01000111, B01001000, B01001000, B00111111, B00000000, // У	У	179
5, 8, B00001110, B00010001, B01111111, B00010001, B00001110, // Ф	Ф	180
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X	Х	181
5, 8, B01111111, B01000000, B01000000, B01111111, B11000000, // Ц	Ц	182
4, 8, B00000111, B00001000, B00001000, B01111111, B00000000, // Ч	Ч	183
5, 8, B01111111, B01000000, B01111111, B01000000, B01111111, // Ш	Ш	184
6, 8, B01111111, B01000000, B01111111, B01000000, B11111111, // Щ	Щ	185
5, 8, B00001001, B01111111, B01001000, B01001000, B00110000, // Ъ	Ъ	186
5, 8, B01111111, B01001000, B01001000, B00110000, B01111111, // Ы	Ы	187
4, 8, B01111111, B01001000, B01001000, B00110000, B00000000, // Ь	Ь	188
4, 8, B01001001, B01001001, B01001001, B00111110, B00000000, // Э	Э	189
5, 8, B01111111, B00001000, B00111110, B01000001, B00111110, // Ю	Ю	190
4, 8, B01000110, B00101001, B00011001, B01111111, B00000000, // Я	Я	191
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a	а	192
4, 8, B00111100, B01001010, B01001010, B00110000, B00000000, // б	б	193
4, 8, B01111100, B01010100, B01010100, B00101000, B00000000, // в	в	194
4, 8, B01111110, B00000100, B00000100, B00000100, B00000000, // г	г	195
5, 8, B11000000, B01111000, B01000100, B01111100, B11000000, // д	д	196
4, 8, B00111000, B01010100, B01010100, B01001000, B00000000, // е	е	197
5, 8, B01000100, B00101000, B01111100, B00101000, B01000100, // ж	ж	198
4, 8, B00000000, B01000100, B01010100, B00101000, B00000000, // з	з	199
4, 8, B01111100, B00010000, B00001000, B01111100, B00000000, // и	и	200
4, 8, B01111100, B00010001, B00001001, B01111100, B00000000, // й	й	201
4, 8, B01111100, B00010000, B00101000, B01000100, B00000000, // к	к	202
4, 8, B01000000, B01111000, B00000100, B01111100, B00000000, // л	л	203
5, 8, B01111100, B00001000, B00010000, B00001000, B01111100, // м	м	204
4, 8, B01111100, B00010000, B00010000, B01111100, B00000000, // н	н	205
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // о	о	206
4, 8, B01111100, B00000100, B00000100, B01111100, B00000000, // п	п	207
4, 8, B01111100, B00010100, B00010100, B00001000, B00000000, // р	р	208
3, 8, B00111000, B01000100, B01000100, B00000000, B00000000, // c	с	209
5, 8, B00000100, B00000100, B01111100, B00000100, B00000100, // т	т	210
4, 8, B01001100, B01010000, B01010000, B00111100, B00000000, // у	у	211
5, 8, B00011000, B00100100, B01111100, B00100100, B00011000, // ф	ф	212
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x	х	213
5, 8, B01111100, B01000000, B01000000, B01111100, B11000000, // ц	ц	214
4, 8, B00001100, B00010000, B00010000, B01111100, B00000000, // ч	ч	215
5, 8, B01111100, B01000000, B01111100, B01000000, B01111100, // ш	ш	216
5, 8, B01111100, B01000000, B01111100, B01000000, B11111100, // щ	щ	217
5, 8, B00000100, B01111100, B01001000, B01001000, B00110000, // ъ	ъ	218
5, 8, B01111100, B01010000, B00100000, B00000000, B01111100, // ы	ы	219
4, 8, B01111100, B01010000, B01010000, B00100000, B00000000, // ь	ь	220
4, 8, B01000100, B01010100, B01010100, B00111000, B00000000, // э	э	221
5, 8, B01111100, B00010000, B00111000, B01000100, B00111000, // ю	ю	222
4, 8, B01001000, B00110100, B00010100, B01111100, B00000000, // я	я	223


};

int data = 11;    // DIN pin of MAX7219 module
int load = 10;    // CS pin of MAX7219 module
int clock = 13;  // CLK pin of MAX7219 module

int maxInUse = 4;    //change this variable to set how many MAX7219's you'll use

MaxMatrix m(data, load, clock, maxInUse); // define module




byte buffer[10];

// active sentenses
char string1[] = "Привет";


// just for tests
char string7[] = " A B C D E F G H I J K L M N O P Q R S T U V X W Y Z ";
char string8[] = " a b c d e f g h i j k l m n o p q r s t u v x w y z ";
char string9[] = " 1 2 3 4 5 6 7 8 9 0 - = ";
char string10[] = " ! @ # $ % ¨ & * ( ) _ + ";
char string11[] = " ' , . ; ~ ] ´ [ | < > : ^ } ` { / ?  ";

char string12[] = " Hello ! ";


void setup(){
  m.init(); // module initialize
  m.setIntensity(5); // dot matix intensity 0-15
  Serial.begin(9600); // serial communication initialize
}


void loop(){
 
  // this is the code if you want to entering a message via serial console
  while (Serial.available() > 0){
    byte c = Serial.read();
    Serial.println(c, DEC);
    printCharWithShift(c, 100);
  }
  delay(100);
  m.shiftLeft(false, true);
  
  // print the active sentences
 printStringWithShift(string1, 100);
  }

void printCharWithShift(unsigned char c, int shift_speed){
 if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7*c, 7);
  m.writeSprite(32, 0, buffer);
  m.setColumn(32 + buffer[0], 0);
// Serial.println(c, DEC);
 
  
  for (int i=0; i<buffer[0]+1; i++) 
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}

void printStringWithShift(char* s, int shift_speed){
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  Serial.println(*s, DEC);
  }
}

void printString(char* s)
{
  int col = 0;
  while (*s != 0)
  {
    if (*s < 32) continue;
    char c = *s - 32;
    memcpy_P(buffer, CH + 7*c, 7);
    m.writeSprite(col, 0, buffer);
    m.setColumn(col + buffer[0], 0);
    col += buffer[0] + 1;
    s++;
    Serial.println(c, DEC);
  }
}

void printStringWithShiftWIN1251(unsigned char* s, int shift_speed){
  while (*s != 0){
    if ((uint8_t)*s == 208 && *s+1 != 0) {
      s++;
      if (*s == 129) printCharWithShift(*s+39, shift_speed); //Ё
      else printCharWithShift(*s+48, shift_speed);
      s++;
    } else if ((uint8_t)*s == 209 && *s+1 != 0) {
      s++;
      if (*s == 145) printCharWithShift(*s+39, shift_speed); //ё
      if (*s > 127 && *s <= 143) printCharWithShift(*s+112, shift_speed);
      s++;
    } else {
      printCharWithShift(*s, shift_speed);
      s++;
    }
  }
}

а еще снова матрица повернулась, непойму как обратно в этом кде вращать направление движения. 

DenKis
Offline
Зарегистрирован: 20.05.2015
307   // print the active sentences
308  printStringWithShiftWIN1251(string1, 100);
309   }

Есле не ошибаюсь, то еще 

275 // active sentenses
276  unsigned char string1[] = "Привет";

 

 

 

SLOM
Offline
Зарегистрирован: 06.11.2014

большое спасибо, теперь текст на русском, неподскажете как повернуть его направление?  на 90 градусов в право :)

/*
################################################################################
# File Name:             MAX7219_5.ino                                             
# Board:                 Arduino UNO         
# Programming Language:	 Wiring / C /Processing /Fritzing / Arduino IDE          
#						
# Objective:             Scrolling LED dot Matrix
#										  
# Operation:	         Scrolls a message over a 16x8 LED dot matrix
#			
# Author:                Marcelo Moraes 
# Date:                  July 9th, 2013	
# Place:                 Sorocaba - SP - Brazil	
#					
################################################################################
 
 This code is a public example.
 */



//******************************************************************************
// visit this web page for further information about MaxMatrix library
// <a href="<a href="https://code.google.com/p/arudino-maxmatrix-library/" rel="nofollow">https://code.google.com/p/arudino-maxmatrix-library/</a>" title="<a href="https://code.google.com/p/arudino-maxmatrix-library/" rel="nofollow">https://code.google.com/p/arudino-maxmatrix-library/</a>" rel="nofollow"><a href="https://code.google.com/p/arudino-maxmatrix-library/" rel="nofollow">https://code.google.com/p/arudino-maxmatrix-library/</a></a>
//******************************************************************************


#include <MaxMatrix.h>
#include <avr/pgmspace.h>



PROGMEM unsigned char CH[] = {
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space		0
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !		1
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "		2
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #		3
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $		4
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %		5
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &		6
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '		7
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (		8
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )		9
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *		10
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +		11
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,		12
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -		13
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .		14
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /		15
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0		16
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1		17
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2		18
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3		19
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4		20
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5		21
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6		22
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7		23
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8		24
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9		25
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :		26
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;		27
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <		28
3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =		29
3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >		30
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?		31
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @		32
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A		33
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B		34
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C		35
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D		36
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E		37
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F		38
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G		39
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H		40
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I		41
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J		42
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K		43
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L		44
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M		45
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N		46
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O		47
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P		48
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q		49
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R		50
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S		51
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T		52
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U		53
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V		54
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W		55
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X		56
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y		57
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z		58
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [		59
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash		60
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]		61
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat		62
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _		63
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `		64
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a		65
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b		66
3, 8, B00111000, B01000100, B01000100, B00000000, B00000000, // c		67
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d		68
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e		69
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f		70
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g		71
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h		72
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i		73
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j		74
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k		75
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l		76
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m		77
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n		78
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o		79
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p		80
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q		81
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r		82
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s		83
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t		84
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u		85
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v		86
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w		87
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x		88
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y		89
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z		90
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {		91
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |		92
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }		93
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~		94
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space		95
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		96
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		97
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		98
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		99
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		100
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		101
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		102
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		103
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		104
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		105
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		106
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		107
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		108
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		109
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		110
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		111
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		112
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		113
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		114
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		115
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		116
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		117
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		118
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		119
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		120
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		121
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		122
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		123
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		124
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		125
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		126
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		127
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		128
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		129
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		130
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		131
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		132
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		133
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		134
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		135
4, 8, B01111100, B01010101, B01010101, B01010100, B00000000, // Ё	Ё	136
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		137
4, 8, B00111110, B01001001, B01001001, B00100010, B00000000, // Є	Є	138
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		139
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		140
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		141
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		142
3, 8, B00000001, B11111110, B00000001, B00000000, B00000000, // ?	Ї	143
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		144
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		145
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // І	І	146
1, 8, B01111010, B00000000, B00000000, B00000000, B00000000, // і	і	147
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		148
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		149
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		150
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		151
4, 8, B00111000, B01010101, B01010101, B00001000, B00000000, // ё	ё	152
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		153
4, 8, B00111000, B01010100, B01010100, B01010100, B00000000, // є	є	154
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		155
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		156
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		157
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?		158
3, 8, B00000010, B01111000, B00000010, B00000000, B00000000, // ?	ї	159
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A	А	160
4, 8, B01111111, B01001001, B01001001, B00110001, B00000000, // Б	Б	161
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B	В	162
4, 8, B01111111, B00000001, B00000001, B00000001, B00000000, // Г	Г	163
5, 8, B01100000, B00111111, B00100001, B00111111, B01100000, // Д	Д	164
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E	Е	165
5, 8, B01100011, B00010100, B01111111, B00010100, B01100011, // Ж	Ж	166
4, 8, B01100011, B01000001, B01001001, B00110110, B00000000, // З	З	167
5, 8, B01111111, B00010000, B00001000, B00000100, B01111111, // И	И	168
5, 8, B01111111, B00100000, B00010001, B00001000, B01111100, // Й	Й	169
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // К	К	170
4, 8, B01111110, B00000001, B00000001, B01111111, B00000000, // Л	Л	171
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M	М	172
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H	Н	173
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O	О	174
4, 8, B01111111, B00000001, B00000001, B01111111, B00000000, // П	П	175
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P	Р	176
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C	С	177
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T	Т	178
4, 8, B01000111, B01001000, B01001000, B00111111, B00000000, // У	У	179
5, 8, B00001110, B00010001, B01111111, B00010001, B00001110, // Ф	Ф	180
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X	Х	181
5, 8, B01111111, B01000000, B01000000, B01111111, B11000000, // Ц	Ц	182
4, 8, B00000111, B00001000, B00001000, B01111111, B00000000, // Ч	Ч	183
5, 8, B01111111, B01000000, B01111111, B01000000, B01111111, // Ш	Ш	184
6, 8, B01111111, B01000000, B01111111, B01000000, B11111111, // Щ	Щ	185
5, 8, B00001001, B01111111, B01001000, B01001000, B00110000, // Ъ	Ъ	186
5, 8, B01111111, B01001000, B01001000, B00110000, B01111111, // Ы	Ы	187
4, 8, B01111111, B01001000, B01001000, B00110000, B00000000, // Ь	Ь	188
4, 8, B01001001, B01001001, B01001001, B00111110, B00000000, // Э	Э	189
5, 8, B01111111, B00001000, B00111110, B01000001, B00111110, // Ю	Ю	190
4, 8, B01000110, B00101001, B00011001, B01111111, B00000000, // Я	Я	191
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a	а	192
4, 8, B00111100, B01001010, B01001010, B00110000, B00000000, // б	б	193
4, 8, B01111100, B01010100, B01010100, B00101000, B00000000, // в	в	194
4, 8, B01111110, B00000100, B00000100, B00000100, B00000000, // г	г	195
5, 8, B11000000, B01111000, B01000100, B01111100, B11000000, // д	д	196
4, 8, B00111000, B01010100, B01010100, B01001000, B00000000, // е	е	197
5, 8, B01000100, B00101000, B01111100, B00101000, B01000100, // ж	ж	198
4, 8, B00000000, B01000100, B01010100, B00101000, B00000000, // з	з	199
4, 8, B01111100, B00010000, B00001000, B01111100, B00000000, // и	и	200
4, 8, B01111100, B00010001, B00001001, B01111100, B00000000, // й	й	201
4, 8, B01111100, B00010000, B00101000, B01000100, B00000000, // к	к	202
4, 8, B01000000, B01111000, B00000100, B01111100, B00000000, // л	л	203
5, 8, B01111100, B00001000, B00010000, B00001000, B01111100, // м	м	204
4, 8, B01111100, B00010000, B00010000, B01111100, B00000000, // н	н	205
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // о	о	206
4, 8, B01111100, B00000100, B00000100, B01111100, B00000000, // п	п	207
4, 8, B01111100, B00010100, B00010100, B00001000, B00000000, // р	р	208
3, 8, B00111000, B01000100, B01000100, B00000000, B00000000, // c	с	209
5, 8, B00000100, B00000100, B01111100, B00000100, B00000100, // т	т	210
4, 8, B01001100, B01010000, B01010000, B00111100, B00000000, // у	у	211
5, 8, B00011000, B00100100, B01111100, B00100100, B00011000, // ф	ф	212
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x	х	213
5, 8, B01111100, B01000000, B01000000, B01111100, B11000000, // ц	ц	214
4, 8, B00001100, B00010000, B00010000, B01111100, B00000000, // ч	ч	215
5, 8, B01111100, B01000000, B01111100, B01000000, B01111100, // ш	ш	216
5, 8, B01111100, B01000000, B01111100, B01000000, B11111100, // щ	щ	217
5, 8, B00000100, B01111100, B01001000, B01001000, B00110000, // ъ	ъ	218
5, 8, B01111100, B01010000, B00100000, B00000000, B01111100, // ы	ы	219
4, 8, B01111100, B01010000, B01010000, B00100000, B00000000, // ь	ь	220
4, 8, B01000100, B01010100, B01010100, B00111000, B00000000, // э	э	221
5, 8, B01111100, B00010000, B00111000, B01000100, B00111000, // ю	ю	222
4, 8, B01001000, B00110100, B00010100, B01111100, B00000000, // я	я	223


};

int data = 11;    // DIN pin of MAX7219 module
int load = 10;    // CS pin of MAX7219 module
int clock = 13;  // CLK pin of MAX7219 module

int maxInUse = 4;    //change this variable to set how many MAX7219's you'll use

MaxMatrix m(data, load, clock, maxInUse); // define module




byte buffer[10];

// active sentenses
unsigned char string1[] = "Привет";

//char string1[] = "Привет";


// just for tests
char string7[] = " A B C D E F G H I J K L M N O P Q R S T U V X W Y Z ";
char string8[] = " a b c d e f g h i j k l m n o p q r s t u v x w y z ";
char string9[] = " 1 2 3 4 5 6 7 8 9 0 - = ";
char string10[] = " ! @ # $ % ¨ & * ( ) _ + ";
char string11[] = " ' , . ; ~ ] ´ [ | < > : ^ } ` { / ?  ";

char string12[] = " Hello ! ";


void setup(){
  m.init(); // module initialize
  m.setIntensity(5); // dot matix intensity 0-15
  Serial.begin(9600); // serial communication initialize
}


void loop(){
 
  // this is the code if you want to entering a message via serial console
  while (Serial.available() > 0){
    byte c = Serial.read();
    Serial.println(c, DEC);
    printCharWithShift(c, 100);
  }
  delay(100);
  m.shiftLeft(false, true);
  
  // print the active sentences
  printStringWithShiftWIN1251(string1, 100);

   //printStringWithShift(string1, 100);
  }

void printCharWithShift(unsigned char c, int shift_speed){
 if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7*c, 7);
  m.writeSprite(32, 0, buffer);
  m.setColumn(32 + buffer[0], 0);
// Serial.println(c, DEC);
 
  
  for (int i=0; i<buffer[0]+1; i++) 
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}

void printStringWithShift(char* s, int shift_speed){
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  Serial.println(*s, DEC);
  }
}

void printString(char* s)
{
  int col = 0;
  while (*s != 0)
  {
    if (*s < 32) continue;
    char c = *s - 32;
    memcpy_P(buffer, CH + 7*c, 7);
    m.writeSprite(col, 0, buffer);
    m.setColumn(col + buffer[0], 0);
    col += buffer[0] + 1;
    s++;
    Serial.println(c, DEC);
  }
}

void printStringWithShiftWIN1251(unsigned char* s, int shift_speed){
  while (*s != 0){
    if ((uint8_t)*s == 208 && *s+1 != 0) {
      s++;
      if (*s == 129) printCharWithShift(*s+39, shift_speed); //Ё
      else printCharWithShift(*s+48, shift_speed);
      s++;
    } else if ((uint8_t)*s == 209 && *s+1 != 0) {
      s++;
      if (*s == 145) printCharWithShift(*s+39, shift_speed); //ё
      if (*s > 127 && *s <= 143) printCharWithShift(*s+112, shift_speed);
      s++;
    } else {
      printCharWithShift(*s, shift_speed);
      s++;
    }
  }
}

 

mrsoul
Offline
Зарегистрирован: 02.03.2016

SLOM пишет:

vov4ik - Большое спасибо за помощь! все заработало, теперь строка выводит текст как нужно! 

жаль библиотека русский не поддерживает (

 

скинь пожалуйста скетч, где работают матрицы с поворотом!

SLOM
Offline
Зарегистрирован: 06.11.2014

вот этот код, но в нем шрифт только на инглише, а тот где на русском текст повернут :(


#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>


int pinCS = 10; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf <a href="http://arduino.cc/en/Reference/SPI" title="http://arduino.cc/en/Reference/SPI" rel="nofollow">http://arduino.cc/en/Reference/SPI</a> )
int numberOfHorizontalDisplays = 1;
int numberOfVerticalDisplays = 4;

Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);

String tape = "Hello World";
int wait = 100; // In milliseconds

int spacer = 1;
int width = 5 + spacer; // The font width is 5 pixels

void setup() {
  
  matrix.setIntensity(3); // Use a value between 0 and 15 for brightness
  matrix.setRotation(matrix.getRotation()+1); //1 - 90  2 - 180   3 - 270

}
void loop() {
  for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) 
       {
    matrix.fillScreen(LOW);

    int letter = i / width;
    int x = (matrix.width() - 1) - i % width;
    int y = (matrix.height() - 8) / 2; // center the text vertically

    while ( x + width - spacer >= 0 && letter >= 0 ) {
      if ( letter < tape.length() ) {
        matrix.drawChar(x, y, tape[letter], HIGH, LOW,1);
      }
      letter--;
      x -= width;
    }
    matrix.write(); // Send bitmap to display
    delay(wait);
  }
}

 

iGonch
Offline
Зарегистрирован: 17.04.2016
/*
################################################################################
# File Name:             MAX7219_5.ino                                             
# Board:                 Arduino UNO         
# Programming Language:   Wiring / C /Processing /Fritzing / Arduino IDE          
#           
# Objective:             Scrolling LED dot Matrix
#                     
# Operation:           Scrolls a message over a 16x8 LED dot matrix
#     
# Author:                Marcelo Moraes 
# Date:                  July 9th, 2013 
# Place:                 Sorocaba - SP - Brazil 
#         
################################################################################
 
 This code is a public example.
 */



//******************************************************************************
// visit this web page for further information about MaxMatrix library
// <a href="<a href="<a href="https://code.google.com/p/arudino-maxmatrix-library/" rel="nofollow">https://code.google.com/p/arudino-maxmatrix-library/</a>" rel="nofollow"><a href="https://code.google.com/p/arudino-maxmatrix-library/" rel="nofollow">https://code.google.com/p/arudino-maxmatrix-library/</a></a>" title="<a href="<a href="https://code.google.com/p/arudino-maxmatrix-library/" rel="nofollow">https://code.google.com/p/arudino-maxmatrix-library/</a>" rel="nofollow"><a href="https://code.google.com/p/arudino-maxmatrix-library/" rel="nofollow">https://code.google.com/p/arudino-maxmatrix-library/</a></a>" rel="nofollow"><a href="<a href="https://code.google.com/p/arudino-maxmatrix-library/" rel="nofollow">https://code.google.com/p/arudino-maxmatrix-library/</a>" rel="nofollow"><a href="https://code.google.com/p/arudino-maxmatrix-library/" rel="nofollow">https://code.google.com/p/arudino-maxmatrix-library/</a></a></a>
//******************************************************************************


#include <MaxMatrix.h>
#include <avr/pgmspace.h>



PROGMEM const unsigned char CH[] = {
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space   0
1, 8, B01011111, B00000000, B00000000, B00000000, B00000000, // !   1
3, 8, B00000011, B00000000, B00000011, B00000000, B00000000, // "   2
5, 8, B00010100, B00111110, B00010100, B00111110, B00010100, // #   3
4, 8, B00100100, B01101010, B00101011, B00010010, B00000000, // $   4
5, 8, B01100011, B00010011, B00001000, B01100100, B01100011, // %   5
5, 8, B00110110, B01001001, B01010110, B00100000, B01010000, // &   6
1, 8, B00000011, B00000000, B00000000, B00000000, B00000000, // '   7
3, 8, B00011100, B00100010, B01000001, B00000000, B00000000, // (   8
3, 8, B01000001, B00100010, B00011100, B00000000, B00000000, // )   9
5, 8, B00101000, B00011000, B00001110, B00011000, B00101000, // *   10
5, 8, B00001000, B00001000, B00111110, B00001000, B00001000, // +   11
2, 8, B10110000, B01110000, B00000000, B00000000, B00000000, // ,   12
4, 8, B00001000, B00001000, B00001000, B00001000, B00000000, // -   13
2, 8, B01100000, B01100000, B00000000, B00000000, B00000000, // .   14
4, 8, B01100000, B00011000, B00000110, B00000001, B00000000, // /   15
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // 0   16
3, 8, B01000010, B01111111, B01000000, B00000000, B00000000, // 1   17
4, 8, B01100010, B01010001, B01001001, B01000110, B00000000, // 2   18
4, 8, B00100010, B01000001, B01001001, B00110110, B00000000, // 3   19
4, 8, B00011000, B00010100, B00010010, B01111111, B00000000, // 4   20
4, 8, B00100111, B01000101, B01000101, B00111001, B00000000, // 5   21
4, 8, B00111110, B01001001, B01001001, B00110000, B00000000, // 6   22
4, 8, B01100001, B00010001, B00001001, B00000111, B00000000, // 7   23
4, 8, B00110110, B01001001, B01001001, B00110110, B00000000, // 8   24
4, 8, B00000110, B01001001, B01001001, B00111110, B00000000, // 9   25
2, 8, B01010000, B00000000, B00000000, B00000000, B00000000, // :   26
2, 8, B10000000, B01010000, B00000000, B00000000, B00000000, // ;   27
3, 8, B00010000, B00101000, B01000100, B00000000, B00000000, // <   28
3, 8, B00010100, B00010100, B00010100, B00000000, B00000000, // =   29
3, 8, B01000100, B00101000, B00010000, B00000000, B00000000, // >   30
4, 8, B00000010, B01011001, B00001001, B00000110, B00000000, // ?   31
5, 8, B00111110, B01001001, B01010101, B01011101, B00001110, // @   32
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A   33
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B   34
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C   35
4, 8, B01111111, B01000001, B01000001, B00111110, B00000000, // D   36
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E   37
4, 8, B01111111, B00001001, B00001001, B00000001, B00000000, // F   38
4, 8, B00111110, B01000001, B01001001, B01111010, B00000000, // G   39
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H   40
3, 8, B01000001, B01111111, B01000001, B00000000, B00000000, // I   41
4, 8, B00110000, B01000000, B01000001, B00111111, B00000000, // J   42
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // K   43
4, 8, B01111111, B01000000, B01000000, B01000000, B00000000, // L   44
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M   45
5, 8, B01111111, B00000100, B00001000, B00010000, B01111111, // N   46
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O   47
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P   48
4, 8, B00111110, B01000001, B01000001, B10111110, B00000000, // Q   49
4, 8, B01111111, B00001001, B00001001, B01110110, B00000000, // R   50
4, 8, B01000110, B01001001, B01001001, B00110010, B00000000, // S   51
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T   52
4, 8, B00111111, B01000000, B01000000, B00111111, B00000000, // U   53
5, 8, B00001111, B00110000, B01000000, B00110000, B00001111, // V   54
5, 8, B00111111, B01000000, B00111000, B01000000, B00111111, // W   55
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X   56
5, 8, B00000111, B00001000, B01110000, B00001000, B00000111, // Y   57
4, 8, B01100001, B01010001, B01001001, B01000111, B00000000, // Z   58
2, 8, B01111111, B01000001, B00000000, B00000000, B00000000, // [   59
4, 8, B00000001, B00000110, B00011000, B01100000, B00000000, // \ backslash   60
2, 8, B01000001, B01111111, B00000000, B00000000, B00000000, // ]   61
3, 8, B00000010, B00000001, B00000010, B00000000, B00000000, // hat   62
4, 8, B01000000, B01000000, B01000000, B01000000, B00000000, // _   63
2, 8, B00000001, B00000010, B00000000, B00000000, B00000000, // `   64
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a   65
4, 8, B01111111, B01000100, B01000100, B00111000, B00000000, // b   66
3, 8, B00111000, B01000100, B01000100, B00000000, B00000000, // c   67
4, 8, B00111000, B01000100, B01000100, B01111111, B00000000, // d   68
4, 8, B00111000, B01010100, B01010100, B00011000, B00000000, // e   69
3, 8, B00000100, B01111110, B00000101, B00000000, B00000000, // f   70
4, 8, B10011000, B10100100, B10100100, B01111000, B00000000, // g   71
4, 8, B01111111, B00000100, B00000100, B01111000, B00000000, // h   72
3, 8, B01000100, B01111101, B01000000, B00000000, B00000000, // i   73
4, 8, B01000000, B10000000, B10000100, B01111101, B00000000, // j   74
4, 8, B01111111, B00010000, B00101000, B01000100, B00000000, // k   75
3, 8, B01000001, B01111111, B01000000, B00000000, B00000000, // l   76
5, 8, B01111100, B00000100, B01111100, B00000100, B01111000, // m   77
4, 8, B01111100, B00000100, B00000100, B01111000, B00000000, // n   78
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // o   79
4, 8, B11111100, B00100100, B00100100, B00011000, B00000000, // p   80
4, 8, B00011000, B00100100, B00100100, B11111100, B00000000, // q   81
4, 8, B01111100, B00001000, B00000100, B00000100, B00000000, // r   82
4, 8, B01001000, B01010100, B01010100, B00100100, B00000000, // s   83
3, 8, B00000100, B00111111, B01000100, B00000000, B00000000, // t   84
4, 8, B00111100, B01000000, B01000000, B01111100, B00000000, // u   85
5, 8, B00011100, B00100000, B01000000, B00100000, B00011100, // v   86
5, 8, B00111100, B01000000, B00111100, B01000000, B00111100, // w   87
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x   88
4, 8, B10011100, B10100000, B10100000, B01111100, B00000000, // y   89
3, 8, B01100100, B01010100, B01001100, B00000000, B00000000, // z   90
3, 8, B00001000, B00110110, B01000001, B00000000, B00000000, // {   91
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // |   92
3, 8, B01000001, B00110110, B00001000, B00000000, B00000000, // }   93
4, 8, B00001000, B00000100, B00001000, B00000100, B00000000, // ~   94
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // space   95
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   96
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   97
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   98
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   99
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   100
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   101
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   102
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   103
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   104
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   105
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   106
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   107
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   108
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   109
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   110
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   111
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   112
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   113
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   114
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   115
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   116
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   117
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   118
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   119
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   120
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   121
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   122
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   123
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   124
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   125
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   126
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   127
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   128
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   129
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   130
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   131
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   132
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   133
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   134
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   135
4, 8, B01111100, B01010101, B01010101, B01010100, B00000000, // Ё Ё 136
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   137
4, 8, B00111110, B01001001, B01001001, B00100010, B00000000, // Є Є 138
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   139
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   140
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   141
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   142
3, 8, B00000001, B11111110, B00000001, B00000000, B00000000, // ? Ї 143
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   144
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   145
1, 8, B01111111, B00000000, B00000000, B00000000, B00000000, // І І 146
1, 8, B01111010, B00000000, B00000000, B00000000, B00000000, // і і 147
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   148
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   149
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   150
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   151
4, 8, B00111000, B01010101, B01010101, B00001000, B00000000, // ё ё 152
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   153
4, 8, B00111000, B01010100, B01010100, B01010100, B00000000, // є є 154
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   155
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   156
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   157
3, 8, B00000000, B00000000, B00000000, B00000000, B00000000, // ?   158
3, 8, B00000010, B01111000, B00000010, B00000000, B00000000, // ? ї 159
4, 8, B01111110, B00010001, B00010001, B01111110, B00000000, // A А 160
4, 8, B01111111, B01001001, B01001001, B00110001, B00000000, // Б Б 161
4, 8, B01111111, B01001001, B01001001, B00110110, B00000000, // B В 162
4, 8, B01111111, B00000001, B00000001, B00000001, B00000000, // Г Г 163
5, 8, B01100000, B00111111, B00100001, B00111111, B01100000, // Д Д 164
4, 8, B01111111, B01001001, B01001001, B01000001, B00000000, // E Е 165
5, 8, B01100011, B00010100, B01111111, B00010100, B01100011, // Ж Ж 166
4, 8, B01100011, B01000001, B01001001, B00110110, B00000000, // З З 167
5, 8, B01111111, B00010000, B00001000, B00000100, B01111111, // И И 168
5, 8, B01111111, B00100000, B00010001, B00001000, B01111100, // Й Й 169
4, 8, B01111111, B00001000, B00010100, B01100011, B00000000, // К К 170
4, 8, B01111110, B00000001, B00000001, B01111111, B00000000, // Л Л 171
5, 8, B01111111, B00000010, B00001100, B00000010, B01111111, // M М 172
4, 8, B01111111, B00001000, B00001000, B01111111, B00000000, // H Н 173
4, 8, B00111110, B01000001, B01000001, B00111110, B00000000, // O О 174
4, 8, B01111111, B00000001, B00000001, B01111111, B00000000, // П П 175
4, 8, B01111111, B00001001, B00001001, B00000110, B00000000, // P Р 176
4, 8, B00111110, B01000001, B01000001, B00100010, B00000000, // C С 177
5, 8, B00000001, B00000001, B01111111, B00000001, B00000001, // T Т 178
4, 8, B01000111, B01001000, B01001000, B00111111, B00000000, // У У 179
5, 8, B00001110, B00010001, B01111111, B00010001, B00001110, // Ф Ф 180
5, 8, B01100011, B00010100, B00001000, B00010100, B01100011, // X Х 181
5, 8, B01111111, B01000000, B01000000, B01111111, B11000000, // Ц Ц 182
4, 8, B00000111, B00001000, B00001000, B01111111, B00000000, // Ч Ч 183
5, 8, B01111111, B01000000, B01111111, B01000000, B01111111, // Ш Ш 184
6, 8, B01111111, B01000000, B01111111, B01000000, B11111111, // Щ Щ 185
5, 8, B00001001, B01111111, B01001000, B01001000, B00110000, // Ъ Ъ 186
5, 8, B01111111, B01001000, B01001000, B00110000, B01111111, // Ы Ы 187
4, 8, B01111111, B01001000, B01001000, B00110000, B00000000, // Ь Ь 188
4, 8, B01001001, B01001001, B01001001, B00111110, B00000000, // Э Э 189
5, 8, B01111111, B00001000, B00111110, B01000001, B00111110, // Ю Ю 190
4, 8, B01000110, B00101001, B00011001, B01111111, B00000000, // Я Я 191
4, 8, B00100000, B01010100, B01010100, B01111000, B00000000, // a а 192
4, 8, B00111100, B01001010, B01001010, B00110000, B00000000, // б б 193
4, 8, B01111100, B01010100, B01010100, B00101000, B00000000, // в в 194
4, 8, B01111110, B00000100, B00000100, B00000100, B00000000, // г г 195
5, 8, B11000000, B01111000, B01000100, B01111100, B11000000, // д д 196
4, 8, B00111000, B01010100, B01010100, B01001000, B00000000, // е е 197
5, 8, B01000100, B00101000, B01111100, B00101000, B01000100, // ж ж 198
4, 8, B00000000, B01000100, B01010100, B00101000, B00000000, // з з 199
4, 8, B01111100, B00010000, B00001000, B01111100, B00000000, // и и 200
4, 8, B01111100, B00010001, B00001001, B01111100, B00000000, // й й 201
4, 8, B01111100, B00010000, B00101000, B01000100, B00000000, // к к 202
4, 8, B01000000, B01111000, B00000100, B01111100, B00000000, // л л 203
5, 8, B01111100, B00001000, B00010000, B00001000, B01111100, // м м 204
4, 8, B01111100, B00010000, B00010000, B01111100, B00000000, // н н 205
4, 8, B00111000, B01000100, B01000100, B00111000, B00000000, // о о 206
4, 8, B01111100, B00000100, B00000100, B01111100, B00000000, // п п 207
4, 8, B01111100, B00010100, B00010100, B00001000, B00000000, // р р 208
3, 8, B00111000, B01000100, B01000100, B00000000, B00000000, // c с 209
5, 8, B00000100, B00000100, B01111100, B00000100, B00000100, // т т 210
4, 8, B01001100, B01010000, B01010000, B00111100, B00000000, // у у 211
5, 8, B00011000, B00100100, B01111100, B00100100, B00011000, // ф ф 212
5, 8, B01000100, B00101000, B00010000, B00101000, B01000100, // x х 213
5, 8, B01111100, B01000000, B01000000, B01111100, B11000000, // ц ц 214
4, 8, B00001100, B00010000, B00010000, B01111100, B00000000, // ч ч 215
5, 8, B01111100, B01000000, B01111100, B01000000, B01111100, // ш ш 216
5, 8, B01111100, B01000000, B01111100, B01000000, B11111100, // щ щ 217
5, 8, B00000100, B01111100, B01001000, B01001000, B00110000, // ъ ъ 218
5, 8, B01111100, B01010000, B00100000, B00000000, B01111100, // ы ы 219
4, 8, B01111100, B01010000, B01010000, B00100000, B00000000, // ь ь 220
4, 8, B01000100, B01010100, B01010100, B00111000, B00000000, // э э 221
5, 8, B01111100, B00010000, B00111000, B01000100, B00111000, // ю ю 222
4, 8, B01001000, B00110100, B00010100, B01111100, B00000000, // я я 223


};

int data = 1;    // DIN pin of MAX7219 module
int load = 2;    // CS pin of MAX7219 module
int clock = 3;  // CLK pin of MAX7219 module

int maxInUse = 4;    //change this variable to set how many MAX7219's you'll use

MaxMatrix m(data, load, clock, maxInUse); // define module




byte buffer[10];

// active sentenses
unsigned char string1[] = "Как же это непросто! ";

//char string1[] = "Привет";


// just for tests
char string7[] = " A B C D E F G H I J K L M N O P Q R S T U V X W Y Z ";
char string8[] = " a b c d e f g h i j k l m n o p q r s t u v x w y z ";
char string9[] = " 1 2 3 4 5 6 7 8 9 0 - = ";
char string10[] = " ! @ # $ % ¨ & * ( ) _ + ";
char string11[] = " ' , . ; ~ ] ´ [ | < > : ^ } ` { / ?  ";

char string12[] = " Hello ! ";


void setup(){
  m.init(); // module initialize
  m.setIntensity(5); // dot matix intensity 0-15

  Serial.begin(9600); // serial communication initialize
}


void loop(){
 
  // this is the code if you want to entering a message via serial console
  while (Serial.available() > 0){
    byte c = Serial.read();
    Serial.println(c, DEC);
    printCharWithShift(c, 100);
  }
  delay(100);
  m.shiftLeft(false, true);
  
  // print the active sentences
  printStringWithShiftWIN1251(string1, 100);

   //printStringWithShift(string1, 100);
  }

void printCharWithShift(unsigned char c, int shift_speed){
 if (c < 32) return;
  c -= 32;
  memcpy_P(buffer, CH + 7*c, 7);
  m.writeSprite(32, 0, buffer);
  m.setColumn(32 + buffer[0], 0);
// Serial.println(c, DEC);
 
  
  for (int i=0; i<buffer[0]+1; i++) 
  {
    delay(shift_speed);
    m.shiftLeft(false, false);
  }
}

void printStringWithShift(char* s, int shift_speed){
  while (*s != 0){
    printCharWithShift(*s, shift_speed);
    s++;
  Serial.println(*s, DEC);
  }
}

void printString(char* s)
{
  int col = 0;
  while (*s != 0)
  {
    if (*s < 32) continue;
    char c = *s - 32;
    memcpy_P(buffer, CH + 7*c, 7);
    m.writeSprite(col, 0, buffer);
    m.setColumn(col + buffer[0], 0);
    col += buffer[0] + 1;
    s++;
    Serial.println(c, DEC);
  }
}

void printStringWithShiftWIN1251(unsigned char* s, int shift_speed){
  while (*s != 0){
    if ((uint8_t)*s == 208 && *s+1 != 0) {
      s++;
      if (*s == 129) printCharWithShift(*s+39, shift_speed); //Ё
      else printCharWithShift(*s+48, shift_speed);
      s++;
    } else if ((uint8_t)*s == 209 && *s+1 != 0) {
      s++;
      if (*s == 145) printCharWithShift(*s+39, shift_speed); //ё
      if (*s > 127 && *s <= 143) printCharWithShift(*s+112, shift_speed);
      s++;
    } else {
      printCharWithShift(*s, shift_speed);
      s++;
    }
  }
}

Так и не удалось его повернуть? этот скетч я использую с такой же матрицей, и та же проблема- тескт бежит в 4 строки поперек( Тоже новичок. кто-нибудь подскажет как переделать сектч чтобы русские буквы и бежали влево вдоль 4х матриц? 

JasKo
Offline
Зарегистрирован: 21.11.2015

iGonch с MaxMatrix врядли получится.

Нужно взять библиотеки указанные SLOM в посте #38 <Adafruit_GFX.h> и  <Max72xxPanel.h>

внести изменения в Adafruit_GFX как описано здесь  и использовать для перекодирования  исправленную функцию utf8rus от arduinec

/* Recode russian fonts from UTF-8 to Windows-1251 */

String utf8rus(String source)
{
  int i,k;
  String target;
  unsigned char n;
  char m[2] = { '0', '\0' };

  k = source.length(); i = 0;

  while (i < k) {
    n = source[i]; i++;
    if (n >= 0xC0) {
      switch (n) {
        case 0xD0: {
          n = source[i]; i++;
          if (n == 0x81) { n = 0xA8; break; }
          if (n >= 0x90 && n <= 0xBF) n = n + 0x2F;
          break;
        }
        case 0xD1: {
          n = source[i]; i++;
          if (n == 0x91) { n = 0xB7; break; }
          if (n >= 0x80 && n <= 0x8F) n = n + 0x6F;
          break;
        }
      }
    }
    m[0] = n; target = target + String(m);
  }
return target;
}

Вот так например будет выглядеть код из #38 поста


#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>


int pinCS = 10; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf <a href="<a href="http://arduino.cc/en/Reference/SPI" rel="nofollow">http://arduino.cc/en/Reference/SPI</a>" title="<a href="http://arduino.cc/en/Reference/SPI" rel="nofollow">http://arduino.cc/en/Reference/SPI</a>" rel="nofollow"><a href="http://arduino.cc/en/Reference/SPI" rel="nofollow">http://arduino.cc/en/Reference/SPI</a></a> )
// Uno or Duemilanove DIN 11 (MOSI) CLK 13 (SCK)
int numberOfHorizontalDisplays = 1;
int numberOfVerticalDisplays = 5;

Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);

String tape = "";
int wait = 100; // In milliseconds

int spacer = 1;
int width = 5 + spacer; // The font width is 5 pixels

void setup() {
  tape = utf8rus("Привет Мир! Съешь ёще этих мягких фрацузких булок.");
  matrix.setIntensity(3); // Use a value between 0 and 15 for brightness
  matrix.setRotation(matrix.getRotation()+3); //1 - 90  2 - 180   3 - 270

}
void loop() {
  for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) 
       {
    matrix.fillScreen(LOW);

    int letter = i / width;
    int x = (matrix.width() - 1) - i % width;
    int y = (matrix.height() - 8) / 2; // center the text vertically

    while ( x + width - spacer >= 0 && letter >= 0 ) {
      if ( letter < tape.length() ) {
        matrix.drawChar(x, y, tape[letter], HIGH, LOW,1);
      }
      letter--;
      x -= width;
    }
    matrix.write(); // Send bitmap to display
    delay(wait);
  }
}

Остается добавить чтение с сериал порта и все...

iGonch
Offline
Зарегистрирован: 17.04.2016

Спасибо большое. Попробую и отпишусь

SLOM
Offline
Зарегистрирован: 06.11.2014

если получиться выложите рабочий код....  а то когда я ковырял эту тему, так и не получилось русифицировать. 

JasKo
Offline
Зарегистрирован: 21.11.2015

SLOM приведенный мною код рабочий. В библиотеке Adafruit_GFX надо поменять файл glcdfont.c (см. сылку выше).

iGonch
Offline
Зарегистрирован: 17.04.2016

Библиотеку заменил, но компилятор выдает ошибку 

/Users/igonch/Documents/Arduino/sketch_apr19a/sketch_apr19a.ino: In function 'void setup()':
sketch_apr19a:20: error: 'utf8rus' was not declared in this scope
   tape = utf8rus("Привет Мир! Съешь ёще этих мягких фрацузких булок.");
                                                                                                               ^
exit status 1
'utf8rus' was not declared in this scope
Если функцию utf8rus делать отдельным файлом, и класть в папку со скетчем, то какое расширение должен иметь этот файл?
 
 
iGonch
Offline
Зарегистрирован: 17.04.2016

JasCo, скажите, можно ли с вами индивидуально встретиться (созвониться? Skype,...) и выяснить несколько вопросов? Я собираю контроллер электроплиты (и еще пару вещей) для 90-летней мамы, которая плохо слышит. Наличие бегущей строки необходимо. Я в Москве. Готов прислать линк на ТЗ и обсудить вопрос компенсации за помощь. у меня не очень много времени на выполнение. спасибо

JasKo
Offline
Зарегистрирован: 21.11.2015

Функцию можно скопипастить прямо из форума и вставить в свой файл - и будет работать.

В Arduino IDE есть возможность сосдавать вкладки (Ctrl+Shift+N) называешь вкладку как нибудь понятно и пишеш в них функции, что бы не загромождать основной файл. Можно эту функцию в отдельную вкладку сзкопипастить. Физически она ляжет в папку со скетчем.

JasKo
Offline
Зарегистрирован: 21.11.2015

       

iGonch
Offline
Зарегистрирован: 17.04.2016

JasKo пишет:

в вашем #47 пусто... я написал вам вчера письмо. 

SLOM
Offline
Зарегистрирован: 06.11.2014

и так и сяк пробую не выходит.... всеравно текст идет не руский а какаята белиберда... 

фаил в библиотеке менял, код добовлял... может ктото свой код выложит? полностью целый.

JasKo
Offline
Зарегистрирован: 21.11.2015

Вот код который у меня работает



#include <SPI.h>
#include <Adafruit_GFX.h>
#include <Max72xxPanel.h>


int pinCS = 10; // Attach CS to this pin, DIN to MOSI and CLK to SCK (cf <a href="<a href="http://arduino.cc/en/Reference/SPI" rel="nofollow">http://arduino.cc/en/Reference/SPI</a>" title="<a href="http://arduino.cc/en/Reference/SPI" rel="nofollow">http://arduino.cc/en/Reference/SPI</a>" rel="nofollow"><a href="http://arduino.cc/en/Reference/SPI" rel="nofollow">http://arduino.cc/en/Reference/SPI</a></a> )
// Uno or Duemilanove DIN 11 (MOSI) CLK 13 (SCK)
int numberOfHorizontalDisplays = 1;
int numberOfVerticalDisplays = 5;

Max72xxPanel matrix = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays);

String tape = "";
int wait = 100; // In milliseconds

int spacer = 2; // Промежуток между символами (кол-во точек)
int width = 5 + spacer; // The font width is 5 pixels 

/* Recode russian fonts from UTF-8 to Windows-1251 */

String utf8rus(String source)
{
  int i,k;
  String target;
  unsigned char n;
  char m[2] = { '0', '\0' };

  k = source.length(); i = 0;
  while (i < k) {
    n = source[i]; i++;
    if (n >= 0xC0) {
      switch (n) {
        case 0xD0: {
          n = source[i]; i++;
          if (n == 0x81) { n = 0xA8; break; }
          if (n >= 0x90 && n <= 0xBF) n = n + 0x2F;
          break;
        }
        case 0xD1: {
          n = source[i]; i++;
          if (n == 0x91) { n = 0xB7; break; }
          if (n >= 0x80 && n <= 0x8F) n = n + 0x6F;
          break;
        }
      }
    }
    m[0] = n; target = target + String(m);
  }
return target;
}

String Serial_Read() {
  unsigned char c; // переменная для чтения сериал порта
  String Serial_string = ""; // Формируемая из символов строка
  while (Serial.available() > 0) { // Если в сериал порту есть символы
    c = Serial.read(); // Читаем символ
    //Serial.print(c,HEX); Serial.print(" "); Serial.print(c);
    if (c == '\n') {  // Если это конец строки
          return Serial_string; // Возвращаем строку 
    }
    if (c == 0xB8) c = c - 0x01;  // Коррекция кодов символа под таблицу ???? так как русские символы в таблице сдвинуты относительно стандартной кодировки utf на 1 символ
    if (c >= 0xBF && c <= 0xFF) c = c - 0x01;
    Serial_string = Serial_string + String(char(c)); //Добавить символ в строку
  }
  return Serial_string; 
}



void setup() {
  Serial.begin(9600);
  tape = utf8rus("Привет мир! Как поживаешь?");
  matrix.setIntensity(3); // Use a value between 0 and 15 for brightness
  matrix.setRotation(matrix.getRotation()+3); //1 - 90  2 - 180   3 - 270

}
void loop() {

  if (Serial.available()){
    tape=Serial_Read();
  } 
  for ( int i = 0 ; i < width * tape.length() + matrix.width() - 1 - spacer; i++ ) 
       {
    matrix.fillScreen(LOW);

    int letter = i / width; // номер символа выводимого на матрицу 
    
    int x = (matrix.width() - 1) - i % width;  
    int y = (matrix.height() - 8) / 2; // center the text vertically

    while ( x + width - spacer >= 0 && letter >= 0 ) {
      if ( letter < tape.length() ) {
        matrix.drawChar(x, y, tape[letter], HIGH, LOW,1);
      }
      letter--;
      x -= width;
    }
    matrix.write(); // Send bitmap to display
    delay(wait);
  }
}

Вот библиотеки с которыми работет https://yadi.sk/d/g62lBjetrAGVi

и https://yadi.sk/d/IxWV0KzorAGae

В adafruit_GFX уже заменен файл glcdfont.c

У меня соеденино пять матриц и с начала гоняется надпись "Привет мир! Как поживаешь?"

затем можно ввести свою строку через терминал (влючить режим <конец строки>), эту строку будет гонять до ввода новой.