top of page
Adal

MPLAB X 14 Pantalla Oled SSD1306 por I2C

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
















68 visualizaciones0 comentarios

Entradas recientes

Ver todo

Comments


bottom of page