Girino - osciloscopio Arduino rápido (17 / 26 paso)

Paso 17: El núcleo del bosquejo de la escritura

Por fin hemos conseguido que el núcleo del programa!

Como vimos antes, que quería una adquisición continua y escribí el ADC interrumpir el servicio de rutina para almacenar en el búfer circular los datos continuamente. Se detiene cuando alcanza el índice que es igual a stopIndex. El búfer se implementa como circular empleando el modulo operador.

//-----------------------------------------------------------------------------
Interrumpir la conversión ADC completa


//-----------------------------------------------------------------------------
ISR(ADC_vect)
{
Cuando es leído ADCL, el registro de datos del ADC no se actualiza hasta ADCH
es de lectura. En consecuencia, si el resultado quedo ajustado y no más
que se requiere de precisión de 8 bits, es suficiente leer ADCH.
De lo contrario, ADCL debe leerse primero, luego ADCH.
ADCBuffer [ADCCounter] = ADCH;

ADCCounter = (ADCCounter + 1) % ADCBUFFERSIZE;

Si (esperar)
{
Si (stopIndex == ADCCounter)
{
Congelar la situación
Desactivar la ADC y detener el modo de conversión de marcha libre
CBI (ADCSRA, ADEN);

helada = true;
}
}
}

El analógico comparador interrumpir servicio de rutina (que se llama cuando una señal pasa el umbral) deshabilita a sí mismo y le dice a la ISR de ADC para iniciar la fase de espera y establece la stopIndex.

//-----------------------------------------------------------------------------
Interrupción de comparador analógico
//-----------------------------------------------------------------------------
ISR(ANALOG_COMP_vect)
{
Desactivar la interrupción del comparador analógico
CBI (ACSR, ACIE);

Encender errorPin
digitalWrite (errorPin, HIGH);
OSE (PORTB, PORTB5);

esperar = true;
stopIndex = (ADCCounter + waitDuration) % ADCBUFFERSIZE;
}

Esto fue muy fácil después de toda esa tierra!

Artículos Relacionados

¿Scintillino - un basada en Arduino rápido y sucio contador de centelleo,

¿Scintillino - un basada en Arduino rápido y sucio contador de centelleo,

te has preguntado acerca de los niveles de radiación alrededor de usted? Bueno hoy puedes construir tu propio detector que mide las radiaciones ionizantes y muestra datos en tiempo real en una pantalla LCD (y también tu ordenador si quieres).El diseñ
Herramienta de línea de comandos "MiniPirate" de Arduino

Herramienta de línea de comandos "MiniPirate" de Arduino

Este de línea de comandos permite el prototipado Arduino "Rápido" sin compilación. Lectura de valores analógicos, dis - habilitar puertos e incluso registro de I2C manipulaciones se realizan en segundos en lugar de minutos. Se muestra cómo estab
Semáforos de Arduino (ORIGINAL)

Semáforos de Arduino (ORIGINAL)

Obtener recursos para el proyectoArduino Uno REV-33 - rojo - amarillo - y verde LEDPaquete de variedad de madera de BalsaProtoboard de 800 puntosCable de conexión de varios coloresCinta invisibleWeller soldadorX-acto cuchilloSharpie negroLoctite Supe
Bumbley - el robot pequeño servo

Bumbley - el robot pequeño servo

Conoce a Bumbley, un poco perdido bot de planeta Teekmar'd - un pequeño mundo que orbita Wolf 359. Bumbley le gusta encontrar buenos escondites y evitar contacto humano a toda costa. Sólo él puede ver en el infrarrojo, así que necesita tu ayuda. Así
Escalera escalada Robot

Escalera escalada Robot

En este instructable les mostraré cómo hacer una escalera muy básica escalada robot. Esto es llevar la escalera que nosotros (mis hijos y yo... ok uno era sobre todo me) construido ServoCity + Actobotics escalera escalador desafío. Resulta que ganamo
Stick2Cane - nunca perder su poca caña

Stick2Cane - nunca perder su poca caña

el problemaEsto es para alguien que tiene problemas de equilibrio, sólo necesita un bastón caminar durante un episodio y físicamente puede caminar lejos de la caña bastante distancia antes de que sea realmente necesario (oops). La idea es instalar un
Construir un Robot cuadrúpedo Actobotics

Construir un Robot cuadrúpedo Actobotics

Cómo hacer un robot a pie 4 patas usando piezas de Actobotics de ServoCity.com:El caballo de batalla de este robot, y lo que hace relativamente fácil de construir, son las servoblocks de Actobotics. Estos ingeniosos componentes le permiten utilizar s
OFFscope - osciloscopio offline (Arduino + SD tarjeta registro rápido)

OFFscope - osciloscopio offline (Arduino + SD tarjeta registro rápido)

Esto no es un osciloscopio de tiempo real!En primer lugar adquirir señal entrando ahorro/lo a la tarjeta SD. Luego revise la señal adquirida en tu PC.Este osciloscopio fuera de línea está diseñado para diagnóstico automotriz sensor. 99% de los sensor
Cómo hacer un osciloscopio de Arduino de bajo costo 16 MHz usando Excel y la pantalla del ordenador a pantalla

Cómo hacer un osciloscopio de Arduino de bajo costo 16 MHz usando Excel y la pantalla del ordenador a pantalla

A menudo un aficionado de electrónica será diseñar y construir algo sólo para encontrar que no se comportan la manera que él o ella prevista. A veces en estas situaciones el problema está relacionado con una señal eléctrica, sino que la materia se mu
Arduino - osciloscopio mejorado del pobre

Arduino - osciloscopio mejorado del pobre

este Instructable continúa el trabajo presentado aquí.  Proporciona una manera rápida y fácil para convertir tu Arduino en un osciloscopio, aunque encontré que estaba falta de usabilidad.  Renovado el software esta mañana para permitir mucho mejor fu
Arduino - osciloscopio multicanal (osciloscopio del pobre)

Arduino - osciloscopio multicanal (osciloscopio del pobre)

presento actualizaciones de software para el osciloscopio de Arduino (del pobre osciloscopio) que permiten para visualizar datos de dos o tres canales simultáneamente. Las principales características son idénticas al original osciloscopio con la exce
Arduino alta velocidad osciloscopio con interfaz de PC

Arduino alta velocidad osciloscopio con interfaz de PC

Usar el Arduino y el PC como un Osciloscopio rápido.Arduino puede recopilar confiablemente lecturas de voltaje a una frecuencia de entre 141 y 153 kilociclos.lecturas de datos de 1000 pueden tomarse en alrededor 6.8ms.Lo transferido a un PC, estos pu
Cómo dibujar en un osciloscopio con Arduino!

Cómo dibujar en un osciloscopio con Arduino!

En primer lugar, permite repasar algunos conceptos básicos. Un osciloscopio es una herramienta para la visualización de cambio de señales eléctricas.Osciloscopio: oscilación (cambiante), alcance (ver). Juntos hacen "osciloscopio".Un osciloscopio
Laboratorio de creación de un prototipo de portátil con osciloscopio y arduino

Laboratorio de creación de un prototipo de portátil con osciloscopio y arduino

Hola todos ya estoy de regreso, con un nuevo proyecto. Yo estaba tranquilo con mi maravillosa hija recién nacida (apenas 7 semanas de edad) cuando empiezo a escribió esto es 00:00 en Alemania y mi hija está durmiendo por fin encontré tiempo para pres