C creando tu propia fuente para el marcador. ¿Cómo agregar fuentes adicionales a las páginas de destino en LPgenerator? Intentos de solución anteriores

¡Hola queridos usuarios de LPgenerator!

Tenga en cuenta: para conectar la fuente de forma estándar, utilice una herramienta ya preparada. Es fácil de usar y le permite agregar fuentes adicionales sin ningún esfuerzo extra:

En esta publicación, aprenderá cómo agregar una fuente adicional a su página de destino usando servicio de google Fuentes mediante la adición de scripts.

2. Asegúrate de indicar el alfabeto, es decir, un conjunto de caracteres.

Si la página de destino está en ruso, seleccione latín ( latín) y cirílico ( cirílico):

3. Seleccione las fuentes que desee y haga clic en " +":

4. Vaya a la colección de fuentes agregadas. Para hacer esto, haga clic en la barra negra a continuación:

5. En la ventana que se abre, el primer elemento muestra las fuentes seleccionadas previamente.

Recuerde: use gran cantidad varios fuentes de google Las fuentes pueden hacer que su página de destino se cargue más lentamente. El impacto de los estilos seleccionados en la velocidad de carga de la página se muestra a la derecha.

6. Si el conjunto y apariencia Si está satisfecho con las fuentes agregadas, vaya a la sección "EMBED" y copie completamente el contenido del campo "STANDART":

no cerrar pestaña de google Fuentes, las necesitaremos más tarde.

Abra la página de inicio deseada en el editor LPgenerator y haga clic en la herramienta "Guiones":

  • en la ventana que se abre, haga clic en "Agregar nuevo guión";
  • escriba el nombre del guión;
  • seleccione la posición del guión "Dentro de la etiqueta HEAD";
  • pegue el código copiado;
  • No olvide guardar los cambios.

7. Regrese a la pestaña Fuentes de Google.

Copie el código CSS que se genera para utilizar las fuentes cargadas.

Cada fuente usa su propio CSS.

Por ejemplo, para la fuente Lobster el código se ve así: familia de fuentes: "Langosta", cursiva;

8. Regrese al editor LPgenerator y haga clic en el elemento (texto o botón) al que desea aplicar la fuente descargada.

Hay características del uso de estilos para diferentes elementos página de destino.

Elementos de llamada a la acción

Para cambiar el estilo de fuente de un botón, simplemente haga clic en él y en las propiedades avanzadas de la derecha, agregue CSS para la fuente (copiado en el paso ocho).

Bloques de texto de la página de destino

Para aplicar una fuente externa a un bloque de texto cuya fuente ya ha cambiado, no basta con especificar el estilo en sus propiedades avanzadas. También necesitas restablecer formato actual. Para hacer esto, seleccione el texto y haga clic en el botón "Eliminar formato" en el bloque de edición de texto.

Tenga en cuenta: esto restablecerá cualquier cambio que haya realizado en el tamaño, estilo de fuente, alineación, etc.

Luego podrá volver a especificar el tamaño, la alineación y otros atributos.

Si bloque de texto en la página de destino se crea por primera vez y no ha cambiado su fuente, luego simplemente haga clic en el texto y agregue CSS para la fuente en las propiedades avanzadas del elemento.

9. Guarde los cambios y admire el resultado.

Tenga en cuenta: en el editor LPgenerator, la fuente seguirá siendo la misma; las fuentes adicionales se muestran solo en la vista previa y cuando visita una página de destino publicada.

La matriz LED es un indicador gráfico que se puede utilizar para mostrar imagenes simples, letras y numeros. Nos familiarizamos en detalle con la estructura de los indicadores matriciales en. Entonces quedó claro que agrupar varias matrices no es una tarea fácil. Para cada nueva fila o una columna de matrices, debe agregar un nuevo registro de desplazamiento junto con cables y resistencias y, de manera amistosa, también un microcircuito ULN2003.

Afortunadamente, los ingenieros han desarrollado durante mucho tiempo chips especializados para gestionar diversos tipos de indicadores. En este tutorial veremos el módulo de matriz con el chip MAX7219. Como quedará claro más adelante, trabajar con un módulo de este tipo es un placer.

