Tabla de contenido:

Arduino-Osciloscopio: por qué funciona: 4 pasos
Arduino-Osciloscopio: por qué funciona: 4 pasos

Video: Arduino-Osciloscopio: por qué funciona: 4 pasos

Video: Arduino-Osciloscopio: por qué funciona: 4 pasos
Video: Osciloscopio con arduino, frecuenimetro y generador de funciones. Por menos de 3€ 2024, Diciembre
Anonim
Image
Image

Hace unos años, me estaba metiendo en la electrónica y estudiaba los principios básicos. Descubrí que un osciloscopio es la herramienta que te ayuda en casi todo. Ahora que entendí eso, me propuse aprender los principios básicos del funcionamiento de un osciloscopio, después de unos meses, pensé, bueno, un osciloscopio se puede implementar en un microcontrolador si me pongo en un punto de aprendizaje de perspectiva. Por qué un microcontrolador, porque tenía todas las cosas necesarias para construir uno, como un ADC para recibir una señal (pero sin control frontal), tenía puertos GPIO que podían usarse para muchos propósitos, también tiene una CPU aunque mansa! (Estaba pensando en un arduino).

Comencé investigando sobre osciloscopios arduino que eran buenos y muy buenos, pero me hubiera gustado un código más simple, fácil de modificar y entender. Justo cuando estaba buscando, encontré la base del código actual en los foros de arduino de 'vaupell'. Comencé a modificarlo, a comentarlo y a limpiar el material para hacerlo más legible. El código original es de Noriaki Mitsunaga.

Así que veamos cómo configurar el hardware y el software y cómo usarlo.

Todavía tengo que empezar a escribir la explicación del código en la wiki de GitHub. si tiene algo de tiempo libre, eche un vistazo.

! - Este proyecto no detalla cómo hacer un osciloscopio, sino que le muestra cómo puede usar un microcontrolador simple para emular el comportamiento de un osciloscopio del mundo real para comprender cómo funciona un osciloscopio.

Paso 1: conozca su hardware

Conociendo su hardware
Conociendo su hardware

El objetivo de este proyecto es proporcionar una idea del funcionamiento de un alcance. Por esa razón elegí la plataforma de hardware más simple y popular arduino. El código se puede ejecutar en un arduino uno o un arduino mega, donde se prefiere este último porque tiene más pines libres y accesibles cuando se instala una pantalla en él.

Entonces, en este proyecto usaré un arduino mega (2560).

El siguiente componente es la pantalla. Esta configuración utiliza un protector táctil arduino TFT de 2,5 pulgadas (el ID del controlador es 0x9341). Esto brinda la capacidad de mostrar múltiples canales en la pantalla que se distinguen entre sí.

Eso es todo al respecto. Sin embargo, este alcance es muy limitado en sus capacidades, así que no lo empuje al límite. Algunas cosas específicas de las que preocuparse son;

el arduino ADC no puede manejar voltajes por encima de 5 voltios muy bien y tampoco puede manejar voltajes por debajo de 0 voltios. Por qué, porque así está diseñado.

adquirir datos de múltiples canales simultáneamente reduce la frecuencia de muestreo efectiva de un solo canal porque las muestras se toman alternativamente de los múltiples canales.

la frecuencia de muestreo es muy baja (para la adquisición de un solo canal puede llegar hasta 10kSps, pero con dos canales cae a 5kSps / canal). Esto se puede mitigar configurando la frecuencia de referencia ADC (configurando el prescalar) a un valor más bajo. Sin embargo, esto tiene sus propios problemas de mala resolución.

Además, no olvide una computadora para cargar el código en el arduino.

Paso 2: configuración

Configuración
Configuración
Configuración
Configuración

La configuración es muy sencilla;

Conecte el protector de pantalla al Arduino Mega para que los pines de alimentación en ambas placas se alineen.

conecte la placa a la computadora con un cable USB.

Abra el IDE de arduino y agregue la biblioteca de pantalla TFT SPFD5408 (0x9341), si aún no está presente.

Ahora cargue el archivo de código de github al Arduino.

GitHub - Arduino-Osciloscopio

¡Ahí tienes!. Puede jugar con el código configurando los canales 8 (ch0) y 15 (ch1) en ON u OFF en la sección de configuración del canal de código. Puede cambiar la variable de tasa a un valor de la matriz de tasas para establecer el tiempo / división del alcance. Puede establecer el tipo de disparador en automático o sencillo en la sección de disparador del código.

El siguiente paso muestra un acelerómetro ADXL335 de 3 ejes alimentado y leído por el Arduino-Osciloscopio, como se ve en el primer video.

Paso 3: Ejemplo: lectura del acelerómetro ADXL335

Ejemplo: lectura del acelerómetro ADXL335
Ejemplo: lectura del acelerómetro ADXL335
Ejemplo: lectura del acelerómetro ADXL335
Ejemplo: lectura del acelerómetro ADXL335
Ejemplo: lectura del acelerómetro ADXL335
Ejemplo: lectura del acelerómetro ADXL335

Encienda el módulo acelerómetro desde 5V DC y GND de la placa arduino en el extremo derecho en la parte superior e inferior. Ahora conecte el pin x-out del módulo adxl335 al pin A8 de la placa arduino como se puede ver en las imágenes. si el eje x del acelerómetro apunta hacia abajo, la línea de datos en la pantalla del osciloscopio se desviará de cero ya que el módulo adxl leerá la aceleración debida a la gravedad. intente agitarlo en la dirección x como está marcado en el tablero adxl, los picos aparecerán en la pantalla.

Para obtener más información sobre el alcance y su funcionamiento, consulte la Wiki de GitHub

Paso 4: ¿Contribuir?

Si desea contribuir a la documentación de la wiki, es más que bienvenido. El osciloscopio es un equipo fantástico y creo que es una buena herramienta STEM.

Actualmente estoy trabajando en una pequeña interfaz con un PGA ficticio y un control de compensación y agregaría un control para el tiempo / div y tal vez leyendo señales de CA de bajo voltaje.

Recomendado: