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

Paso 10: Configuración del ADC

En el bosquejo, escribí una función de inicialización que establece todos los parámetros de la ADC funcionando. Como tiendo a escribir código limpio y comentado, voy más allá de la función aquí. Podemos referirnos a la etapa anterior y a los comentarios para el significado de los registros.

void initADC(void)
{
//---------------------------------------------------------------------
Configuración ADMUX
//---------------------------------------------------------------------
Estos bits seleccione la referencia de tensión para el ADC. Si estos bits
se cambian durante una conversión, el cambio no entrará en vigor
hasta que se complete esta conversión (ADIF en ADCSRA está configurado). El
Opciones de referencia de tensión interna no pueden utilizarse si un externo
tensión de referencia se aplica al pin AREF.
Referencia REFS1 REFS0 voltaje
0 0 AREF, Vref interna apagada
0 1 AVCC con condensador externo al pin AREF
1 reservado 0
1 1 referencia de tensión interna 1.1V con externo
condensador al pin AREF
CBI(ADMUX,REFS1);
SBI(ADMUX,REFS0);
La broca ADLAR afecta la presentación de los resultados de conversión ADC
en el registro de datos del ADC. Escribir a ADLAR izquierda ajustar la
resultado. De lo contrario, el resultado se ajusta bien. Cambiar el ADLAR


poco va a afectar el registro de datos ADC inmediatamente, independientemente de cualquier
conversiones de curso.
SBI(ADMUX,ADLAR);
El valor de estos bits selecciona qué entradas analógicas están conectados a
el ADC. Si estos pedacitos se cambian durante una conversión, el cambio
no pasará en efecto hasta que esta conversión es completa (ADIF en
ADCSRA está establecida).
ADMUX | = (ADCPIN & 0x07);

//---------------------------------------------------------------------
Configuración ADCSRA
//---------------------------------------------------------------------
Escribe este bit permite un ADC. Escribiendo a cero, el
ADC está apagada. Apagar al ADC al mismo tiempo una conversión es en
progreso, terminará esta conversión.
CBI(ADCSRA,Aden);
En el modo de conversión individual, escribir este bit a uno para empezar cada uno
conversión. En el modo de marcha libre, escribir este bit a uno para iniciar la
primera conversión. La primera conversión después de que se ha escrito la ADSC
después de que el ADC se ha activado, o si ADSC está escrito en el mismo
tiempo como el ADC está habilitado, tendrá 25 ciclos de reloj del ADC en vez de
normal 13. Esta primera conversión realiza la inicialización de la
ADC. ADSC leerá como una como una conversión está en curso.
Cuando la conversión haya finalizado, vuelve a cero. Cero de la escritura
este bit no tiene ningún efecto.
CBI(ADCSRA,ADSC);
Cuando este bit está a uno, Auto activación de la ADC es
habilitado. La ADC iniciará una conversión en un borde positivo de la
señal de disparo seleccionado. La fuente del disparador se selecciona mediante el establecimiento de
los bits ADC disparador seleccione, articulados en ADCSRB.
SBI(ADCSRA,ADATE);
Cuando este bit se escribe uno y el-bit en SREG es establecido, el
Se activa interrupción completa del conversión ADC.
SBI(ADCSRA,Adie);
Estos bits determinan el factor de división entre el reloj del sistema
frecuencia y al reloj de entrada para el ADC.
ADPS2 Factor de división ADPS1 ADPS0
0 0 0 2
0 0 1 2
0 1 0 4
0 1 1 8
1 0 0 16
1 0 1 32
1 1 0 64
1 1 1 128
SBI(ADCSRA,ADPS2);
SBI(ADCSRA,ADPS1);
SBI(ADCSRA,ADPS0);

//---------------------------------------------------------------------
Configuración de ADCSRB
//---------------------------------------------------------------------
Cuando este bit se escribe lógica uno y el ADC está desconectado
(ADEN en ADCSRA es cero), el ADC multiplexor selecciona la negativa
entrada para el comparador analógico. Cuando este bit se escribe lógica cero,
AIN1 se aplica a la entrada negativa del comparador analógico.
CBI(ADCSRB,ACME);
Si uno, el valor de estos bits se escribe ADATE en ADCSRA
selecciona la fuente que activará una conversión ADC. Si es de ADATE
autorizado, la configuración de ADTS2:0 no tendrá efecto. Una voluntad de conversión
ser desencadenada por el borde de levantamiento de la bandera de interrupción seleccionado. Nota
que la conmutación de un desencadenador de la fuente se borra a un gatillo
fuente que se encuentra, va a generar una ventaja positiva en el gatillo
señal. Si es ADEN en ADCSRA, con esto iniciará una conversión.
Cambiar al modo de funcionamiento libre (ADTS[2:0]=0) no causa un
acontecimiento del disparador, incluso si se encuentra la bandera de interrupción del ADC.
Fuente ADTS2 ADTS1 ADTS0 gatillo
0 0 0 modo de marcha libre
0 0 1 comparador analógico
0 1 petición de interrupción externa 0 0
0 1 1 timer/Counter0 comparar partido A
1 0 0 desbordamiento de timer/Counter0
1 0 1 temporizador/Counter1 comparar partido B
1 1 0 desbordamiento de contador de tiempo/Counter1
1 1 1 contador de tiempo/Counter1 capturar evento
CBI(ADCSRB,ADTS2);
CBI(ADCSRB,ADTS1);
CBI(ADCSRB,ADTS0);

//---------------------------------------------------------------------
Configuración de DIDR0
//---------------------------------------------------------------------
Cuando este bit se escribe lógica uno, el digital entrada de buffer de la
correspondiente pin de ADC está deshabilitado. El correspondiente registro PIN
poco siempre leerá como cero cuando este bit está establecido. Cuando un análogo
señal se aplica a la ADC5... pin 0 y la entrada digital de este
PIN no es necesario, este bit se debe escribir lógica para reducir
consumo de energía en el búfer de entrada digital.
Pines del ADC ADC7 y ADC6 dispone de buffers de entrada digitales,
y por lo tanto no requieren desactivar la entrada Digital bits.
SBI(DIDR0,ADC5D);
SBI(DIDR0,ADC4D);
SBI(DIDR0,ADC3D);
SBI(DIDR0,ADC2D);
SBI(DIDR0,ADC1D);
SBI(DIDR0,ADC0D);
}

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