Hace algún tiempo estaba trabajando en un proyecto de Arduino y necesitaba ver si la señal de salida era en cumplimiento de las especificaciones. Así pasé algún tiempo en internet buscando osciloscopios Arduino ya implementado, pero no les gustó lo que encontré. Los proyectos que encontré fueron compuestos sobre todo de una interfaz gráfica de usuario para la computadora escrita en el procesamiento y un sketch de arduino muy simple. Los bocetos eran algo así como:
void setup() {}
Serial.Begin(9600);
}void loop() {}
int val = analogRead(ANALOG_IN);
Serial.println(Val);
}
Este enfoque no está mal y no quiero insultar a nadie, pero esto es demasiado lento para mí. El puerto serie es lento y cada resultado de un analogRead() a través de ella es un cuello de botella.
He estado estudiando digitalizadores de forma de onda desde hace tiempo y sé bastante bien cómo funcionan, por lo que ha inspirado en ellos. Estos fueron los puntos de partida del osciloscopio que quería crear:
- la señal de entrada debe ser disociada de arduino para preservarla;
- con un desplazamiento de la señal es posible ver señales negativas;
- los datos se deberían intermedia;
- un disparador de hardware es necesaria para recoger las señales;
- un buffer circular puede dar la forma de la señal antes de la activación (más para seguir en este punto);
- usando funciones de palanca menor que el estándar que hace que el programa corra más rápido.
El bosquejo para el Arduino se adjunta a este paso, junto con el esquema del circuito que hice.
El nombre que se me ocurrió, Girino, es un frívolo juego de palabras en Italiano. Giro significa rotación y añadiendo el sufijo - ino se obtiene una rotación pequeña, pero Girino también significa renacuajo. De esta manera tengo un nombre y una mascota.