1. Módulo de matriz LED con chip MAX7219

El módulo es una placa con un microcircuito, el cableado necesario para ello y, de hecho, un indicador matricial. Por lo general, el indicador no está soldado a la placa, sino que se inserta en el conector. Esto se hace para que primero se pueda fijar un grupo de módulos a alguna superficie con tornillos y luego se puedan insertar las matrices en ellos.

Y así es como se ve el módulo con la matriz.

El módulo tiene cinco pines a cada lado. Por un lado, los datos ingresan al módulo, por otro lado, los datos salen del módulo y se transfieren al siguiente. Esto le permite conectar matrices en una cadena.

Conector de entrada:

  • VCC, GND - fuente de alimentación;
  • DIN - entrada de datos;
  • CLK - pulso de sincronización.

Conector de salida:

  • VCC, GND - fuente de alimentación;
  • DOUT - salida de datos;
  • CS - selección de módulo (selección de chip);
  • CLK - pulso de sincronización.

El módulo funciona con un voltaje de 5 voltios.

Conexión

Conectamos el módulo matriz al controlador Arduino Uno según el siguiente esquema:

Matriz de LED 8x8 con MAX7219 VCC Tierra NIC C.S. CLK
ArduinoUno +5V Tierra 11 9 13

Diagrama esquemático

Aspecto del diseño

2. Generar píxeles usando la biblioteca Max72xxPanel

Para controlar el chip MAX7219 usaremos la biblioteca Max72xxPanel. Puede descargarlo desde los enlaces al final de la lección.

Instalemos la biblioteca y escribamos. pequeño programa, que mostrará solo un punto con coordenadas x=3 e y=4. El punto parpadeará con un período de 600 milisegundos.

#incluir #incluir #incluir intpinCS = 9; int númeroDePantallasHorizontales = 1; // número de matrices horizontalmente int numberOfVerticalDisplays = 1; // número de matrices verticalmente Max72xxPanel matriz = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); void setup() ( Matrix.setIntensity(4); // brillo de 0 a 15 ) void loop() ( Matrix.drawPixel(3, 4, HIGH); // ilumina el píxel con la matriz de coordenadas (3,4). write (); // envía todos los píxeles a la matriz delay(300); Matrix.drawPixel(3, 4, LOW // deja en blanco el píxel Matrix.write();

Como se mencionó anteriormente, los módulos matriciales con el chip MAX7219 se pueden combinar fácilmente. Es por ello que al inicio del programa establecemos el número de matrices horizontal y verticalmente. En este caso, se utiliza una matriz, por lo que ambos parámetros serán iguales a 1.

Es importante tener en cuenta que después de activar y desactivar píxeles usando la función dibujarPíxel, necesitas llamar a la función escribir. ¡Sin la función de escritura, los píxeles no se mostrarán en la matriz!

Ahora escribamos un programa que muestre un emoticón del pasado en la matriz. Cifraremos la sonrisa utilizando una matriz de ocho bytes. Cada byte de la matriz será responsable de una fila de la matriz y cada bit del byte será responsable de un punto de la fila.

#incluir #incluir #incluir intpinCS = 9; int númeroDePantallasHorizontales = 1; // número de matrices horizontalmente int numberOfVerticalDisplays = 1; // número de matrices verticalmente Max72xxPanel matriz = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); datos de bytes constantes = (0b00111100, 0b01000010, 0b10100101, 0b10000001, 0b10100101, 0b10011001, 0b01000010, 0b00111100); void setup() ( Matrix.setIntensity(7); // brillo de 0 a 15 Matrix.fillScreen(LOW); // borrando la matriz para (int y = 0; y< 8; y++) { for (int x = 0; x < 8; x++) { // зажигаем x-й пиксель в y-й строке matrix.drawPixel(x, y, data[y] & (1<

Nota. La biblioteca Max72xxPanel tiene una función setRotation, que establece la orientación de la imagen en la matriz. Por ejemplo, si queremos rotar un emoticón 90 grados, necesitaremos llamar a setRotation con los argumentos apropiados inmediatamente después de llamar a la función setIntensity:

