Cómo obtener una función de micros() de Arduino con 0.5us precisión

Me encanta la programación del microcontrolador Arduino, y regularmente lo utilizo en la investigación aeroespacial, así como en proyectos de viviendas. Como trabajo en mi casa muchos proyectos, sin embargo, con frecuencia encuentro yo que necesitan un temporizador muy preciso. Esto es porque mi enfoque de proyectos de viviendas alrededor de aviones de Radio Control (RC), manía del RC comunicación señales y señales de sincronización. Estas señales de comunicación de RC se llaman PWM (Pulse Width Modulation) y PPM (modulación de posición de pulso). En las señales, una desviación de palo completo en una sola dirección, de un transmisor de radio portátil, generalmente corresponde a ~ 1000us (microsegundos), y una desviación de palo completo en la dirección opuesta corresponde a ~ 2000us.

Para medir el tiempo en estas señales, primero utilicé la función micros()de Arduino, en conjunto con interrupciones externas. La función incorporada de micros() de Arduino es bueno, pero no lo suficientemente bueno para mis necesidades. Tiene una precisión de 4 (ver aquí). Esto significa que si estoy leyendo en una señal PWM que conozco es exactamente 1500us (posición centro-stick de un transmisor hand-held), que vería las lecturas de 1496 1504, 1500 e incluso a veces 1492 o 1508us. Esto es demasiada desviación.

So... Miré y miré y busqué una solución. La única solución que pude encontrar utiliza Timer1 del microcontrolador Atmega328, que es inaceptable para mis necesidades, porque entonces pierdo el uso de la biblioteca de servodel Arduino. Por lo tanto, decidí hacer una tonelada de la lectura y bajar a las entrañas del microcontrolador, directo a temporizadores de Atmel y escribir mi propia función de temporizador.

De este esfuerzo nace mi Timer2_Counter "biblioteca", que proporciona funciones que puede usarse en lugar de la función micros(), y que proporcionan una precisión de 0.5us, que es mejor que la función de micros() 8 x!

Para obtener información más detallada en mi código, así como la última versión del código, incluyendo una lista completa de sus funciones, consulte mi artículo aquí:
Función de micros() de Arduino con 0.5us precisión - con mi Timer2_Counter "Biblioteca".

Artículos Relacionados

Obtener una vista de ojo de pájaros con [HACK, impresión 3D o DIY]

Obtener una vista de ojo de pájaros con [HACK, impresión 3D o DIY]

Empecé a hacer proyectos aquí en instructables me di cuenta de su más fácil para mí hacer un video en lugar de hacer una guía paso a paso. Pero el problema es no tengo cámara réflex digital o un trípode, pero tengo un teléfono con una cámara buena. ¿
Cómo obtener una cantidad ilimitada de DS Juegos para tu DS 3

Cómo obtener una cantidad ilimitada de DS Juegos para tu DS 3

En este instructable mostraré cómo obtener una cantidad ilimitada de DS juegos por el precio de $20-$30. Todo lo que necesita es un chip R4 (que voy a explicar qué es y cómo obtenerlo), una tarjeta Micro SD (viene con el R4, aunque si quieres más jue
Cómo obtener una voluminosa cola de caballo

Cómo obtener una voluminosa cola de caballo

Por favor vea el video a continuación para saber cómo obtener una voluminosa cola de caballo :)Paso 1:
Obtener una actualización gratuita a primera clase

Obtener una actualización gratuita a primera clase

Obtener una actualización gratuita a la primera clase no es fácil, que has pagado para la primera clase no quieren un desaliñado nadie montar a caballo libre cuando tenían que pagar.Debido a esto los asistentes llegadas no darán actualizaciones grati
Obtener una cámara lenta de épica 1000fps para $150! y consejos de uso!

Obtener una cámara lenta de épica 1000fps para $150! y consejos de uso!

Ahora streaming arte, diseño y juegos de azar en Contracción viven! a seguir sería increíble y me encantaría hablar con usted! ^. ^- http://www.Twitch.TV/soulis_greyEn este Instructiable le mostrará una cámara (Casio ZR200) que se puede comprar por $
Obtener una gran cantidad en Ebay

Obtener una gran cantidad en Ebay

Ebay puede ser un lugar fascinante y maravilloso a la tienda, sin embargo existen muchos consejos y trucos que usted debe saber antes de adentrarse en este mercado en línea. Aprender buscando y haciendo una oferta métodos que hacen seguros que consig
Cómo obtener una tarjeta de la biblioteca de San Francisco

Cómo obtener una tarjeta de la biblioteca de San Francisco

Libros gratis! Películas gratis! Música gratis! Clases gratuitas y eventos! Conocimiento libre!¿Donde? En su biblioteca pública local por supuesto.Un montón de recursos están disponible si solo vestidor, pero para poder tomar cosas Inicio o utilizar
Cómo obtener una tarjeta de la biblioteca en Boston

Cómo obtener una tarjeta de la biblioteca en Boston

bibliotecas son sorprendentes. Puede has olvidado esto en algún momento de su escolaridad, cuando una agotadora visita sustituye cualquier recuerdos que usted puede haber tenido de cuentos en el preescolar. Le insto a pensar de nuevo. Hay libros, pel
Para obtener una ilimitado en templo ejecución

Para obtener una ilimitado en templo ejecución

Hola chicos hoy voy a mostrarte cómo obtener una unlimided en la famosa del juego Temple Run!Paso 1: Opciones > Tutorial En el menú principal, ir a opciones y el tutorial para el.Paso 2: jugar El juego.Paso 3: Tirada ilimitada Cuando se trata del pun
Crear una función de catálogo de bosquejo

Crear una función de catálogo de bosquejo

un catálogo es un boceto o característica que puede ser insertado en un modelo con un solo comando predefinido. La variación del bosquejo de la función de catálogo permite insertar un dibujo totalmente dibujado, limitado y acotado.Aunque las ecuacion
Cómo tomar la derivada de una función simple de

Cómo tomar la derivada de una función simple de

Los derivados son un elemento fundamental en el cálculo. Te dan la pendiente de una recta. Pueden ser realmente muy útiles. Hoy en este tutorial, yo se manifestarán como tomar la derivada de una función simple.Paso 1: Identificar los diferentes térmi
Cómo obtener una vasectomía

Cómo obtener una vasectomía

que se trata de una introducción sin dolor para el proceso de obtener una vasectomía. Una vasectomía es una empresa seria y debe ser considerada irreversible. Cualquier gafas dignas fotos estará vinculadas para el visor de repuesto.Paso 1: Visite a s
Crear una función en MATLAB

Crear una función en MATLAB

MATLAB es una herramienta que los ingenieros y otros profesionales pueden utilizar rápida y eficiente analizar datos, realizar cálculos y Mostrar información. Una de las muchas maneras que el usuario puede interactuar con MATLAB es a través del uso d
Obtener una aplicación de pagada gratis en la App Store

Obtener una aplicación de pagada gratis en la App Store

Hola. Voy a mostrarte cómo obtener una buena app pagada gratis.Para ello, se necesita-Un iPhone / iPad / iPod-A cuenta de Facebook-iTunes** Actualización **La aplicación gratuita ha cambiado a Bejewled. La aplicación gratuita cambia cada mes.Paso 1: