Medición de temperatura en USB [cerrado]

Estoy tratando de obtener un par de temperaturas en mi computadora. En mi pequeño laboratorio tengo unos 50 termistores que se parecen un poco a este termistor NTC . Ahora me gustaría obtener la temperatura de todos ellos simultáneamente y escribir su temperatura en un archivo en mi computadora (Linux, Win, Mac no importa). ¿Qué posibilidades tendría? ¿Qué costos debo esperar? ¿Hay alguna placa con un adaptador USB?

Somos ingenieros eléctricos , por lo que podemos hablar sobre los detalles de la construcción (y muy probablemente la programación) de dicho sistema. No recomendamos la compra de un sistema de este tipo.
@WoutervanOoijen, construir un sistema de prueba a partir de componentes comprados no es una tarea inusual para un ingeniero eléctrico. No recomendamos productos específicos, pero podemos asesorar sobre qué tipos de piezas se deben comprar y cómo elegirlas.
Si tiene un presupuesto de más de $ 2000 aproximadamente, busque un multímetro de escaneo o un sistema de adquisición de datos. Keysight, Keithley y otros fabrican tales instrumentos con esta tarea en mente.
Estaré encantado de recomendar números de pieza específicos en el chat

Respuestas (2)

Creo que este problema es muy fácil de resolver.

Tienes dos formas a elegir:

  • Convertidor UART a USB
  • USB real con clase HID o CDC

Lo único que tiene que hacer es enviar algunos datos desde el sensor de temperatura (creo, usando el convertidor ADC). Puede usar convertidores FTDI UART <-> USB y enviar datos como señales UART normales.

Muchos uC tienen una pila USB incorporada, algunos de PIC, también de 8 bits (por ejemplo, PIC16F1459), AVR (Atmega8U2) o STM de 32 bits (como STM32F405). USB es más complicado que UART, pero puedes hacer cosas increíbles con él. Además, la clase CDC USB funciona como emulador UART sin chips adicionales.

Pero para este tipo de operación, use el convertidor UART a USB, si quiere hacerlo rápido.

Además, con Arduino puede hacerlo en unos 15 minutos, tiene un puerto serie virtual dedicado.

Pero la comunicación es simple aquí. Hay otro problema con esto. PCB para este circuito será grande. ¿Por qué? Tienes que encontrar la manera de medir los 50 canales ADC. Solo los microcontroladores con muchos GPIO pueden hacerlo sin IC multiplexor adicional. Otra cosa que debe hacer es crear algunos circuitos de prevención de ruido, porque esta cantidad de canal puede generarlo, y también, debe evitar que los canales de medición de temperatura sufran ruido del microcontrolador. Además, para aumentar la linealidad y la estabilidad, debe hacer circuitos de excitación de puente, que tomarán área. Si desea crear una PCB de 3 sensores, es muy fácil hacerlo. Pero 50 sensores... Tienes que imaginar eso.

¿Qué pasa si tienes una pequeña cantidad de canales ADC? Use multiplexores analógicos, pero luego necesita más GPIO para la lógica del multiplexor de accionamiento y más lugar para nuevos circuitos integrados en su PCB. Recuerde: los multiplexores analógicos no son ideales, por lo que un canal puede afectar a otro (tiene este tipo de información en la hoja de datos).

Si usa 50 canales en su microcontrolador, recuerde el retraso adecuado entre la conversión en varios canales, porque si cambia de canal instantáneamente, el capacitor ADC interno tendrá algo de voltaje y esto falsificará el valor de la medición.

Este problema suena fácil, pero no es tan fácil como pensamos.

Intente primero hacer un medidor de temperatura con 4 canales.