matriz.setRotation(0, 1);

el primer parámetro es el índice de la matriz, en nuestro caso es igual a cero; el segundo parámetro es el número de giros de 90 grados.

3. Salida de texto usando Adafruit-GFX-Library

De la misma manera, puede mostrar cualquier otro símbolo en la matriz, por ejemplo una letra. ¡Pero para poder mostrar cualquier letra del alfabeto inglés, necesitaremos definir hasta 26 matrices de ocho bytes en el programa! Esto es muy tedioso y, por supuesto, alguien ya lo ha hecho antes que nosotros.

Además de las funciones para trabajar con gráficos y texto, la popular biblioteca Adafruit-GFX también contiene una base de datos de letras latinas en mayúsculas y minúsculas, así como todos los signos de puntuación y otros símbolos de servicio. El enlace a la biblioteca se encuentra al final de la lección.

Puede mostrar un símbolo en una matriz usando la función dibujarChar.

drawChar(x, y, carácter, color, fondo, tamaño);

Los dos primeros parámetros de la función son responsables de las coordenadas de la esquina superior izquierda del símbolo. El tercer parámetro es el símbolo mismo. El color del símbolo en nuestro caso será igual a 1 o ALTO, ya que la matriz es bicolor. El fondo es 0 o BAJO. Establezcamos el último parámetro "tamaño" en 1.

Escribamos un programa que muestre una por una en la matriz todas las letras de la frase: "¡HOLA MUNDO!"

#incluir #incluir #incluir intpinCS = 9; int númeroDePantallasHorizontales = 1; int númeroDePantallasVerticales = 1; Matriz Max72xxPanel = Max72xxPanel (pinCS, número de pantallas horizontales, número de pantallas verticales); Cinta de cadena = "¡HOLA MUNDO!"; espera interna = 20; void setup() ( Matrix.setIntensity(7); // brillo de 0 a 15 ) void loop() ( for (int i = 0 ; i< tape.length(); i++) { matrix.fillScreen(LOW); matrix.drawChar(0, 0, tape[i], HIGH, LOW, 1); matrix.write(); } delay(wait); }

Nota. La biblioteca Adafruit_GFX tiene muchas funciones para trabajar con gráficos. Por ejemplo, drawCircle(3, 3, 2, HIGH) dibujará un círculo con centro (3,3) y radio 2. El último parámetro es el color, pero en el caso de una matriz monocromática es 1 o HIGH. La función drawLine(0, 0, 3, 6, HIGH) dibujará una línea entre los puntos (0,0) y (3,6).

3. Programa. Línea progresiva en max7219

Para mostrar varias letras a la vez, necesitaremos conectar varias matrices de LED en una cadena. Como se mencionó anteriormente, esto se hace de manera muy simple. El diagrama para conectar seis módulos se verá así.

Diagrama esquemático

Aspecto del diseño

Programa

Crearemos una línea continua cambiando las coordenadas de las letras. Para mostrar la letra en las coordenadas requeridas, usamos la misma función drawChar.

#incluir #incluir #incluir intpinCS = 9; int númeroDePantallasHorizontales = 6; // ahora tenemos 6 matrices horizontalmente int numberOfVerticalDisplays = 1; // y verticalmente, como antes, hay una matriz Max72xxPanel = Max72xxPanel(pinCS, numberOfHorizontalDisplays, numberOfVerticalDisplays); Cinta de cadena = "sitio"; // texto que flotará int wait = 20; // tiempo entre movimientos extremos de letras int spacer = 1; // distancia entre letras int ancho = 5 + espaciador; // tamaño de fuente void setup() ( Matrix.setIntensity(7); // brillo ) 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 && letra >= 0) ( si (letra< tape.length()) { matrix.drawChar(x, y, tape, HIGH, LOW, 1); } letter--; x -= width; } matrix.write(); delay(wait); } }

¡Cargue el programa en el Arduino Uno y observe el ticker!

