|
MicroLCD-128-GMD1 51,00 € El micro LCD(μLCD-128-GMD1) es un módulo compacto y rentable, todo en uno "SMART", pantalla LCD con controlador gráfico integrado que proporciona funcionalidad por si solo a su proyecto con cualquier tipo de microcontrolado...
matias ybalo
20/08/2008 esta bueno el diseño pero devieron hacer mas detallado el fu... Fran jperflo david pilco Ramón Gómez
BricoGeek Noticias![]()
La solución? pues muy fácil: Construirse uno casero! y qué mejor sitio que BricoGeek para descubrir cómo podemos hacernos un pequeño y sencillo osciloscopio para nuestro laboratorio al mismo tiempo que aprendemos a medir señales analógica con una placa Arduino, y todo esto con un presupuesto reazonablemente pequeño. Os dejo a continuación una pequeña guía de cómo hacer un oscilosopio usando una pantalla gráfica LCD a color, una placa Arduino Bare Bone y una photoresistencia LDR para probar el montaje. Video y explicaciones a continuación... Publicado el 20/01/2008 en Electrónica | Comentarios (6)
Video:
int val_read = ((analogRead(0)*5) / 1024.0)
Éste calculo nos devolverá en la variable val_read, un valor entre 0 y 5 voltios que será la tensión sobre la entrada analógica 0. Teniendo en cuenta que nuestro Arduino tiene una resolución de 10bits, el paso más pequeño, o lo que es lo mismo, la resolución mínima será de 5 / 1024 = 0.0048 voltios por paso. Si analogRead nos devuelve por ejemplo un valor de 537 podemos saver que la tensión resultante es de 537 * 0.0048 = 2.57 Voltios (aproximadamente). Visualizando los datos: Ahora que savemos cómo medir el voltaje, debemos mostrarlo por pantalla. La pantalla LCD que he usado es idónea para dicha tarea ya que dispone de su própio controlador y no necesitamos de gran cosa para hacerla funcionar en un instante. Simplemente he dibujado un lienzo o recuadro donde se mostrará la gráfica resultante de la medición adecuando el resultado a las corrdenadas en pixels del área a pintar. Basicamente se trata de hacer un "barrido" de izquierda a derecha con un pequeño bucle FOR y luego variar la coordenada Y en función del resultado de la medición. En un primer moment lo he hecho pintando pixels individuales y el resultado fue instantáneo. Sin embargo, al usar este método, cuando entre una medición y otra hay mucha diferencia de voltaje, se aprecia un espacio vacío entre cada punto y no resulta muy bonito (cuantas más variaciones en menor tiempo, más se aprecia éste efecto). Por lo que he decicido pintar lineas entre cada punto de medición. El resultado es perfecto ya que siempre tendremos una linea continua en la pantalla, genial! Últimas anotaciones Como veis, es un proyecto muy sencillo que apenas me ha llevado un par de horas en tenerlo funcionando. Lo interesante de la cuestión es que como ya he comentado, la placa Arduino dispone de hasta 5 entradas analógicas con lo que podemos aplicar al mismo sistema en todas y asi tener un mini osciloscopio de 5 canales simultaneamente. Por supuesto, la velocidad de medición disminuye, pero no deja de ser interesante. A continuación os dejo el trozo de código del buble principal que se encarga de hacer la medición y de mostrarla en pantalla:
Espero vuestros comentarios! Serkeros serkeros(at)teleline(dot)esEscrito el 29/01/2008 Muy aparente, si señor, te ha quedado muy bien. Sin embargo se me ocurren un par de limitaciones que tiene: en primer lugar, como ya comentas, el límite de 5V de la tensión de entrada. La segunda, que no puede tomar muestras muy rápido debido a que depende de la transmisión serie hacia la pantalla (no he visto el código de las funciones que has hecho, pero supongo que tiran los datos al Tx y Rx del Arduino hacia el procesador de la LCD ¿es así?).
Esto se podría solucionar con un buffer de memoria intermedia, pero ya se complica el tema... A parte de esto, un proyecto cojonudo. Por cierto, ¿por qué no publicas la libreria de funciones OLED_etc. y así vemos más en profundidad como va el tema entre el Arduino y la Pantalla? Sigue así. SRKRS Oscar G. BricoGeekEscrito el 29/01/2008 Hola Serkeros,
Efectivamente no es el mejor osciloscopio del mundo ni es muy usable por el momento, pero e sun proyecto divertido y relativamente fácil de hacer. Como tu bien dices, la limitación de velocidad se encuentra en la transmisión Arduino -> LCD ya que la máxima velocidad es de 115200 bps que es la que uso actualmente. He hecho algunas pruebas con un buffer intermedio para umentar la velocidad de toma de datos en la entrada analógica y la verdad esque ha mejorada bastante. Primero tomo dentro de un bucle unas 300 medicionesy luego las dibujo. Obiamente, se crea un pequeño desfase entre cada 300 mediciones ya que se tarda un tiempo en dibujar en la pantalla, pero por lo menos ahora no consigo ver una onda de más de un flanco al pasar una luz por el sensor! En breve y una vez las tenga bien pulidas, publicaré unas cuentas librerías para Arduino para hacer funcionar unos cuantos modelos de pantallas OLED y LCD. Saludos y gracias por tu mensaje! Oscar G. teo www.thetroubleshooting.comEscrito el 31/01/2008 Un poco de esfuerzo para vencer las limitaciones de este util instrumento. Que bueno que existen soluciones para aquellos que no tenemos para comprar un instrumento como este. yoyo Escrito el 03/03/2008 Obviamente el problema más grave que tiene este proyecto es la falta de un prescaler para poder recibir señales débiles y fuertes. Solucionado esto sería muy importante escribir el software directamente en ensamblador, ya que el C es bueno para un prototipo rápido pero no para algo donde la velocidad sea crítica.
Por otro lado, la transmisión al display puede ser lenta pero para el caso de señales periódicas no sería tan grave. Mientras internamente el procesador pueda formar una imágen rápidamente en RAM, la transmisión a la pantalla puede ser más lenta. Mark Escrito el 07/07/2008 Muy interesante. ¿Hay alguna posibilidad de que usted podría publicar el interfaz de rutinas que usted utiliza para la pantalla a color? Estos podrían encontrar empleo fuera de este proyecto. Sería muy interesados en ver estas.
Mark. (Er. .. probablemente adivinado No me hablen español, por lo que esta es una traducción automática y voy a leer tu respuesta de la misma manera!) Escribe tu comentario: |
|||
