En este proyecto aprenderemos a generar un texto en la LCD y
que empiece a desplazarse hacia la derecha.
Necesitaremos:
- Tener previamente cableada y configurada nuestra LCD CHAR
Custom, que se explica en detalle aquí.
Empecemos:
Primero añadimos la libreria al proyecto
para poder hacer uso de ella, esta
configuración ya se ha explicado en otro proyecto, que se encuentra en detalle aquí.
Luego de esto añadiremos un contador y un PWM, empecemos con
el PWM, añadiremos un reloj y un cero lógico que ira conectado al reset.
El PWM nos genera señales que podemos modificar ampliando o
reduciendo su ciclo útil en el ancho de
banda, para configurarlo damos doble clic y se desplegara una ventana de
configuración.
Podemos ponerle el nombre que nosotros queramos en este caso
lo dejare con el nombre que trae PWM_1
Nos muestra un diagrama de la señal que generara de acuerdo
a nuestras especificaciones.
Podemos generar dos señales diferentes y esta opción se
encuentra en PWM mode, en este caso lo dejare en ONE Output ya que solo
utilizare una salida del PWM.
Nos permite escoger entre dos tipos de resoluciones, de
8-bit y de 16-bit, la diferencia es la cuenta que puede alcanzar, en de 8 bit
puede contar hasta 256 operando 2^8 y el de 16 bit puede contar hasta 65536
operando 2^16.
En donde dice period escribiremos el numero hasta donde
queremos que cuente y automáticamente nos mostrara el periodo que tiene, este
periodo nos muestra el tiempo que se demora en repetir la señal. Este periodo o
tiempo se genera realizando la operación del valor que tiene la cuenta dividido
entre el valor del reloj que llega al PWM y esto nos dará como resultado el
periodo o tiempo, si queremos un periodo o tiempo en especial simplemente
despejamos la cuenta para saber hasta donde tenemos que contar, en caso de que
nuestra cuenta sobrepase el valor de 65536 que sería el máximo del PWM entonces
simplemente modificamos el reloj para así poder obtener el periodo o tiempo que
deseamos, en este caso el reloj que utilizamos fue de 1KHz, este reloj se puede
modificar dando doble clic sobre él, la señal que estamos generando tiene un
ciclo útil de ¼ de segundo prendido y ¼ de segundo apagado, nuestra señal debe
repetirse cada medio segundo es decir cada 500ms, realizando la operación
anterior quedaría 500ms*1k=500, esa es la cuenta que debemos colocar en
periodo, para variar el ciclo útil lo decidimos en CMP value1, como queremos
dejar ¼ de segundo prendido y ¼ de segundo apagado entonces lo ponemos a la
mitad del periodo en este caso de 250, en CMP type1 configuramos si queremos
que primero el PWM arranque con un uno lógico o con un cero lógico en este caso
lo dejaremos empezando en un uno lógico (less sor equal) “menor o igual” en
dead band podemos configurar si queremos más ciclos de reloj pero en este caso
lo dejaremos en la opción disabled, si quieren pueden observar las opciones de
configuración más a detalle en el datasheet, luego aplicamos y damos en OK.
Ahora configuraremos en contador dando doble clic sobre él.
Podemos nombrarlo a nuestro gusto, la resolución es el
número de cuentas que puede alcanzar.
8-bit = 2^8 =256
16-bit = 2^16 =65536
24-bit = 2^24 =16777216
32-bit = 2^32 =4294967296
16-bit = 2^16 =65536
24-bit = 2^24 =16777216
32-bit = 2^32 =4294967296
En el periodo pondremos el número de cuenta hasta el que
queremos llegar, en este caso lo pondré hasta 16 para que el letrero siga
corriendo una vez llegue al borde de la pantalla LCD y empiece a desaparecer.
El número de pulsaciones que deberá identificar nuestro
contador para contar lo generara la señal que produce el PWM, para esto debemos
cablear la salida del PWM a la entrada del contador, el reloj lo podemos
compartir con el PWM y el contador igualmente el cero lógico y deberá quedar
así.
Finalmente procederemos a generar nuestro código en C, tiene
comentarios que explican cada línea al detalle y su respectiva función.
En la línea donde escribimos lo que queremos visualizar
LCD_PrintString (“
Richard ”); debemos
realizar un espacio al principio y luego si comenzar a escribir y al final
dejar varios espacios, ya que si no lo hacemos de esta manera comenzara a dejar
escrito parte del texto en el camino.
La asignación de pines se hace igual que en el proyecto de LCD Custom que esta aquí.
La asignación de pines se hace igual que en el proyecto de LCD Custom que esta
si hacen todo como dije al compilar tendrán 0 errores y 0 advertencias, después de esto, programamos nuestra tarjeta.
Aqui un video demostrativo de lo que hace.
Aqui un video demostrativo de lo que hace.
No hay comentarios.:
Publicar un comentario