Tareas

  1. Reloj digital. Montar un circuito de cuatro matrices de LED y un módulo de reloj en tiempo real. Escriba un programa para Arduino que muestre horas y minutos en la pantalla a partir de matrices.
  2. Juego de serpientes. Ensamble una pantalla con una resolución de 16x16 píxeles a partir de cuatro matrices de LED. Implemente un juego tan famoso como "snake" (o "python") en Arduino. Es necesario agregar al circuito cuatro botones para controlar la dirección del movimiento, así como un timbre para señalar el evento de comer manzanas.

Conclusión

Al conectar módulos de matriz en el max7219, puede ensamblar pantallas bastante grandes y usarlas en proyectos Arduino donde se requiere la salida de imágenes brillantes. Las pantallas LED, a diferencia de las de cristal líquido, son resistentes a las bajas temperaturas. Por ejemplo, un teletipo hecho con matrices se puede colocar en el exterior incluso con heladas de 30 grados.

Además de los módulos matriciales de un solo color basados ​​​​en max7219, existen otros dispositivos similares. Por ejemplo, pantallas LED de tres colores con una resolución de 32x16 e incluso 64x32 píxeles. Hablaremos de dichos módulos en las siguientes lecciones y artículos.

Enlaces útiles

1. Biblioteca Max72xxPanel:

2. Biblioteca Biblioteca Adafruit-GFX.

Por fin han llegado los módulos matriciales del Reino Medio. Cada módulo consta de un microcircuito MAX7219 (), una matriz de LED y hay un condensador y una resistencia en el arnés.


Controlado por MAX7219 a través de interfaz SPI.


Los chips del grupo están conectados en serie. Leí en Internet que la conexión en serie máxima posible permite solo 8 piezas MAX7219. No lo creas. Conecté 16 módulos y todo funciona muy bien.

Los módulos presentados en Ali vienen en varias versiones. Los más populares son de 2 tipos: con chip en paquetes DIP y SOIC. El módulo con chip DIP es más grande y no tan conveniente cuando se conecta a un clúster. Habrá un montón de cables para conectar.


Los módulos con un chip en un paquete SOIC tienen el tamaño de una matriz de LED y están conectados mediante soldadura o puentes. Resulta hermoso y ordenado.


Las bibliotecas más conocidas para trabajar con matrices y clusters son Panel MAX72xx de Mark Rice Y Parola de MajicDesigns: la primera biblioteca es más fácil de usar, la segunda es más difícil de usar más oportunidades. Lo describiré con más detalle.

Panel MAX72xx

Cuando se utiliza el Panel MAX72xx, la biblioteca debe estar instalada Adafruit GFX.

Para rusificar el texto necesitarás descargarlo. ESTE ARCHIVO y reemplazar archivo estándar glcdfont.c en el directorio Arduino/Libraries/Adafruit-GFX-Library-master. También en este archivo, además de las letras y números necesarios, se describen varios símbolos de todo tipo. No todos pueden ser útiles. La siguiente imagen explica cómo se forman los símbolos.

Si es necesario, puede crear sus propios símbolos y reemplazar con ellos los que no utilice en el archivo. Casi todas las fuentes de puntos utilizadas en varias bibliotecas, se forman de manera similar.

Entonces, se instalan las bibliotecas MAX72xx Panel y Adafruit GFX y se reemplaza el archivo glcdfont.c. vamos a lanzar IDE de Arduino, abierto ARCHIVO. El boceto contiene la función utf8rus. Proporciona conversión de tablas de caracteres para el idioma ruso. Sólo es necesario para la salida normal del programa, es decir, en el programa el texto requerido está escrito en ruso. Si el texto se ingresa a través del puerto COM, los códigos de caracteres se corrigen en la función Serial_Read. Los desarrolladores utilizaron diferentes codificaciones en el IDE y en la consola.

Al principio del archivo hay líneas necesarias para que funcione la biblioteca.

int númeroDePantallasHorizontales = 1;

int númeroDePantallasVerticales = 16;

