Tengo la intención de utilizar un microcontrolador (AVR) para diseñar un sistema que capture un valor de un sensor y almacene los datos a lo largo del tiempo. ¿Cómo hago esto?

La forma más fácil de resolver esto es mediante el uso de un micro controlador de la familia Arduino (uno, mega u otros).

Conecte su sensor al Arduino y elija la interfaz correcta: entrada analógica, I2C, SPI, etc. La interfaz depende de su sensor.

Hay dos formas de registrar datos

  1. Use un protector de tarjeta SD (Easy-peasy). La biblioteca arduino facilita su vida al proporcionar bibliotecas estándar para interactuar con la tarjeta SD.
  2. Escriba una aplicación cliente – servidor que se comunique por serie. Básicamente, el código del servidor en el microcontrolador envía datos a las solicitudes del código del cliente en la computadora. La computadora luego registra los datos. Este enfoque es un poco desafiante pero divertido. El código del cliente debe escribirse usando un lenguaje de alto nivel como MATLAB, java o python.

Tenga en cuenta que usar Arduino le ha facilitado la vida. Si su intención es realizar la tarea, entonces Arduino es la mejor opción, de lo contrario, si desea aprender sistemas integrados, le sugiero que se mantenga alejado de la biblioteca arduino y escriba su propio código.

Creo que querías decir que quieres incorporar un microcontrolador en tu diseño. Usar un microcontrolador para hacer un diseño es un problema bastante mayor en varios órdenes de magnitud.

Lo que está diseñando comúnmente se llama un registrador de datos. Existen muchos dispositivos de este tipo disponibles comercialmente, aunque de ninguna manera debes dejar que eso te impida construir el tuyo propio. Lo que debe hacer desde el principio es identificar los tipos de señales que proporcionan sus sensores y encontrar los micros con los tipos de entrada correspondientes. Muy a menudo, estos requerirán convertidores analógico a digital (ADC), ya que el sensor proporcionará una señal analógica variable en el tiempo que representa la propiedad que se está midiendo. Otros sensores proporcionarán alguna forma de interfaz digital, y hay una pequeña cantidad de protocolos utilizados en estos casos. Prácticamente todos los AVR proporcionan los medios para interactuar con estos sensores digitales. Probablemente necesitará decidir qué resolución, velocidad y ancho de banda puede necesitar su sistema. Esto dictará cosas como sus elecciones de ADC para convertir sus datos analógicos.

Una vez que se adquieren sus datos, querrá almacenarlos. Sus opciones son realmente almacenarlo en caché en el microcontrolador y luego cargar los datos almacenados en caché en un sistema más grande, o almacenar los datos en un almacenamiento no volátil como la memoria flash. Hacer lo último puede requerir que diseñe un formato de almacenamiento en los medios, mientras que hacer lo primero probablemente requerirá que diseñe o adopte un protocolo de comunicaciones utilizando USB, serie (RS-232), Bluetooth, etc. Su diseño deberá adaptarse cualquiera que sea el método que elija. Presumiblemente, tiene los medios para analizar, filtrar y visualizar los datos adquiridos.

La forma más sencilla de hacer esto es …

Primero escriba un programa para conectar el sensor, lo que hará un sensor es … convertir cualquier cantidad física que esté midiendo en voltaje / corriente. Como este voltaje o corriente estará en forma analógica, utilice ADC (convertidor analógico a digital) para convertir esto en datos binarios. así que escriba el programa para conectar ADC también.

En el programa anterior, cree una variable en la que almacene el valor obtenido por esta conversión ADC (esto es para almacenar solo un valor)

Si desea almacenar todas y cada una de las salidas obtenidas por el sensor, guárdelas en EEPROM haciendo una matriz. Al almacenar los datos en EEPROM, puede utilizarlos para una mayor manipulación, ya que no serán destruidos.

Cómo escribir datos en la memoria, para conocer esta hoja de datos de verificación de cualquier microcontrolador que esté utilizando.

Espero que este código te ayude a entenderlo claramente.

Almacenamiento de datos permanente con EEPROM interna AVR

Sugeriría comenzar con un proyecto de Data Logger de Adafruit que haga exactamente esto, capturando valores de sensores de luz y temperatura y almacenándolos en una tarjeta SD.

En la imagen a continuación, la capa superior es un escudo de registro de datos para Arduino. Además de la tarjeta SD, cuenta con un área de creación de prototipos, donde puede soldar sus propios componentes.

La capa debajo de esa (la segunda placa de circuito azul) es un Arduino Uno, que es compatible con una tonelada de código comercial para cada sensor o actuador concebible. (Sí, hay muchas MCU AVR y no AVR competidoras y, por supuesto, SBC más complejas como Raspberry pi, pero comenzaría con el Uno y su cadena de herramientas simple).

La capa inferior es una batería.

Puede ver el código existente que otros han escrito y luego modificarlo para satisfacer sus necesidades. Por ejemplo, necesitaba un registrador de temperatura del calentador de agua, valores altos y bajos durante 24 horas, con los valores altos / bajos almacenados cada hora / día, etc. Mi microcontrolador era el ATmega 328, en la placa de soporte Arduino Pro Mini ($ 3.00 de China ) Este es mi proyecto: monitor de temperatura del calentador de agua

More Interesting

¿Cuál es la diferencia entre el gestor de arranque, el código de inicio y el cargador de arranque?

¿Cuáles son algunos errores de principiante que pueden dañar una placa arduino?

He estado buscando en Google y quiero saber, técnicamente hablando, ¿qué tipo de computadora es un teléfono inteligente? ¿Es un sistema integrado?

¿Hay algún motor eléctrico que pueda controlarse para rotar su eje en micro ángulo para ser utilizado en aplicaciones de micro posicionamiento?

Cómo escribir el código de interfaz del sensor para el microcontrolador AVR Atmega 128 en el estudio AVR

Cómo prepararse para la investigación en sistemas embebidos

¿Qué sucede realmente dentro de un Arduino Uno R3 cuando ejecuto el código para parpadear un LED?

Estoy persiguiendo BTech en ingeniería electrónica y de comunicación. Estoy buscando el mejor instituto para hacer entrenamiento de verano en sistemas integrados. ¿Cuál es el mejor instituto en Delhi para la capacitación en sistemas integrados?

A pesar de la popularidad entre los aficionados, ¿por qué Atmel AVR rara vez se usa en electrónica industrial y de consumo?

¿Cuáles son algunos ejemplos de seguridad de sistemas integrados?

¿Cuándo utiliza C ++ sobre C para la programación integrada?

¿Qué versión de Linux incorporado es adecuada para nuestros sistemas IoT basados ​​en arm?

Cómo visualizar el impulso de un sistema de llamada de enfermería con un osciloscopio

¿Cuál es el mejor instituto de capacitación para un sistema integrado en Bangalore, excepto Vector?

Aprendí C, microcontroladores y C ++. ¿Qué debo hacer después de trabajar en sistemas integrados? ¿Debo aprender Java?