Hooola!
Como saben los displays son una excelente manera de trasmitir información del sistema a un usuario humano
Un modulo que podemos usar como pantalla es el SSD1306, para poder usarlo, tenemos que entender como es que funciona
Comandos de la librería
Como mandar los comandos desde el codigo
Su diagrama de flujo de como es que se debe de iniciar
Comandos con líneas de código para seguir el flujo de inicialización
Para formar caracteres en pantalla tenemos que pasar un arreglo, el cual segun su valor encendera o pagara los minileds de la pantalla y asi obetener un caracter, aqui el ejemplo con el numero 1 y es por eso que hay una funcion que hace eso
Una vez medio explicado como es que funciona el SSD1306 y que hace el código para que funcione (info mas detallada en el apéndice), ahora si procederemos a empezar a armar nuestro proyecto en MPLAB X
Abrimos un nuevo proyecto con el PIC16F18855, después, abrimos el MCC y no modificamos nada, solo le damos generar para que se nos creen las carpetas básicas necesarias
ahora pegaremos los archivos oled.c y oled.h en la carpeta del proyecto
para agragarl el oled.h al proyecto es clic derecho en la carpeta Header Files del proyecto, y le daremos en Add Existing Item
realizaremos el mismo procedimiento pero ahora en la carpeta Source Files, y ya tendremos que ver cargados nuestros 2 archivos en el proyecto
de igual manera tendremos que adjuntar las librerias i2c.c e i2c.h
Nos diriginos al archivo pin_manager.c ahi buscamos el registro ANSELC, y modificamos su valor a 0xE7, esto para configurar el puerto RC3 y RC4 como digitales
y hasta abajo, tenemos que agregar estas linea de codigo, las cuales son las configuraciones de nuestros puertos de datos y reloj del I2C:
SSP1CLKPPS = 0x14; //RC4->MSSP1:SCL1;
RC3PPS = 0x15; //RC3->MSSP1:SDA1;
RC4PPS = 0x14; //RC4->MSSP1:SCL1;
SSP1DATPPS = 0x13; //RC3->MSSP1:SDA1;
si queremos cambiar los pines de salida, en esta parte es donde se hace
Ahora nos dirijimos a main.c agregamos #include "i2c.h" y #include "oled.h" ahi mismo primero tendremos que mandar llamar a las funciones que nos inicialicen la comunicacion i2c y el modulo Oled
para tener un contador, declararemos una variable decimal y un buffer de tamaño 4 el cual tendra el tamaño sufiente para imprimir los caracteres que queremos
ahora lo que queda es primero mandar nuestro cursor del display a 0,0 y escribir lo que queremos, mover el cursor a 2,10 y mandar a imprimir el valor de nuestra variable, mandar un pequeño delay y si todo salio bien subimos el .hex al pic16f18855, y ya podriamos estar viendo como el contador va subiendo de 0.5 en 0.5
Apandice:
escaner de la clase 10
Comments