📈 Cómo graficar datos en un display OLED SSD1306 I2C y Arduino fácil
HTML-код
- Опубликовано: 9 сен 2024
- IMPORTANTE LEER 👇👇👇👇👇👇👇
Visita la pagina de este proyecto con el código y la información completa : www.aquilesvae...
Hola amigos hoy les traigo un ejemplo que les puede servir de inspiracion para sus proyectos con Arduino. Se trata de un sencillo código para desplegar una gráfica de un voltaje variable entre 0 y 5v muestreado por la entrada analógica A0 de la tarjeta Arduino UNO o NANO.
Usamos un OLED SSD1306 I2C de 0.96" suficientes para desplegar información dinamica en una resolución de 128x64 pixeles. La comunicación I2C usa un puerto para reloj y uno para datos, lo cual hace mas fácil de implementar.
Para la demostración usaremos un potenciometro de 5K como divisor de tensión. La escala graduada en el display nos muestra como varia el voltaje en el tiempo y en la parte inferior se despliega el valor calculado del voltaje que ingresa al puerto A0 y el tiempo en milisegundos que tarda en procesar y mostrar el dato en la pantalla.
Este gráfico al estilo del "serial plotter" se desplaza continuamente de derecha a izquierda, muy útil en todo tipo de aplicaciones relacionada con el seguimiento de sensores e instrumentación. Te dejo los comentarios en el código para que puedas adaptar a tus necesidades el programa.
Aquí puedes descargar el proyecto + el diagrama:
raboninco.com/7H1a
Tambien esta disponible en mi web: www.aquilesvae...
Si deseas saber mas de como desplegar imágenes y cambiar las fuentes del texto te recomiendo estos vídeos:
✅ Cómo usar display OLED SSD1306 de 0.96" con Arduino UNO fácil ⚡
• ✅ Cómo usar display OL...
💎 Cómo hacer un contador (Pulsador + Arduino UNO + OLED display)
• 💎 Cómo hacer un contad...
Muchas gracias por subir el video, estaba buscando como construir una gráfica, para una estación metereológica.
Me resultó de mucha ayuda.
Saludos desde Argentina.
Saludos Roberto, me alegra que fue de ayuda.
EXCELENTE AMIGO
Te rifaste pa, gracias
Muchísimas gracias!
Buenisimo,
Excelente video, me animaré a comprar la pantalla y el Arduino, aunque tengo el atmega mini
Claro te sirve saludos
Hola que tal?; super efectivo, gracias
Saludos desde Colombia, me alegra que haya sido de ayuda 👍👍
Muchas gracias, me faltaba un culear :p
En qué aplicación hace el diagrama de conexiones? Apenas me estoy iniciando en Arduino. Gracias.
"Aquí les va esa"...🤣
Saludos Emilio el programa se llama fritzing.
@@AQUILESVAESA gracias, ya empecé a usarlo. Saludos!
Hola puedes hacer uno para la OLED con SH1106
SHOW 😮
ando buscando información sobre como graficar en una pantalla oled lo datos de un sensor el cual tambien se comunica por I2C, sabes si este codigo pueda ser de ayuda o tal vez que debo modificar?
cómo codificastes la imagen que aparece al inicio del led? ya viene por defecto, así? o hay algun sitio que te ayuda a generarla?
Aquí explico como se hace: ruclips.net/video/3P77CKD4WQY/видео.html
Hola, que buen trabajo. ¿Como puedo modificarlo para que registre/grafique por más tiempo?... un día por ejemplo, gracias
Hola Jorge, si solo necesitas desplegar datos diarios puedes utilizar el delay opcional. El código puede mostrar mas de 100 valores por pantallazo. Si deseas respaldar los datos puedes añadir un modulo de memoria microSD y guardarlos ahí.
no me deja descarga nada de es link
pura publicidad me sale
Aquí está todo www.aquilesvaesa.com/2020/04/como-graficar-datos-en-un-display-oled.html?m=1
Que buen tutorial, sin embargo esto de entender los códigos no lo comprendo de manera precisa, en el ejemplo de este código había una imagenes.h, que en un principio no funcionaba pero lo puse en una pestaña nueva y sirvió. Bien ahí Aquiles. Sin embargo me gustaría integrarlo a un proyecto que tengo de un oscilador fm con una librería mozzi, como puedo mostrar los cambios del potenciómetro en el display
El código que está en imagenes.h es la imagen del inicio esta codificada gracias a un programita que les deje en la carpeta. En cuanto a usarla con la librería mozzi (una de mis favoritas :D) aun no he probado si al incluir el display genera fallas en la síntesis de audio. Quiero probarlo también solo necesito algo de tiempo. Porfa si tu lo pruebas cuéntame como te va el audio.
@@AQUILESVAESA ni idea verá, yo hago sonidos, ruidismo y cosas de esas, y eso de la síntesis sonora me llama la atención, estudié fue biología, pero lo de las música y las artes se me da mejor que la biología, en fin. En uno de los ejemplos, mi nivel es alterar ejemplos, pero nada que la pilló, en fin, el caso fue que use un ejemplo de moZZI EL CUAL en vez de usar un ldr, usé un potenciómetro, y luego le hice una vaina "gate" para poderlo controlar con el gate de un Sequenciador, el caso es que me imagino haciendo mis ondas sonoras y ver en la pantallita figuras que cambien, cuando uno mueve la perilla, reemplazar los prácticos números por figuritas bolitas triángulos y entonces no poner rayitas sino triángulos y guevaditas, todo por hacerlo entretenido.
Buen trabajo.
Por favor podrías hacer lo mismo con una pantalla QVGA 2.2 TFT SPI 240X 320 de adafruit?
Algo como este tutorial
www.naylampmechatronics.com/blog/26_Tutorial-pantalla-TFT-t%C3%A1ctil-con-Arduino.html
Tiene un trazador de curvas pero se resete cada que acaba el trazado y se ve un parpadeo muy horrible
Me gustaría saber si se podría hacer la gráfica para el muestreo de voltaje mas amplio, como 24V
Si es posible. Recuerda que solo puedes medir valores positivos de voltaje. Si deseas medir de 0 a 24v debes usar un divisor de tensión con 2 resistencias para que cuando conectes los 24 al divisor al puerto le caigan 5v. En el mercado ya hay una tarjeta para Arduino llamada sensor de voltaje para
Buen dia tu programa esta genial te luciste, tengo una pregunta m podría ayudar? No m enciende el led ni un solo carácter, sera q m vendieron o lo quemé sin darme cuenta?? Algo q m podrias orientarme?
Hay que tener cuidad de no no aplicar voltaje inverso por que las daña. Estas pantallas pueden tranajar con 3.3v y 5v sin problema. Revisa que sea el mismo modelo del video ya que hay versiones con mas pines y diferente protocolo de comunicación. Saludos.
@@AQUILESVAESA ya hice la prueba y fue la alimentcion, con 5v no me funcionaba pero con los 3.3 si, y gracias amigo
Hola, muchas gracias por el video! Me preguntaba si el mismo código tmb podría funcionar para una Oled de 1.3" o tendría que hacerle alguna modificación?
Funciona igual, pues creo que la de 1.3" a la que te refieres tiene la misma resolución
depende, yo si tuve que cambiar al sh1106
buenas, quisiera hacer una consulta, soy principiante en esto y quería saber si se puede hacer un circuito similar con bluetooth y que se conecte con Escaner automotriz ELM327 OBDII y que en la pantalla muestre ese tipo de graficos, ¿es posible hacer eso?
Amigo creo que es más fácil que le conectes una tablet por Bluetooth al escáner
se puede aplicar a un esp8266 con oled incluida
Saludos si, solo debes configurar correctamente la pantalla en el código.
Que buen tutorial me suscribí y estoy mirando este vídeo, seria posible hacer este mismo código para una OLED SSD1306 LCD 1.3" I2C? gracias, creo que cambia por las dimensiones de la pantallas que pasa de 0.96" a 1.3". Gracias y éxitos
No cambia, por lo general el OLED SSD1306 de 0.96 y el de 1.3" tienen la misma resolución de 128x64. Saludos...
Tengo un error en imagen .h como puedo solucionarlo ya que me marca error en esa linea
www.aquilesvaesa.com/2020/04/como-graficar-datos-en-un-display-oled.html?m=1
¿Que difencia tienen las oled de 8 pines con respecto a las de 4 pines que sale en el video? Y en que cambiaria el esquema electrico? es que no me sale el proyecto. Un saludo.
las de 8 tienen comunicación SPI y las de 4 I2C
Muy buen video , se podría adaptar el programa para un 2.2 TFT spi 240x320???
Si claro aunque pienso usar unos TFT miniatura para usar diferentes colores y trazar varias gráficas al tiempo.
Hola como estas muy buen video. un consulta se podria graficar en una pantalla de 20x4 i2c de arduino? muchas gracias
Pues no se vería muy bien creo q hay una librería para eso pero con lo baratos que son los oled no vale la pena usar un display de texto
A mi me sale el error ''Error compilado para la tarjeta Arduino Uno''
''Exit Status1''
Ya cargué las librerias pero no me las marca de color, y cuando quiero compilar me sale este error, alguna ayuda para solucionarlo?
intenta con el arduino ide beta 2.0
Hola .. no tengo idea de arduino soy novato .. me gustaria saber si ese arduino se puede conectar a un variador de velocidad de un auto a control remoto ... y hacer un velocimetro como los que tienen los autos de verdad... es para poner en el auto radio control .. se podra hacer ??? Yo tengo un arduino nano y una pantalla del mismo porte que la que aparce en el video
Próximamente haré un medidor de revoluciones para motores. Saludos.
buenas e.e
una pregunta, es posible graficar la señal de dos potenciometros a la vez?
he intentado con una segunda orden usando for, declarando dos nuevas matrices sin embargo, a la hora de poner el segundo for y compilar la pantalla se queda congelada
gracias de antemano
Si es posible, próximamente voy a dejarles el código
Amigo, el código también podría funciona con algún potenciómetro deslizable?
Si claro. Es el mismo principio, pruébalo que vas a la fija.
@@AQUILESVAESA AMIGO, ESTOY USANDO UNA PANTALLA DE 1.3 HE ESTADO VIENDO VIDEOS, YA CAMBIE LIBRERIAS, MODIFIQUE EL CODIGO; LA VERDAD SOY NUEVO EN ESTO; ME PODRIAS AYUDAR PARA MODIFICAR EL CODIGO
la libreria imagenes de donde se descarga
Visita mi web ahí esta toda la info: www.aquilesvaesa.com/2020/04/como-graficar-datos-en-un-display-oled.html
Funciona con un potenciómetro de 5k?
Si claro
Hola, como estas?. Tu codigo esta genial.
sabes, estoy trabajando con tu codigo y modificando para mostrar los valores de una matriz en la pantalla OLED, pero no tengo suerte, no logro optener nada.
tabla[100]= {59, 59, 59, 59, 59, 59, 59, 59, 59, 60, 65,72, 79, 87, 93, 97, 98, 93, 85, 76, 67, 60, 59, 59, 59, 59, 59, 59, 59, 59, 57, 50, 40, 32, 30, 51, 95, 149, 202, 241,
255, 245, 221, 187, 147, 105, 65, 32, 9, 0, 43, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 61, 66, 75, 84, 94, 102, 107, 108, 104, 97, 88, 78, 69, 63, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59, 59 };
En lugar de leer los valores del pin A0, hago un contador para leer los valores de mi matriz.
int c = 0;
if(c == 99) c = 0; //contador de las 100 muestras del ecg
else c = c + 1;
b = tabla[c];
b = map(b, 0, 255, 53, 0);
x[127]=b; //asigna el valor escalado a el ultimo dato de la matriz
for(int i=127;i>=25;i--)
{
display.drawPixel(i, x[i], WHITE); //dibuja punto a punto el contenido de x
y[i-1]=x[i]; //guarda la informacion desplazada una posicion temporalmente en y
}
pero no grafica nada. Tienes algun concejo que me puedas dar?
Saludos, eres genial!!
la tabla debes declararla como una matriz de enteros