No creo que recolectar y registrar 50 señales analógicas sea particularmente fácil de resolver.
Puede hacerlo muy rápido, por ej. Si tiene un ADC que necesita alrededor de 5 us para la muestra, 5 us para la conversión y 5 us para el retraso entre canales, tiene alrededor de 750 us para realizar todas las mediciones. Además, por ejemplo, uC tiene 4 canales ADC. Debe obtener alrededor de 50 muestras. Es muy fácil usar algunos multiplexores analógicos, por ejemplo, de 4 bits. Tienes 4*16 canales si los usas (2^4=16). El único problema es que necesita aumentar el lugar para los componentes en la PCB.
Sí, ahora tiene muchos multiplexores analógicos y necesita controlarlos. Debe tener circuitos de excitación para los termistores, mientras presta atención a cómo interactúan con los interruptores analógicos (¡es posible que necesite 50 circuitos de excitación)! Probablemente necesitará hacer una placa y descubrir cómo cablear los cincuenta termistores. Creo que un estudiante universitario talentoso al principio de un plan de estudios de EE probablemente podría hacerlo en dos o tres semanas. Su respuesta solo aborda un aspecto del enfoque de la solución. Si presenta la respuesta completa, eliminaré el DV.
¡Hola @SławomirKozok! ¡Gracias por su extensa y bien descriptiva respuesta! Ok, puedo seguir tu sugerencia de probarlo primero con 4 canales. ¿Probar el Arduino UNO R3 sería un buen comienzo? ¿Seguiría necesitando un convertidor UART a USB o podría enchufarlos directamente? Creo que dentro de Linux, por ejemplo, accedería a los datos leídos del NTC-Thermistor accediendo a /dev/ttyX, ¿verdad?
Arduino UNO será bueno para empezar. Arduino tiene un convertidor USB <-> UART incorporado. Solo tienes que comprar Arduino. No recuerdo el nombre del UART emulado por Arduino en Linux, pero sí, estará en algún lugar bajo /dev/.

La forma más sencilla es comprar algunas placas DAQ (adquisición de datos) de una empresa como National Instruments. Para cada DAQ, construya una placa de acondicionamiento de señales para convertir los termistores en salida de voltaje. El circuito de estas placas sería muy simple: básicamente, una referencia de voltaje para toda la placa, además de una sola resistencia y un condensador para cada termistor.

PERO. Esto tiene dos inconvenientes. Primero es la velocidad. Deberá muestrear cada canal de temperatura en secuencia, en lugar de todos a la vez. Probablemente esto no sea un problema real: los termistores suelen tener constantes de tiempo en el rango de segundos, por lo que no es probable que pierda mucha precisión con el muestreo secuencial. El segundo es quizás un problema mayor: el costo. Puede obtener 32 canales a 12 bits por canal por ~$1500 por placa, y necesita 2 placas para 50 canales. Si quiere arriesgarse con eBay, es posible que pueda obtener precios más bajos en tableros usados.

Alternativamente, puede obtener una o más placas USB de E/S digital y crear la suya propia. Una placa DIO de 32 bits debería costarte ~$100, y 32 bits deberían ser más que suficientes para adquirir 50 canales. Busque en Digikey y puede obtener ADC de 8 bits de salida paralela por menos de $ 2, 12 bits por menos de $ 10 (y dependiendo del rango de temperatura que esté mirando y la resolución de temperatura que desee, 12 bits bien pueden ser necesario - los termistores son muy no lineales). Necesitaría hacer placas de PC para su acondicionamiento de señal y ADC, y puede hacer sus propias compensaciones entre la cantidad de ADC y la multiplexación. Es posible que también deba aprender multiplexación digital para seleccionar qué ADC desea leer (si usa más de uno), pero eso es algo que debe aprender de todos modos.

Hola @WhatRoughBeast! ¡Gracias por tu gran respuesta! Con respecto a su sugerencia sobre DAQ, investigué un poco y encontré 2 dispositivos. ¿Merecen la pena echarles un vistazo? Módulo de E/S digital de 24 canales basado en USB y DISPOSITIVO DE ENTRADA/SALIDA, USB, 2.0 DIGITAL PORTÁTIL, 24 LÍNEAS, 12 Mb . ¿Seguiría necesitando un ADC para cada termistor NTC?
Cualquiera de los dos funcionará, pero tenga en cuenta que (posiblemente) desee un dispositivo de autobús de alta velocidad. La cuestión de cuántos ADC necesita depende de sus requisitos. Si es absolutamente necesario tener mediciones simultáneas, entonces sí, debe usar un ADC por sensor. De lo contrario, busque "multiplexor analógico". Estos permitirán que un solo ADC adquiera varias (o muchas) salidas de sensor. Para la primera configuración, necesitará alguna forma, controlada por los 24 bits, para seleccionar qué ADC leer y recorrer los ADC. De lo contrario, seleccione el canal para ir a los ADC, luego léalo o léalos...
En general, el enfoque de multiplexor analógico será más económico que el enfoque de ADC múltiple. Todo es una cuestión de lo que más le importa: hacer concesiones entre requisitos competitivos es el corazón de la ingeniería.