Tengo módulos con un microcircuito en un paquete SOIC. Tienen una pequeña peculiaridad. La matriz de los módulos se instala girada 90 grados. Esta es una tarifa por la conveniencia de la conexión. Si ejecuta los bocetos que vienen con las bibliotecas, generarán texto de abajo hacia arriba en cada módulo. El texto aparecerá en zigzags. Para curar esta enfermedad, se debe “decir” a la biblioteca que pantallas verticales 16 (físicamente están ubicados horizontalmente). Y luego, en Configuración vacía, especifique la línea a la biblioteca.

matriz.setRotation(matrix.getRotation() + 1);

Invertirá cada matriz mediante programación. Y todo se mostrará normalmente.

Los módulos con paquetes de chips DIP no tienen esto. Todo es hermoso allí, excepto un montón de cables.

La biblioteca del Panel MAX72xx es bastante modesta. Efectos visuales no hay conclusión. El grupo se percibe como un todo. Las cosas van mucho mejor con el doctor Parola.

Parola de MajicDesigns.

Los propietarios de módulos con un chip en un paquete SOIC también se enfrentarán al problema de orientar los módulos en el clúster. Simplemente se ve un poco diferente que en el MAX72xx. Aquí los módulos parecerán estar fuera de servicio.


Boceto de HelloWorld a partir de muestras incluidas en la biblioteca.

No pude curar esta enfermedad mediante programación en el boceto. Lo traté diferente. En el archivo Adruino/libraries/MD_MAX72xx_lib.h al final necesitas encontrar las líneas como en la imagen.


Y corrija el 1 al 0 resaltado en la línea seleccionada. Guarde el archivo. No es necesario reiniciar el IDE de Arduino. Llenémoslo y echemos un vistazo.


Ahora puedes usar 24 efectos de animación. La animación se inicia con el comando P.displayText("Texto a mostrar", "alineación de texto", velocidad, retraso de visualización, efecto de aparición, efecto de desaparición). Como puede ver, hay bastantes configuraciones.

Y la mejor parte es dividir el clúster en zonas virtuales. Trabajar con zonas no es muy difícil. No publicaré el boceto, está en las muestras que vienen con la biblioteca. Ahora puede mostrar un reloj al comienzo del clúster y un teletipo de noticias en los módulos restantes casi sin ningún problema.

Como ya habrás adivinado, el problema está en las letras cirílicas. También tiene solución. Cerca archivo anterior en el mismo directorio hay un archivo MD_MAX72xx_font.cpp. Este es un archivo de fuente. Los caracteres que contiene tienen una forma similar al archivo de fuentes de la biblioteca GFX. Hay una pequeña diferencia. Aquí el tamaño del símbolo puede ser inferior a 5 puntos. En la biblioteca Adafruit GFX Punto de exclamación, por ejemplo, también tiene 5 puntos de ancho; como cualquier otro símbolo, solo se utiliza una fila de puntos. El resto no se iluminan, sino que se utilizan como símbolo. En Parola, el mismo signo de exclamación también ocupa una fila de puntos, solo que no hay puntos vacíos cerca, pero pueden aparecer símbolos adyacentes. Quedará más claro en la imagen.


Todavía no hay tiempo para agregar caracteres cirílicos al archivo de la misma manera que el archivo de la primera biblioteca analizada. Si alguien hace esto y me envía un archivo, lo agregaré a este artículo y tanto yo como los invitados de mi sitio se lo agradeceremos.

Línea de fondo. La biblioteca MAX72xx Panel de Mark Rice es fácil de usar y comprender, pero tiene una funcionalidad deficiente.

La biblioteca Parola de MajicDesigns es más compleja y sus capacidades son suficientes para casi cualquier aplicación.

13 de enero de 2017 a las 18:15

Rusificación de la biblioteca openGLCD para Arduino

  • Electrónica para principiantes

Escribiendo texto ruso en pantallas gráficas con el controlador ks0108 o sus análogos todavía presenta dificultades importantes. La biblioteca openGLCD, recomendada por los sitios web oficiales de Arduino, en la configuración original de este último en este momento La versión no contiene ninguna. fuentes cirílicas, excepto la fuente cp437font8x8. En la práctica, es de poca utilidad porque en la parte de idioma ruso admite la codificación Win-1251. Por lo tanto, para mostrar caracteres en esta fuente, deben insertarse en el texto como octal o códigos hexadecimales(y al mismo tiempo persisten ambigüedades con letra minúscula“Yo”, como indica el propio creador de la fuente en el comentario), o escríbelo de todos modos función separada recodificación, como lo hizo arduinec para la biblioteca Adafruit-GFX.

Entre otras cosas, cp437font8x8 es demasiado grande para pantallas de 128x64 píxeles. Tamaño óptimo La fuente para las etiquetas de soporte en dicha pantalla sigue siendo System5x7. Aquí nos centraremos específicamente en la rusificación. fuente del sistema, aunque el lector puede utilizar este ejemplo para rusificar de forma independiente cualquier otra fuente (especialmente si tiene una pantalla más grande).

¿Cuál es el problema?

Primero, profundicemos en las raíces del problema. entorno arduino IDE es normal editor de texto Windows, que se ejecuta en la codificación universal UTF-8, como cualquier otro en versiones modernas Windows (Bloc de notas, por ejemplo). UTF-8 es una versión económica de multibyte Codificaciones UNICODE. En UTF-8, los caracteres ingleses, números, puntos, comas, paréntesis y todo tipo de caracteres están representados por un byte, que coincide con la codificación ASCII estándar. Por lo tanto, su representación en el código de boceto no presenta ninguna dificultad: una cadena de caracteres en inglés después de la compilación se transfiere al archivo hexadecimal cargado sin cambios y es comprensible para el controlador de 8 bits, como dicen, "sin traducción".

En el proceso de esta transformación, cada carácter, como en cualquier programa en cualquier lenguaje de programación, se representa directamente en forma de su código, es decir número de serie en la tabla de fuentes, de la que el programa extrae el estilo gráfico del carácter correspondiente. En el archivo de fuente Sistema5x7.h número de caracteres de la biblioteca openGLCD representados por variable font_Char_Count tipo uint8_t, es decir, no puede exceder el tamaño de un byte. Por lo tanto, los caracteres cirílicos, que ocupan dos bytes en UTF-8, no se pueden pasar al controlador de la forma habitual.

Intentos de solución anteriores

Tenga en cuenta que este no fue siempre el caso. Las versiones de Arduino 1.0.x (y, según los rumores, 1.6.0) truncaron el código de dos bytes a un byte, simplemente descartando el byte alto (que para cirílico, como se desprende de la tabla UTF-8 en el enlace de arriba , es igual a 0xD0 o 0xD1). Por lo tanto, para refinar la fuente en estas versiones del entorno, es adecuada la antigua biblioteca GLCD v3, en la que la matriz de fuentes simplemente se complementó con caracteres de letras cirílicas para que sus posiciones coincidieran con el byte bajo de la codificación UTF-8 (bytes 0x80 a 0xBF). Esta modernización se describe con más detalle en el artículo del autor "Trabajar con texto en una pantalla gráfica". Repito: requiere una de las versiones de Arduino IDE 1.0.x junto con la biblioteca GLCD v3, y no sus versiones más modernas.

En las nuevas versiones del IDE de Arduino se ha vuelto cada vez más difícil. La biblioteca se niega resueltamente a comprender los números de caracteres de doble byte y, en su lugar, genera espacios vacíos, por lo que simplemente cambiar la fuente no es suficiente. Tenemos que complementarlo con una función para convertir caracteres de doble byte en caracteres de un solo byte.

Solución

El autor no profundizó funciones de biblioteca y escribió un complemento para openGLCD en forma de función superar(), que itera a través de todos los elementos de la cadena de entrada, pasándolos a través del operador de selección Cambiar. Extrae caracteres cirílicos de una cadena y los reemplaza con códigos de un solo byte correspondientes al archivo de fuente modernizado. Sistema5x7R.h.

Por ejemplo, para la letra mayúscula rusa “F”, la cadena de reemplazo será así:

Caso "F": GLCD.PutChar(0xA4); romper;
Aquí 0xA4 es el byte bajo de la codificación de la letra "F" en UTF-8 (ver enlace arriba). Compilado de acuerdo con esta codificación. archivo nuevo fuente Sistema5x7R.h. En principio, con este enfoque, puede utilizar cualquier codificación de caracteres rusos y cualquier otro glifo que desee insertar en la fuente. Si solo su número total no excede las 128 piezas: desde el comienzo de la tabla hasta el símbolo 0x7F (127 es el último símbolo mesa estándar ASCII) es recomendable dejar la fuente intacta.

Es cierto, un par de libertades con tabla ASCII Me di permiso. El caso es que en la fuente original Sistema5x7.h El icono del grado se sitúa en la última fila de la tabla, ocupando el símbolo 0x80, que en nuestro caso ya pertenece al alfabeto cirílico. Para no violar el orden de construcción de la tabla cirílica de acuerdo con UTF-8, esta línea se elimina del archivo. Y se agrega el ícono de grado en lugar del carácter ASCII “~” (número 0x7E), que de todos modos no se usó para el propósito previsto en la fuente. Pero este reemplazo le permite ingresar el ícono de grado en el texto del boceto directamente desde el teclado en forma de símbolo “~”.

Otra libertad se debe al hecho de que el autor no soporta el cero tachado, algo arcaico de la época de la ATsPU y las pantallas de texto monocromáticas. Por lo tanto, el cero en la fuente modernizada ha sido reemplazado por el glifo de la letra “O”. Quienes se adhieran a principios puristas pueden simplemente eliminar la fuente del archivo. Sistema5x7R.h este inserto (el antiguo glifo del cero tachado queda comentado, su código es 0x30).

En la biblioteca modernizada abiertoGLCD, que puede descargar desde el enlace al final del artículo, se realizó otra corrección: se cambió el orden de conexión de los pines para las pantallas con el controlador ks0108. Se desconoce por qué el autor de la biblioteca eligió este orden (consulte la tabla en el enlace en el sitio web oficial de Arduino). EN versión modernizada La conexión de la pantalla (por ejemplo, se selecciona el popular MT-12864J) se realiza según el siguiente diagrama:

Diagrama de conexión MT-12864J


La resistencia variable R1 se conecta aquí de acuerdo con las recomendaciones del fabricante, y la resistencia R2 sirve para limitar la corriente de retroiluminación si no está conectada a un voltaje de 5 V, sino directamente a una fuente de alimentación de entrada (pin Arduino Vin) con un voltaje más alto.

En la foto se muestra un ejemplo de cómo mostrar el alfabeto ruso mezclado con el latín en la pantalla MT-12864J, así como números y un ícono de grado:


Bosquejo del texto para este ejemplo:

El texto del boceto con la salida del alfabeto ruso.

#incluir //incluye la biblioteca #include //archivo con función para generar letras rusas #include //archivo con códigos de letras rusas void setup() ( GLCD.Init(); //inicialización GLCD.ClearScreen(); ) void loop() ( GLCD.SelectFont(System5x7R); //selecciona la fuente GLCD.CursorTo(0 , 0); //coloca el cursor en la posición inicial //genera líneas mixtas inglés-ruso: outstr("ABC AVGDEZHZIKLMNOP\n"); outstr("PRQ RSTUFHTSCHSHSHYYYYAY\n"); ; GLCD.println("1234567890"); GLCD.CursorTo(19,4); //coloca el cursor en la penúltima posición de la quinta línea GLCD.print("~C"); ;/.,|<>()=-_()\"""); GLCD.CursorTo(4,7); //coloca el cursor en la posición 4 de la línea 8 GLCD.print("MT-12864J"); )


Dado que los archivos con la función super.h y fuente Sistema5x7R.h colocados en el directorio raíz de la biblioteca modernizada, luego se deben colocar enlaces separados a ellos al comienzo del boceto usando la directiva #incluir. Para inscripciones en inglés sigue siendo conveniente utilizar características estándar imprimir/imprimir, pero si necesita un salto de línea en texto ruso, debe especificar explícitamente el carácter "\n".

Puedes descargar la versión corregida de la biblioteca.




Arriba